MethodStack

Practical digital resources for developers, cybersecurity learners, and automation builders. Repositories, scripts, guides, and defensive...
Location hidden
โ€ขCreated byProfile pictureMike
2 joined
Profile picture
MikeProfile picture@dotpyยทOct 1

๐Ÿš€ Want to learn practical tech skills that you can eventually turn into income?

Iโ€™m building MethodStack around practical, hands-on learning through videos and real-world examples.

You can learn things like:

  • ๐Ÿ’ป Building professional websites for local businesses

  • ๐Ÿค– Automation & business workflows

  • ๐Ÿ” Cybersecurity & ethical security testing

  • ๐Ÿ›ก๏ธ Helping businesses improve their security and firewall setup

  • ๐Ÿ“Š Tracking, analytics & technical tools

  • ๐Ÿงฐ Programming, Git, APIs & developer resources

And the bigger goal isn't just learning.

You can take these skills and work with local or national businesses โ€” for example, helping a restaurant build a professional website, helping a small company automate repetitive tasks, or helping a business improve its authorized security setup.

Businesses pay for solutions that save them time, improve their online presence, or help protect their systems.

Learn โ†’ Build โ†’ Solve real business problems โ†’ Get paid.

I'm building MethodStack to teach these skills practically, step by step.

If this sounds interesting, follow along and tell me what you'd want to learn first. ๐Ÿ‘€

Profile picture
MikeProfile picture@dotpyยทOct 1

A .gitignore that saves you

A .gitignore that saves you


Most emergency Git rewrites start with a file that should never have been committed. On a repository you maintain, .gitignore is cheaper than that story.


A small, strict starter


