As software engineers, we develop products affecting lives of millions of people every single day. This post helps you make better product and engineering decisions.
Software development is a unique skill to have
Software engineering is really hard. It may look easy on the surface, especially after doing a couple of online courses. It is relatively straightforward to build software by following a template like with Ruby on Rails. However, no solution is perfect. Sooner or later you’ll need to deviate from the template and things get much more complicated. That’s where you need to know data structures, Big O notation, software architecture, and many more other things. It takes a lifetime to master all these concepts. In addition to it, software changes rapidly. Technologies that are used to be relevant 5 years ago are no longer relevant. You need to keep up with it in order to stay current. In order to really succeed in software development, the person needs to be detail oriented. That’s why there are many software developers on the job market and there are not that many good ones. If you have this unique skill to write software, you should use it wisely. In wrong hands, your software can overcharge, miss lead, or sometimes even kill people. With big power, comes great responsibility.
How to apply your skill
1) Align with the company mission
If you’re not aligned with your company’s mission, you’re simply wasting your time. Make sure the company you work for does something you believe in. This way, you make better product decisions, you’re more engaged, and more productive. It is also better for your career since you grow as a software engineer faster at the company you’re aligned with.
2) Keep code standards high
It’s important to keep the right balance between quality and speed of delivery. We all have deadlines and milestones. Even at crunch time, keep in mind that cutting corners will backfire on you sooner or later. A bug in a system may cost you wasted developer hours, money, customers or sometimes even people’s lives. Make sure your software is solid, write automated tests, do code reviews, etc. Engineering best practices are here for a reason. That being said, sometimes you have to introduce technical debt. Make sure to pay it off.
3) Respect Privacy
Be mindful of customer data and security. Encrypt sensitive data and personally identifiable information. Put yourself in the shoes of a real customer before implementing your feature.
4) Improve Human Society
Think about what your product does besides just making money. Is it improving people lives? Does it make us human beings better? If the answer to these question is yes, you’re in a good place. Make sure you maintain the right balance between doing good and making money. There is always a way to make both things work.
5) Share the knowledge
Go beyond coding during the day and getting a paycheck. Chances are you’re using free Open Source packages like Node.js or even Linux. Give back to the community. There are many different ways to do it ranging from making open source contributions to writing a blog post or doing a talk at a local meetup. Together, we can accomplish a lot more.
I hope this post inspires you to do great things. Since an early age, I always believed in improving human society using technology. Humans can build tools. It’s what got humankind this far. Software is a great tool most of us use every day. Enough talk. So go ahead and build something great.