Things I've learnt about software engineering this year
Maintainability#
I now think that maintainability is a really important thing to consider when writing building software - especially with small teams.
You don’t really want to add a lot of new libraries and stuff because then it’s just more to maintain - if something breaks or updates then you also need to keep up with the updates and it’s just not a great experience.
I think in general, the benefit of using something new has to outweigh the cost of maintaining it.
One example is Nextjs - it’s constantly updating and then you have to maintain the version (or just not have the latest update, which tbh is probably better anyways because then you’re not exposed to vulnerabilities like CVE-2025-55182 )
Testing#
I now feel like testing - particularly E2E is really important for making sure everything works. It’s really nice so then you don’t have to retest every time you want to release something.
Unit testing is okay but you also need to consider writing ‘testable code’ - topic for a another day.
Observability#
I didn’t realise how important observability was in a production codebase.
Copying patterns#
I realised it’s easier copy code / patterns from other parts of the codebase to use in your code.
It’s good because it maintains the consistency of the codebase and also it gives you a good starting point a lot of the time.
Just take on debt#
You don’t need to refactor until it’s a really big issue - just ship stuff instead. Also it’s really nice to have the E2E test in place to make sure nothign breaks.
This stuff definitely applies more to business engineering as opposed to learning or hobby projects where you want to learn instead of creating business value.