Musings – Software Development

  1. It’s always best to avoid rolling your own implementation of things like database connection managers, encryption unless you want to deal with the pain six or seven years later, assuming you are still working on that project. And if you are a newbie or junior developer with less than 1 year of real world working experience, do not even think about rolling your own.
  2. Troubleshooting and debugging a software bug in an old piece of software that you built five years ago without documentation or with poor code style is like hunting for a specific color of needle in a haystack but you forgot which haystack and where it is, even if it is right in front of you. When you finally found the haystack, you forgot which color of needle you are looking for.
  3. If you are a highly-sensitive person and love programming, software engineering as a career may not be the best choice for you. Projects are extremely time-sensitive, multi-tasking is required, majorly understaffed, and people are mostly logical. So depending on the level of your sensitivities and ability to manage those sensitives, you are probably better off working for yourself or do programming on the side. Of course, the company you work for and the culture could affect your choice. If your team and management totally understand it, know the strength of a highly sensitive person and appreciate those strength while seeking to help mitigate the weaknesses, then yes, you can do it as a career. Otherwise, get out and find something else to do. Cultivate a new passion.
  4. Your years of software development experience doesn’t necessary means you can be a senior developer. It is especially so if you haven’t develop the skills to be a senior developer or a lead developer. In that case, either you improve yourself and develop those skills, work for yourself or lower your ego, pride and salary, and continue to be a junior developer.