How I went from being a Mid-Level Software Engineer to a Senior Software Engineer

My background in engineering isn’t the typical path – although what’s great about the tech industry is that I’ve met many software engineers who have nontraditional backgrounds as well. I studied painting and creative writing in school, and fell into coding when I had to put together a portfolio site for my artwork for a class. I taught myself the basics of HTML, CSS, and JavaScript. And since then, I’ve been hooked – I like how coding is it’s own art form. I like how I get to build things and solve complex problems.

So how did I go from being an Art/English Major to a Software Engineer, and then a Senior Software Engineer? After college, I held a number of web-related roles where I picked up different languages like Ruby and Python. The common thread in all my roles was that I was working with JavaScript in one form or another. I worked for a few nonprofits before I ventured over to working for startups. While working at one nonprofit, I took several night classes in web development (frontend development, backend development, and JavaScript development) before taking a couple months of leave to go through a web development immersive program. Although I was self taught up until that point, I wanted to ensure I hadn’t picked up any bad habits while working on small teams where I was usually the only one that did the type of work I do. After the program, I continued to work on learning as much as I could outside of work.

While working at a startup, I started to approach my work in a different way. I kept an eye out for ways I could improve my team’s process through automation. I would often propose feature work outside of the requests my team was getting, so that I could build out improvements that would automate our workflow. I noticed patterns in the repetition of the requests we were receiving and thought about how we could move away from a more manual process to an automated one. And through automation, I was able to cut down the number of requests my team had to handle manually from about 20+ a day to about 2 or 3 a week (sometimes we wouldn’t get any requests at all). This allowed my team to shift our focus to other products and merge with a different team within the company.

Aside from automation, I also looked for ways to help my fellow engineers. If I noticed that any of less experienced engineers were struggling with a language or process, I’d either look into a tool that could automate the process, or sometimes I’d create documentation to serve as a cheatsheet. When I was working on a team of primarily frontend engineers, and a couple of the less experienced engineers were overwhelmed by the command line or working with Ruby, I compiled a list of handy commands to make their lives easier. And whenever I ran into any issues with local development, I’d share any solutions I found with the team to ensure no one else would run into the same blockers. I also made myself available for pairing to help out other team members whenever they were blocked. And by finding solutions to bottlenecks in our processes via automation or tooling, as well as mentoring others, I got promoted to Senior Software Engineer.

Leave a Reply