• There is an entire, incredibly vocal industry devoted to adding complexity to software engineering projects. Avoid this at all costs.
  • Accordingly, remember that 99% of everything ever written about software is written by ill-informed and overly excited people who haven’t yet seen the full picture. Including this.
  • Avoid programming adjacent busy work that isn’t writing and testing code. You don’t need a new architecture, you need to get work done / write working software / launch and get customers.
  • Tests are important once a codebase starts to settle. They can be ignored while experimenting with making software.
  • You can’t stop someone from “ruining” your codebase. You can, however, blame yourself for not designing guard rails against this happening.
  • Find a tech stack, get used to making stuff with it, and stick to it. I chose React (Web), NodeJS (Backend), Postgres (DB) and React Native (Mobile). Find your own. I can’t think of a project I couldn’t make with this stack.
  • Everything changes, but everything stays the same.
  • Make many, many sideprojects. Never stop doing this. Perfect displaying a list of JSON data pulled from a database. This will take you extraordinarily far.
  • Functional is not fundamentally better that imperative, it is simply another way of writing software. Don’t become a zealot.
  • Not all senior (and up) software engineers are created equal. Be wary of the “Time served” variety.
  • A minute of planning is worth an hour of bashing out code thoughtlessly.
  • All of the good software was written in the 70s. It’s been all downhill since then.