20 pearls of wisdom about SW eng
https://www.simplethread.com/20-things-ive-learned-in-my-20-years-as-a-software-engineer/
Manageable code bases
https://www.danielsieger.com/blog/2022/07/25/your-code-doesnt-have-to-be-a-mess.html
- define clear goals
- define constraints and non-goals
- say no (to featuritis)
- eliminate waste / par down unnecessary code
- minimize dependencies
Working in large codebases
https://www.seangoedecke.com/large-established-codebases/
On keeping systems simple
https://shkspr.mobi/blog/2015/11/a-polite-way-to-say-ridiculously-complicated/
Eschew baroque constructions which stoke your ego with their unnecessary complexity
Unfortunately, complexity sells better
https://eugeneyan.com/writing/simplicity/
SW dev process - golden advice
- branching
- PRs
- … https://thezbook.com/coding/
Mise-en-place + wrap up
- before code
- after code https://somehowmanage.com/2021/09/05/things-to-do-before-and-after-you-write-code/
SW design process
- suffering-oriented programming : don’t build technology unless you feel the pain of not having it
- learning and refinement
- make it possible
- make it beautiful
- make it fast http://nathanmarz.com/blog/suffering-oriented-programming.html
Analysis of large unfamiliar code base
https://jeremyong.com/game%20engines/2023/01/25/grokking-big-unfamiliar-codebases/
Testing - golden advice
- eng from HW verification to SW
- unit tests + integration tests
- directed vs randomized + model
- design: ask what reliability is needed