AND JUST LIKE THAT, CAREER CHANGED
If you would have asked me a few years ago where I'd be today, I would never have guessed here. The road that led me to software engineering was unexpected, yet makes sense when I look back.
The purpose of writing this post is twofold: to connect the dots and make sense of this journey for myself and to inspire and encourage anyone else who might be on a similar journey.
A Predisposition to Programming
I have always been a problem solver, a tinkerer, and an explorer.
As I think back, I can recall numerous precursors to my future love of programming. I have always loved mathematics. In elementary school, I joined a team of Mathletes. We trained after school in preparation for the annual competition, which included various challenge rounds. We'd spend a whole day doing math and then be ranked based on our team score.
In 2005 when I was 12 years old, I participated in the Sally Ride TOYChallenge, which involved inventing a toy and developing a prototype. My team's toy, called The Underwater X-treme, took us to the finals at Hasbro's headquarters in Boston where we pitched our toy before a board of judges. We ended up winning first prize which included a trip to NASA's Space Camp in Alabama.
I was an avid Lego-er. Aside from being a fan of following the instructions to build something cool, I loved making my own creations. I would build elaborate kingdoms, cities, vehicles and then bring my creations to life my creations through stop motion movies.
In high school, math and physics were my favorite subjects. While I procrastinated most homework, I would do math before I played video games, watched TV, or hung out with friends. I just enjoyed doing it.
I think these examples demonstrate the piece of what makes me, me: I am a passionate problem solver and a perpetual learner. When faced with a problem, I am excited and my brain starts running, speeding down every path trying to find a solution. I find it hard to rest with an unresolved challenge laid before me. My brain will even keep working while I sleep. It has happened on numerous occasions where I will fall asleep with a lingering problem and wake up with a solution. Or I'll simply dig in, research, and implement until I have arrived at the optimal solution. And then, I get that buzz, that feeling of accomplishment, that feeling of bringing something new to life and I keep coming back for more.
In university, I debated between engineering and biblical studies. I ended up choosing the later, which meant I stopped attending to my excitement for and skills in mathematics and all things tech. Fortunately as it turns out, this was temporary.
First Exposure
These passions were reawakened in grad school thanks to another love of mine--video games. My housemate and I shared a mutual love of gaming and spent long hours where we probably should have been studying exploring and creating in virtual worlds.
We were console gamers until we wanted mod Skyrim. Since we were broke graduate students in 2016, we turned to an old pc tower of mine from 2004. We upgraded that baby to it's highest capacity and were able to run Skyrim on the lowest settings possible. This didn't satisfy us for long, so we both built our own gaming PCs from scratch.
After spending many long hours gaming together, we thought it would be fun to create our own video game. We'd consumed a lot of good content, now it's time to create. I committed to learning programming so that we could get to work building our video game. Looking back, I have no idea what we were thinking. We were both full time graduate students and I had a part time job as a Youth Pastor. The task required more time than we were able to give.
Nonetheless I started an online course through Harvard called CS50: Introduction to Computer Science. The first half of the course is comprised of learning computer science basics through programming in C. This laid an excellent foundation of understanding memory allocation, pointers, data structures, and algorithms that still carries me today.
While this class didn't bring to fruition the world my housemate and I dreamed up, it did bring to surface my love for mathematics and problem solving. When I programmed, I actualized my capacities. I was good it and the concepts just made sense. I continued programming as a hobby because after all I was paying a lot of money for my graduate degree program. I stayed on my current path yet refused to let my love of mathematics be ignored.
Full Send
Many strands of my thinking and experience culminated in my decision to career pivot. Rather than list all of them here, I want to describe the moment I decided to full send.
I sat at the dinner table with my soon-to -be wife on a lazy summer night. We sipped our wine and dreamed about our future. As we did, the potential career pivot for me entered into the conversation. We'd spoken about it many times before; this time was different.
Our dreams about the future included children, a home for hospitality, a back house for grandparents, and my wife writing and raising our kids. These were important to us and that night they added a new weight into our discussion.
With these dreams on our hearts and minds, we decided I would career pivot into software engineering. I was overjoyed and excited--my passion for problem solving and love of mathematics would be given life.
Committing to a career pivot is one thing, making it happen another. With no technical background on paper, I didn't know where to turn. I finished the CS50 course and started learning Javascript on a deep level. Beyond this, I didn't know what would set me up for landing a job. I was confident in my ability, but how could I grow my skills?
I started a research phase. I spoke with my dev friends (some who also made rapid career pivots into software engineering). The overwhelming advice I received was build something or contribute to open source projects and if you can, join a team and get actual experience developing a product with multiple engineers.
Someone pointed me in the direction of Codesmith, a software engineering immersive program. The face paced learning environment and collaborative approach to engineering stood out to me. But what stood out to me most was the opportunity to work on a team under the guidance of the tech accelerator OS Labs. I was sold.
At the end of 2019, I stepped down from my position as Assistant Pastor at Journey of Faith and started Codesmith. I excelled at programming. The pace was perfect for me because it coding clicked. After developing my skills, OS Labs connected me with the Nautilus team.
The Nautilus team shared a passion for devops. We created a desktop application called Nautilus. It's a Docker Compose visualization tool. On the Nautilus team, I got more than just the experience I was looking for--I built and launched a product that I am proud of and made some good friends along the way.
Securing a Job
With Nautilus launched, the team decided to pursue other opportunities while maintaining the application. For me this meant job searching. The job hunt is full of challenges far different from the challenges of learning to program. This may have been the most difficult part for me in the whole career pivot journey.
The difficulty was twofold. First, sending out a quality application for a quality company takes a lot of energy--writing a cover letter unique to the company; researching the company's values, tech stack, and industry; and going through the interview process with specific companies. It's a constant performance and self-promotion so that my skills and personality will be noticed by a company.
Second, after all that energy most of the time (99% for me, it took around 100 applications before I landed a job), the process ends in rejection. I needed courage and confidence to keep pushing. I held on to what I knew was true about my ability and kept applying amidst rejection. But this also took a lot of energy and many days ended with discouragement.
I just keep chugging along. I found ways to sustain myself and my drive for programming during this time. I worked on algorithms every morning for an hour. One to prep for technical interviews when they came. And two because algorithms are fun and helped keep my coding skills fresh.
Also, I continued to work personal projects. I built this website that functions as a portfolio/blogger. I learned PHP by building a CMS under the guidance of an online course. I got involved in working on a friends web application called winebud. All of these projects allowed me to do what I love while I continued to apply to jobs. I kept a regular work schedule working from 9 to 5 on job apps and personal projects. It was hard, self-motivated work. And it all paid off.
After about a month and a half job hunting, I landed a job with Green Street Advisors working on the external web team. I couldn't be more excited about this opportunity and the company. The team is filled with bright engineers who love what they do and are excited by building cool stuff. It's a collaborative work environment where I'll be able to learn from experienced engineers and contribute from my skill set.
I signed the contract on Friday, June 5th and now I anxiously await my start date of July 6th. My sister-in-law's words describe how I felt, "And just like that, career changed."
The hard work paid off. I get to do something that aligns with my skill set and my passion. I look forward to showing up to my job because I love the work that I am doing. I can't wait to build cool stuff with my team at Green Street Advisors.
As said at the beginning, "I have always been a problem solver, a tinkerer, and an explorer." Software engineering is the culmination of this drive. I like to say that I've always been one at heart--researching, implementing, assessing, repeat. Now, it's just activated.
Hello world. I'm Joshua and I'm a software engineer at Green Street Advisors.