He shares how his love of solving puzzles translated to a job as a software developer, how he successfully got a job in the industry, and how others can do the same.
Hi Erik! Thanks for sharing your story with us. What you were doing before Code Fellows, and what prompted you to want to change careers?
I was working at an escape room in Seattle. Over my time working there, I grew fed up with the timers that we used to run our hour-long games (they were literally one-hour-long mp4 videos), and asked my boss if he would implement a better timer if I created one. With some Google searches and self-study, I created a rudimentary timer the next week in Python. Within the next few months, I had written five additional programs for that company, and decided I wanted to make software development into my career. A coworker recommended Code Fellows, and here I am on the other side!
That’s quite the process to discovering a new career path! Had you always played around with coding or was that your first time?
Actually it was my second time ever trying to code. The first was just a year before, during a class in college where we had to lightly use Java, although that was not the point of the class, and at that point it only confused me. I had always steered clear of coding, thinking, “eeh, that’s too smart for me” or “if I wanted to do that, I should have started when I was really young. I’ll never be able to keep up with people who have been coding their whole lives.” So I never really knew that it was such a great option for me until I was presented with an opportunity to actually make something that was needed.
Where do you think you got the assumption that you needed to start coding at a young age, and what finally disproved that for you?
For most of my life I had no clue what coding was. I thought that computers were super complex inventions, and so anything that ran them would also have to be complicated. Whenever I thought of what ‘coding’ was, I always imagined what you see when you press ‘view page source’ on most large scale websites: a seemingly endless document of garbled, unreadable nonsense. So I imagined coders as people who had been reading that stuff since they were young to actually effectively do anything with it.
The thing that disproved it was me actually finding out what coding is, in that class that I mentioned. And then actually allowing myself to give it a real shot while working at the escape room. It was substantially less mind-boggling than I had imagined it to be, and I ended up having a lot of fun with it!
How did you decide which programming language you wanted to study?
I had started out in Python, so that seemed a great place for me to stay. Plus, my biggest long-term interest is in machine learning, much of which is done in Python these days.
What was your favorite part of the program?
My favorite part was definitely lab time where we had open access to the TA’s and teacher. I work best when I’m free to code on my own and have help available when I get too stuck.
Also project week—it’s really fun to pick your own project to work on. Plus, I found it to be the least stressful period of each class, since I was no longer drowning in homework assignments and could focus in on one single project.
What was your favorite project to build?
Definitely my final project of my 401, where we built a neural network from scratch, and several training algorithms to teach it how to play tic tac toe. I’m really interested in doing machine learning as one of the big focuses of my career, and that confirmed that it was indeed what interested me, and gave me a strong understanding of how computer deep learning worked. Now, while working as a developer, I hope to continue creating deep learning programs on my own time so that I can eventually land a career working predominantly on ML code.
After you graduated, you spent some time as a TA. How did helping others learn the material affect your understanding of coding?
Honestly, in the aftermath of the 301 course, I felt like I understood none of it. It was only when I started outlining aloud how a lot of the code was supposed to fit together that it really began to click for me. It was a really strange and wonderful feeling, seeing the code that had baffled me several weeks prior suddenly seeming really simple to me when I had this second look at it.
For those who have the time and patience to do so, I absolutely recommend applying to be a TA. Even after the fast-paced curriculum where you may feel super lost at times and like you missed entire days of content just catching up on earlier stuff, it is truly astonishing how much you retain, and that is all cemented by being a TA.
Tell us about your new job at Usermind here in Seattle!
I work with a team that builds tools so other members of the company have easier access to our databases, systems, and APIs. I have personally worked mostly on an internal admin server, which houses functionality for common actions that our customer success team would otherwise need to contact one of our engineers to do. It’s a tiny Flask server designed to get off the ground easily and have lots of features implemented quickly.
What attracted you to the role and company?
Python was the first language I learned, so this Python role was a perfect fit. Usermind is an amazing and friendly company that is small enough for you to not be a number, and large enough that you’re never drowning on your own in an unfamiliar codebase without help close by. Also, they had already hired Code Fellows graduates in the past, and had confidence in my abilities going in. They didn’t look down upon me for my lack of CS background before going to Code Fellows.
What’s been the most surprising thing about your new career?
The most surprising part is how fun it is compared to everything else I had been doing, or was planning on doing. I view coding as solving puzzles for a career. I love puzzles (hence my working at the escape room). It is such a perfect fit that I am astonished I hadn’t found it earlier.
Any advice for someone who is starting out in software development?
Have fun with it. View it as a game or challenge, not a chore. Stick through the frustrating bits, and those ‘Aha! I got it!’ moments are some of the most rewarding things in the world.
If you are discouraged and don’t understand what’s going on in a codebase, that is normal, and happens to everyone—even in the professional sphere.
Take some extra time to learn how git works. And I mean really learn it more than just add-commit-push. There are so many cool tricks you can do with it that can save you a huge amount of time and stress when (not if, when) something inevitably goes wrong with one of your branches or repos.
If someone was considering attending Code Fellows, what would you tell them?
I’d tell them to go for it! I would tell them all the pros and cons of the curriculum from my perception, including what I learned, how long it took, how hard it was, etc. In fact, I have already done this and there is a current student attending due to my recommendation.
Thanks for sharing your experience with us, Erik!
If you like solving problems and want to give software development a try, join us in an upcoming one-day Code 101 workshop.