Post

The Epic Programming Principles: the guide I use to make decisions as a software engineer. Transcending specific tools or frameworks, these principles will help you guide your career, craft, and technical choices. See details and examples for each principle here: www.epicweb.dev/principles πŸ“–

66 reposts305 likes

"Do as little as possible" absolutely golden. More code = more debt. I think of it like a garden - you plant it you have to take care of it.

And when there are too many things to take care of in a garden, people often feel overwhelmed with the situation and might move away to a less stressful environment. Similar with software projects.

I love this! Feels like every software engineer would benefit from taking the time to think through their principles and writing them down–this might be the start of a great idea!

> Pragmatism is more important than 'purity' This is only true because most written code is throwaway code. Startup code, for example, should be pragmatic. The longer the timescale, though, the more that "purity" wins out. Preferring the higher bar of "purity" is simply "wanting your work to last"

Most of the technologies and design decisions that are β€œpurer” have a steeper learning curve or implementation cost but also get you guarantees that result in fewer problems on longer timescales. Examples of this off the top of my head are Nix, functional languages with immutable data and typing,…

not resorting to headless browser testing, strictly reducing dependencies, TDD, making your database the sole source of truth/state (which then necessitates things like storing binary data in it instead of S3), defining constraints at both the database level as well as in your app code (which then…

Oh I see πŸ˜… and I already thought that the hidden principle maybe was "Use AI as an assistant - *and not as a replacement for your skills*" πŸ™ˆ. I guess I value humans more than my time, one of the reasons why I personally avoid AI, especially if its trained on data without explicit consent.