The Road Less Travelled: My Journey to Software Engineering
This is a story about overcoming the challenges of switching to a career in software engineering much later in life from an unrelated educational and professional background.
When I started my professional journey, I never would have imagined that I'd end up as a software engineer. With a background in life sciences, my path to tech was certainly a non-traditional one. But through a series of unexpected events and a lot of hard work, I found myself on a path to a rewarding career in tech. In this blog post, I'll share my journey of how I became a software engineer the non-traditional way - from being a psychology major to landing my first job as a software engineer. If you're considering a career change or just starting out in tech, I hope my story will inspire and encourage you.
The decision to make a change
Growing up, I had the privilege be able to play around with computers for hours. I first learned how to code at the age of 11 to build simple fan websites for my favourite bands at the time, as embarrassing it is to admit, most of these long hours after school were dedicated for the British pop-punk band, Busted. Now before you judge me, keep in mind that I was barely a teenager and I have since expanded my musical horizons! Anyway, whilst it was far from professional-grade code, I got acquainted with front-end web development using JavaScript, CSS and HTML from free coding websites and through - possibly how most children of my generation got into web dev - MySpace. Unfortunately, the band split up after just a short run but that didn’t stop me. In the following years, I moved on to experimenting with bots and webhooks using Python to have constant automated news updates of the band, as any tween would have done, and of course, to provide some entertainment to my small, but tight-knit fan club patrons.
Fast forward to high school, the pressure from academics was on. It was time to decide on a path that would shape the next decades of our lives. In the culture I grew up in, children are strongly encouraged to pursue sciences or maths - basically anything that would land you a job in medicine or finance. This meant that spending hours messing around with your computer would get you more than a few rows from your family. Because of this, I hesitated to pick up IT in school. I was made to believe that it wasn’t going to help me become a successful neurobiologist in some fancy research facility so that I could impress my family. Before I knew it, I was studying Psychology in university. Funny how one small decision from school can determine your entire career.
As I grew older, I’ve come to the realisation that my expectations of the career path I chose were very far from reality. No, I didn’t end up becoming a cool brain scientist as I planned. Some things just don’t go your way. For several years, my career was in a limbo. I took a teaching job despite having zero interest in teaching, and a few other odd jobs just to get by. I was feeling severely unfulfilled and unchallenged. I knew there had to be more. There had to be something else out there that would satiate my curiosity.
During this time of professional ruin, I sought comfort in the thing that I used to love the most, music. I started playing with software and hardware to compose melodies. It wasn’t long until I found myself experimenting with code to help create music. There was simply so much to discover. I fell down the technological rabbit hole and when I hit the bottom, I realised technology was my path.
Taking on New Challenges and Opportunities
Making the decision to transition to a career in tech was just the beginning. After hundreds of hours of research and self-reassurance that I wasn’t making an idiotic decision, I took a big risk and moved to Germany, where I began looking for entry-level positions in the software industry. I chose Germany for its world-renowned engineering and for being one of the largest software markets in Europe. But I was way in over my head - I had ill-fitting qualifications for any engineering jobs and had virtually zero professional experience in the industry. Sure, I could write some code, but my skills were simply not enough at the time. I needed to start from scratch yet going back to university full time or an internship were not viable options. I still had to provide for myself and a teacher’s salary could only get you so far.
I decided to approach this problem unconventionally. Instead of hunting for entry engineering jobs, I applied for technical support roles with the intention of learning the ropes of the SaaS industry and expanding my network in tech. Shortly, I accepted a job offer from LeanIX as a Customer Support Specialist. I consider this role as the catalyst of my career in software engineering. It taught me many things that you can’t learn in university - and I know that for a fact because I later enrolled myself part time to a Bachelor’s degree in Computer Science. I learned that knowing the relevant tools, frameworks or programming languages are only a fraction of what makes a software successful. I connected with numerous personas - from customers, to product managers and developers, to product marketing and sales - being in Customer Success helped me gain a 360 degree view of the industry. I felt like I had the edge that was missing from those who had gone through a more traditional path. I observed and understood how customers behaved and used this knowledge to my advantage. I enjoyed being able to contribute to features, even though I wasn’t personally programming them.
As I advanced in the role, I worked even more closely with software engineers. I helped them solve problems, watched them take challenging decisions and work with exciting technologies. My role was relatively technical in nature but despite taking on the most technically challenging support issues, I envied my engineering colleagues. I wanted to be on the side where creation happens.
Transitioning to Software Engineering
After around a year and a half in Customer Success, I decided to apply for a junior software engineer role internally. I still had some doubts about my own skills, but it was now or never. I craved the challenge and I knew the only way to get where I wanted to be was to take the plunge. I spent countless hours studying technologies such as public cloud and Kubernetes on top of my university coursework. I built small applications and games in Python to practice my programming skills. At one point, it consumed my entire free time - which I now acknowledge was very unhealthy, and I have since developed a healthier relationship with my own competitiveness. I quickly realised that being an engineer doesn’t mean that you have to know a particular programming language through and through, nor be insanely good at maths. In fact, I found that the soft skills I learned from years of teaching, working with academic papers, and generally just from being curious were equally as useful, if not more. There is a common misconception that software engineering is purely technical in nature, that engineers are closed off from the world and are glued to their screens writing code, but the reality is that it requires good communication, creativity and lots of critical thinking. This, and along with the hard work I’ve put into learning unfamiliar technologies, I landed my first job as a software engineer!
Of course, this isn’t a fairy tale where everyone lives happily ever after. On the contrary, it was just the beginning. My transition to engineering was nothing short of challenging. Imagine walking into a room full of adults as you were just learning how to walk! Understanding and making changes to huge production code and working with senior developers was extremely daunting. I didn’t know what the best implementation practices were nor how to refine and estimate stories. There was nothing worse than feeling ignorant and wondering whether I was really cut out for this job, but I had to remind myself that it was all in my head and that I was surrounded by experienced engineers who would love nothing more than to share their knowledge, if you asked nicely! So this is exactly what I did. I stopped second-guessing myself, took every opportunity to shadow my superiors and asked as many questions as it took for me to grasp whatever was happening. I stopped caring whether my questions sounded ignorant and allowed my curiosity to take the lead. I was there to learn, not to impress people. My mentor and I had weekly feedback sessions to reflect on anything I might have struggled that week and how to tackle them effectively. Whenever I was unfamiliar with a certain technology, I was given the resources that fit my learning style. Within a few months, I started feeling more at home and the doubts I had faded. All I needed to do was ask for support and understand that this was not something that could be done alone.
Today, I am a proud contributor to the Value Stream Management product and have worked on several services such as our Public Cloud and Kubernetes integrations, as well as DORA metrics. Along the way, I’ve become comfortable writing clean and maintainable code in several languages such as Kotlin, Golang and Java. I’ve grown to be more assertive and challenge decisions that might need improvement. Most of all, my experience with customers not only helps me understand the user’s perspective when delivering features, but it also motivates me to build better software.
As I go further into this journey, I am astounded by the sheer number of unexplored avenues I am yet to encounter. This is what I love the about software engineering - you never really run out of things to learn! I often look back to my previous career paths and appreciate how much those experiences have helped me achieve my goals and become a more well-rounded person. What I have accomplished so far wouldn’t have been possible if I hadn’t taken the long-winding road through which I had chosen to hike. Some people might be lucky to find shortcuts, but as the cliche goes, it’s not about the destination.
So if you’re ever wondering if you have what it takes to be a software engineer but are seemingly on an unrelated path, you might already have the skills to reinvent your career. All you need to do now is take a turn, carve your own path and keep on walking.
Published by...