Start working close to your end users
The software engineering profession is one of the few professions on earth where the work you do can affect millions of people. Even if the effect of code changes made by a software engineer is small, the sum of the effect across millions of users can be rather large.
Sometimes as engineers, when we try to debug Error in the backend or find out why the design we are trying to apply on the frontend is not working as expected, we are losing sight of the effect we are having. It stands to reason that the things that frustrate us about our work, like correcting difficult technical issues for example, will not be the things that bring engineers fulfillment in their day-to-day work. I definitely had periods as a software engineer where I felt a deep sense of passion and purpose for the products I was building. Other times, I wondered if my work was really affecting people’s lives and thought about the changes I would need to make to feel that sense of purpose again. While your sense of purpose will not be consistently high each day on the job, there are ways to feel a higher sense of purpose. These are the things I’ve found to bring me fulfillment as a software engineer.
I’ve found that fewer layers of communication between myself and the end user of my product bring me a higher sense of job fulfillment. I hope that the features I am building will, at the very least, make the lives of the users of this system a little easier. However, if all I’ve heard about my software are complaints about how features work or bugs that users find, I might feel that no users appreciate the work I do. This is why it is important to me that the feedback loop goes through lower layers of communication to pass from the end user to me as an engineer.
When I, as an engineer, am closer to the end user, it is natural to hear more user feedback (both good and bad). In this scenario, the comments won’t always be “Users don’t like this” or “The workflow we tried to create for the user won’t work for the user because x, y, and z.” I’ll also hear about how a beta user has tested a feature I’ve built and love or how to report no bugs yet for the feature that just launched. While it’s important to know what users don’t like about the software systems we build so that we can keep that feedback in mind as we make system improvements, my ability to receive feedback and delight users with software improvements brings me fulfillment. This achievement does not happen without hearing the positive impact my work has on the people who use my software.
The people you work with can make or break how you feel about the software you’re creating. Working in a positive environment is important, but positivity can sometimes be misplaced. Some workplaces can use positivity as a blanket to try to cover up the parts of the company that aren’t doing well and need improvement. For me, working in a positive environment means being positive about the things that are actually working well while having the tough conversations that have to happen to bring about positive improvements in the way operations work. While it can feel pretty good on the back at the moment, I feel more fulfilled when I constantly see myself becoming a better engineer each day than I did the day before. I also take satisfaction in seeing the team I work on continue to become more skilled and efficient in our work. This can only happen in a business environment that wants to see everyone’s success and be upfront about the things we can do to improve it.
As an engineer, the ideas of working at a giant tech company and making an impact on the lives of millions of users can sound exciting. However, it seems that more and more conversations about the ethics of these big tech companies are taking place every day. For this reason, you may have a hard time feeling good about the impact it is having if the ethics of the company for which you build the software are constantly being questioned. Moreover, many high paying jobs related to software engineering are found in investment firms and hedge funds where the main objective is to make money. I feel more determined in my work when I know that the software I’m building is being used for the good of humanity. In my career, I hope to always work for companies that I can refer to later in my life and feel that my contributions have helped people in a small way.