This is my public whiteboard of thoughts that have helped me in the past.
Meta goals:
- Reduce chaos
- Learn from mistakes
- Persistent outlet for these thoughts
Read/Edit Developer Tactics on GitHub.. Automatic dump follows:
Software Developer Tactics
A living list of practical rules I want close at hand while building software.
General
- Keep all data, config and credentials eiter 1) in a database, 2) as text files checked into git or 3) secret/password managers.
.env-style secrets are an acceptable exception for personal, solo, and open projects, but migrate away from them at work as fast as possible. The setup cost of “hey where can i get the credential for x” alone is worth fixing this.- .NET/Visual Studio offering a way to load secrets from a file in AppData is a bad practice. It will be forgotten and weaken your developer security for years to come.
Git
- Commit
.gitignorechanges immediately, regardless of the current branch. It is not elegant, but accidentally committing ignored files is worse.
Security and bus factor
- Two-factor authentication apps and their reset procedures all suck. Keep a spare phone with authentication set up in case the main phone is lost or bricked.
- Some authentication apps sign out inactive devices. Test the spare every three months.
Windows
- Use one consistent PowerShell version and document its pitfalls.
- Install
ripgrep.exe. - Do not burn another afternoon trying to make
rsyncwork on Windows. - When the local Windows setup fights back, move the development environment to a Linux server and connect over SSH.
Web development
- Web development is mostly solved. If a large part of an application feels unusually hard, I am probably missing a tool, pattern, or piece of information.
- To clean up a CSS codebase buried under
!important, first inventory every view at each supported resolution and capture screenshots of all of them, in different resolutions, using a visual regression test with playwright or something like this. This will tell you about accidental visual changes during the css cleanup/refactor.
Meta goals
- Reduce chaos
- Learn from mistakes
- Persistent outlet for these thoughts