.venv/
__pycache__/
*.pyc
.env
*.pem
work/*
!work/.gitkeep
client.log
.DS_Store


What this is doing:


  • Virtualenvs and bytecode stay local

  • Secrets stay local

  • ./work holds inputs you own and does not go to the remote

  • Request logs from your API client stay local


Add the file before the first commit you care about


git status --ignored


If you already tracked a file you now want ignored:


git rm --cached .env


That untracks it in the next commit. It does not erase it from earlier commits. If a real secret landed in history on a repo you own, rotate the secret. Treat the history as untrusted after that. Do not paste the old value into a ticket.


Rules of thumb


  • If it is generated, ignore it.

  • If it is a secret, ignore it and rotate if it leaked.

  • If it is someone else's data, it should not be in the repo at all.

  • If you are unsure, git status before git add -A.


Git Workflow Templates includes this ignore file next to the commit and issue templates. Put it in the repo you actually push. The best .gitignore is the one that already existed the day you almost committed .env.

Profile picture
MikeProfile picture@dotpyยทOct 1

Tip: quote your shell variables

Tip: quote your shell variables


On a machine you administer, most accidental rm stories start with a space and an unquoted $file.


# brittle
rm $file

# ordinary and safer
rm -- "$file"


Without quotes, the shell splits on spaces. A filename you own called report final.csv becomes two arguments. With quotes, it stays one.


Other forms worth making automatic:


cd "$HOME/projects"
cp -- "$src" "$dst"
grep -n -- "$pattern" "$path"


-- tells the command that nothing later is a flag, so a file named -f is still a file.


This is developer productivity and sysadmin on your host. It is not exciting. It is how you keep the cheat sheet from becoming an incident. The free Linux cheat sheet on MethodStack assumes you will quote.

Profile picture
MikeProfile picture@dotpyยทOct 1

Retry with backoff, then stop

Retry with backoff, then stop


Retry is how a client survives a blip on an API you call with permission. Backoff is how it avoids turning a blip into a stampede. Stopping is how it remains a client and not an outage.


Base URLs in our examples are placeholders. Point them at a service you own.


Retry only the transient set


  • 429 and honor Retry-After if the server sent it

  • 502, 503, 504

  • timeouts you chose


Do not retry 401 or 403. Those are identity and permission. Do not retry a POST that might double-charge unless you sent an idempotency key you generated and the API documents it.


The shape


wait = base * 2^attempt + jitter
stop after 3 or 4 failures


Jitter is a small random extra wait so several of your workers do not share a clock.


Python sketch (your API)


import random, time

def sleep_for(attempt: int, retry_after: str | None) -> None:
    if retry_after and retry_after.isdigit():
        time.sleep(int(retry_after))
        return
    time.sleep(0.4 * (2 ** attempt) + random.uniform(0, 0.2))


Set a timeout on the HTTP call. Log attempt, status, and wait. Identify the client with a User-Agent. Then stop.


Infinite retry is not resilience. It is how a broken dependency takes you down second.


The API Client Toolkit course has the full Python and TypeScript helpers. This post is the policy: transient only, wait longer, surface the error.

Profile picture
MikeProfile picture@dotpyยทOct 1

About MethodStack

About MethodStack


Practical Knowledge. Powerful Methods.


MethodStack is an education shop for people who want mechanisms, not slogans. We publish notes, courses, templates, and small programs you can run on machines you own.


The idea


Most explainers stop at the name of a thing. Hashing, least privilege, rate limits, Git history. We start there and then show the method: where it lives in a system you run, what it does not do, and how you would check it without crossing into someone else's network.


What we publish


  • Foundations. Authentication vs authorization, assets and controls, logging as a habit.

  • Operator skills. Linux on your own host, reading your logs, permissions on your files.

  • Builder skills. Git templates, Python scripts with a ./work sandbox, API clients that back off.

  • Labs you own. Isolation first. Snapshots. Synthetic data. A never list.


We do not publish malware, exploit procedures, credential theft, or CTF flag solutions. Authorized testing, defensive security, research, and labs you own. That is the catalog.


Who writes this way


If you have ever kept a text file of commands that actually worked, you already understand the tone. Short. Checkable. Slightly strict about scope.


The standing rule


Testing is only allowed on systems you own or have written permission to test. Curiosity is not consent. We will keep saying this.


Start here


  1. This Notes forum (you are on it)

  2. The free Linux cheat sheet and threat modeling one-pager (free products on MethodStack)

  3. Practical Cybersecurity Foundations if you want the ordered path


More previews for Git Workflow Templates, Python Automation Scripts, and the lab pack will land in this forum as they ship. Follow the company if you want those posts in one place.

Profile picture
MikeProfile picture@dotpyยทOct 1
Pinned post

Welcome to MethodStack

Welcome to MethodStack โ€” a place for people who don't just want to know WHAT something does, but want to understand HOW it works.


MethodStack is practical knowledge with powerful methods. We write for people who run their own machines, ship their own small software, and want the underlying ideas without theater.


What this is


  • Short, technical notes you can use the same day

  • Courses, templates, and scripts for work on systems you own

  • A public notebook (this forum) for first releases and explanations


We care about Linux as sysadmin and developer productivity, Git as documentation, Python as automation on your laptop, APIs you operate, and defensive security in a lab you control.


Who it is for


  • People who would rather read a checklist than a motivational thread

  • Developers who want Git and Python habits that survive contact with a real repo

  • Anyone building a mental model of authentication, authorization, logging, and least privilege

  • Learners who will only test systems they own or have written permission to test


If you want exploit write-ups, payloads, or "how to get into" someone else's box, this is not that place. We will not publish that here.


What you will find on MethodStack


Type

What it is for

Free notes and one-pagers

Start today on your own machine

Courses

Ordered lessons, including Practical Cybersecurity Foundations

Templates

Git workflow files you can drop into a repo you maintain

Scripts

Python automation bounded to directories and APIs you control

Lab pack

Isolation, hypervisor hygiene, responsible use


How we work


Tone is calm and specific. Every security note repeats the same rule because it is the rule: testing is only allowed on systems you own or have written permission to test. Linux and Python content stays on your machine. We teach methods, not shortcuts around other people's access controls.


Follow along


This Notes forum is where first releases show up. Follow MethodStack, read the About post, and watch for the free Linux cheat sheet and the threat modeling one-pager.


If you want HOW it works, you are in the right place. Welcome.