This is an article part of the It’s not just about the money: Exploring the 4 important aspects of a software engineering job series.
Let’s face it, many of us strive to be software engineers because we want to make a difference in the world. It’s important to be aware that impact is different at every company.
At large companies like Google, Microsoft, Facebook, and Amazon, it’s true that code changes that you make have the potential to affect millions of people, but what about the impact on the company as a whole? Will your users even care for your changes?
At smaller companies, though your code changes may not make it to as many users, depending on the project, the impact can be astounding.
For my first internship, I worked for this small company called VoiceBox (now Nuance) which at the time was working on developing natural language processing algorithms to power voice recognition for Samsung phones.
To get data to allow their NLP specialists to train their models, VoiceBox made use of an in-house recording booth to get raw audio recordings of people saying specific phrases. Though functional, this solution was certainly not scalable as only one person could be using the recording booth at a time. With this in mind, Voicebox sought out to develop an Android mobile application to allow participants to record utterances on their phone instead of having to go into the recording booth.
And that’s exactly what I spent my summer doing; building the application from scratch. The NLP scientists hungered for lots of data.
At the start of my internship, everything was going smoothly. I took my time in trying to figure out how I was going to implement the spec that I was given. The initial release was scheduled to be a month out, but there was some miscommunication between departments and we actually needed a V1 release in less than a week.
My coworker and I stayed up until 5 in the morning finishing up the initial release and came in the next morning to fix up the bugs. For the rest of my summer, I worked on making performance improvements to enable us to release the app on crowdsourcing platforms and incorporated user feedback to improve the usability and aesthetics of the app.
By the end of the year, the app had been released on crowdsourcing platforms and gathered well over 100k audio recordings for the NLP engineers to use.
Although on a lot of days I felt mentally exhausted, I would always leave work satisfied knowing that my work was going to have a huge impact on how VoiceBox collected their data. It wouldn’t be uncommon to have people I didn’t even know come up to my desk to offer suggestions or to just thank me for making this tool for them. This sense of ownership and connection to my users empowered me to go above and beyond what was expected. I still remember being excited on my Sunday nights as I laid in my bed thinking about all of the new features and improvements I was going to implement the next morning.
In stark contrast, when I interned at Microsoft two years later, I didn’t feel as connected to my work. My intern project was to connect two systems on the Azure platform, Azure Event Hubs which handles millions of events from various devices a day with a file system data store, Azure Data Lake Store so that engineers could capture and process event data.
Although technically my intern project sounded interesting, the impact that I ended up having felt minimal. I didn’t feel as connected to the product as I did at VoiceBox and my project wasn’t a priority. I had finished the majority of work by the end of my internship, but my code didn’t get shipped until almost a year later. The lack of urgency and connection to my stakeholders made me less excited to come into my job everyday.
Despite my positive experience at VoiceBox, it is not to say all small companies will give that same feeling of impact. That next summer, I worked at an even smaller company, Socrata. At Socrata, I worked with two other interns to look into big data storage solutions for Socrata’s datasets to power their visualizations on the frontend. We looked into technologies such as Apache Spark, Amazon Redshift, and Google BigQuery and built an data ingestor that imported hundreds of gigabytes of data. It’s actually open sourced and can be found here.
Although I ended up learning a ton about the different technologies, after finishing the project, I didn’t feel the same amount of satisfaction mainly because there were no plans to integrate it with their existing data pipeline for a handful of reasons that I won’t go into here.
How has the idea of impact changed for me?
Before I started working, I had always thought that to have any noticeable change on the world the only way to do so was through working for larger companies. I’m glad I had the experience of working for smaller companies to get a taste of what impact could be like.
I had such a great time at Voicebox that I decided to even come back to work over winter break for about a month. Although I could have spent my time off relaxing and playing video games, I wanted to continue driving the product that I had created.
So what kind of impact should I want to have?
That’s ultimately up to you to decide! If you’re okay contributing to a larger cause and want to focus on the technical aspects of the job, that’s perfectly fine as well. But there’s something about being close to the people that interact with software that I built that always strikes a chord with me and rallies me to want to do more.
Up next: A word about Learning