From Cook to Software Engineer: How Apprenticeship Helped Make My Dream a Reality
Tags: career, beginners
Published: 2020-12-11 22:01:59

"A long apprenticeship is the most logical way to success," guitarist Chet Atkins once said. "The only alternative is overnight stardom, but I can't give you a formula for that." In April 2018, when I signed up for an online web development boot camp, overnight success was exactly what I had in mind. I had hoped to spend three months, six months at the most, learning to code and then land a high-paying job in software development. Reality didn't play out that way, and I couldn't be happier about it.

This story starts around February 2018 in Portland, Oregon, where I was working as a chef. Starting out making fries in a dive bar, I worked my way through culinary school, into fine dining, then restaurant management. For many people, professional cooking is a dream job, but my time in it had strained my relationships and left me burnt out and disillusioned. Low pay, long hours, and working every holiday made it very difficult for me to provide the kind of life I wanted for my family. Then one day I saw an ad for a coding boot camp. I liked computers, but didn't know much about them, and had never written a line of code in my life. The idea intrigued me enough to do a little research. I found that while most people seemed to feel that it would be impossible to be hired in software without a degree in Computer Science, enough people said the opposite that I was convinced coding could be my ticket out of the hand to mouth existence my family and I were stuck in. After learning some basic HTML and CSS, I signed on the dotted line and enrolled in Flatiron School.

Most people in my life thought I was crazy - and for all I knew I was. How could a burnt-out ex-cook with no experience and no college degree possibly hope to get hired by a software company? My faith (and my family's faith in me) was tested often as programming proved itself harder to learn than I imagined. The first three months came and went and I had not progressed very far in the curriculum. Six months passed, and I started to wonder if I had made a huge mistake. Sitting in Starbucks one day, struggling to complete a coding exercise, I saw an email come through from Ruby Central, the organization that runs RubyConf, a conference for professionals and enthusiasts of the Ruby programming language. Several weeks earlier I had applied for an Opportunity Scholarship to attend the conference that year in Los Angeles. Much to my surprise, I read that I was a runner-up and had been put on the waiting list but someone wasn't able to go, so the scholarship had gone to me.

I got off the bus from LAX and walked downtown to the nicest hotel I had ever set foot in. Later that night, they held a reception for the scholarship recipients where I met Brandon, my conference guide. We got along well enough that I felt comfortable opening up to him about my hopes and fears. At dinner one night I told him about wanting to give my family a better life but not knowing if I could do it. I liked writing code but sometimes learning it felt impossible. And if I did manage to learn to code, would anyone ever actually hire me?'

"I promise you," he said seriously, "two years from now you will have a job and your financial situation will be completely different."

"When that happens," he added, "I want to see you tell this story."

He taught me to believe in what I can't see yet and to work for it. To make the most of the opportunities given and always remember that even when things don't work out right away, how fortunate I am to have the opportunity to try at all.

I took a cab back to my hotel, and as we pulled into the parking lot, the driver looked in the rearview and said, "I don't know what it is, but when you got in the car I just felt like the universe was moving in your favor. Like you are headed in the right direction, wherever you're going."

Having the universe on my side was nice, but when I got back to Portland I hit the books harder than ever. My wife and I had been married for seven years, and they were seven years of struggle. I resolved to change our lives for the better and not quit until I had exhausted every opportunity I could find. When I got close to the finish line I started interviewing for jobs. After many applications that went nowhere, many first and second interviews that resulted in rejection emails, and too many days spent jumping at every notification and phone call, I had an offer. I eagerly accepted it, and when I told my wife what my salary would be she was speechless. We stood in our tiny kitchen in silence, sipping whiskey in the afternoon. It was a lot to take in. Almost two years after I wrote my first line of code, our seven years of struggle was finally over.

The next three months were some of the happiest of my life, and then one Monday morning I went to work to find it was all gone. The COVID-19 pandemic had taken its toll on my employer's business and many of us were laid off. I spent the next several weeks trying to figure out what to do next, and it was then that I met Dave Hoover. I liked him immediately, and I was intrigued when he told me about the Red Squirrel Apprenticeship Program. If I were to become an apprentice I would spend thirty to sixty days working closely with a mentor to design and build a passion project while gaining practical experience helping out with client work. Dave's credentials in the apprenticeship sphere lent a lot of credibility to the things we discussed in our initial meeting, and so I eventually decided to go for it.

Before my layoff, I had been working on building an HTTP server in Java, and I decided to continue along those lines for my apprenticeship project. I switched it up a little, though, and decided to build a chat web application using Ruby on Rails, ActionCable, and React. For exposure to client work, I was assigned to GoLogic, an exciting Chicago-based startup working to provide small businesses with product delivery and pick up solutions, which was especially relevant work given the COVID crisis. The API endpoints lacked test coverage and my first assignment was to fix that. In the process, I learned much about building a professional-level API, and also how that specific API functions, which ended up being crucial knowledge when I was given front end tasks later. I worked closely with my mentor Jake, a senior engineer at Red Squirrel. Every time we paired I learned something I had never seen before, and he helped me take my code to the next level. "The quickest way to get better," he said to me once, "is to get your ass kicked in code review over and over again." While that may not be an exact quote, that's the way I heard it, and it proved to be true once I was given features to work on. That can be a frustrating experience for a junior developer who feels like they have a lot to prove, but I found that by listening to and acting on feedback, I improved faster than I imagined I would.

I graduated from my apprenticeship after sixty days, and I've been at Red Squirrel ever since. My assignments since then have consistently pushed me to the edges of my comfort zone, expanding my knowledge and skills. Every day is a learning experience, which I think is the beauty of being a junior level engineer, but I imagine that also applies to being an engineer at any level.

Looking back, I'm grateful for all the people who helped me get to where I am. Looking forward, I'm grateful to go to work every day with a group of people who are not only among the nicest people I know but who are also dedicated and talented teachers with a wealth of combined experience.

But I wouldn't be here if the right people hadn't come along at the right time urging me to keep going. And so if you're reading this, and you're feeling the way I felt, don't give up. Keep going. You may fail or you may succeed, but if you stop too soon, or if you don't start in the first place, you'll never know if your story might have ended differently.

And I want to read yours next.