I am sure I have written about this before. I must have. After this post, I will write about the same topic again, probably mentioning the exact details that I outline in this post.
I love maintaining software.
Something about making an existing codebase better, fixing bugs, optimising the codebase, improving performance: all these things excite me.
Developing new features is fun too. But optimising existing ones is where I find most of my enjoyment when working with the software.
In the last ten years, I have been fortunate enough to be contacted/asked to maintain software written by someone else. Everyone who contacted me about the work told me that everyone else they spoke with wanted to rewrite the codebase instead of offering to fix the issues they were experiencing.
I did not want to rewrite it. I enjoyed the process of reading through someone else’s codebase and figuring out why they had written the class/function the way they did. It took a while to get used to the software flow that someone else had architected. After a while, though, I could dive in, fix bugs, make tweaks and deploy to production.
I was recently reminded of how this might not be good for my career in the future. The following company that I choose to apply with would look for the latest tech world knowledge. The industry is moving at a fast pace. If I did not keep up, I would be left behind.
Do I fear being left behind? I do. I do my part of keeping up with the latest and greatest by working on side projects which use the latest frameworks. Rails, React, Vue.js. I am working with all of these. Just not commercially. Not yet, at least.
I hope companies are looking to hire people to maintain existing software while looking at re-building the current project from the ground up. Could I be that person who works on maintaining the existing software? I would love to be that person.