While my journey isn't unique in that there are plenty of devs out there with "non-traditional" backgrounds, I think it is always valuable to hear another story. TL;DR -- I have a background in linguistics and Italian studies, having double majored in the two during my undergrad. After about a year, I started Lambda School to learn full stack web development and about a year later, I landed my first job as a DX Engineer at Apollo! Keep reading for more in-depth details 😊
I went to college at Brigham Young University and double majored in Linguistics and Italian Studies. I had lived in Italy for a year and a half for my LDS church mission and wanted to keep up the language I had fallen in love with and spent so much time and effort learning. But while I did really well in school, I felt lost as to what career I wanted.
During my junior year, I started to come to the realization that I did not want a career in linguistics. At least, not one that my program was preparing me for. I did not want to do research and my localization internship helped me realize that I didn't find that field interesting or fulfilling enough. And while I thoroughly enjoyed my time teaching the Italian 102 class at BYU, there aren't exactly great opportunities for career growth in that field.
I took a CS class as my "fun" class one semester at my husband's encouragement. I quickly found that I did NOT like it. At least, I didn't like C++. It probably didn't help that it was my professor's first time ever teaching, so it was a bit rocky at times. So I wrote off programming as a career possibility. Then for one of my linguistics program's elective courses, I decided to give it one more chance and took a text processing class in Python. It was kinda cool to scrape web pages to analyze the language, but it definitely was not for me. What the class did help me realize is that I did get a lot of satisfaction from writing a program that successfully does something for you. Even though I didn't like C++, I didn't mind Python. So writing code as a career worked its way back on the table.
In April 2018, graduation came and went. I had great academic success in my programs, but still no clear future for a career. At the time, I didn't think I would want a career since I was pregnant. I wanted to give the stay-at-home-mom thing a shot and see if I even still wanted a career.
My husband was still finishing up his Master's degree in Information Systems at BYU. After a lot of debating and pondering, he decided he wanted to go on and get his PhD. Oof. MORE school with a baby? How were we going to afford that? Even though PhD programs in IS are generous with their stipends and scholarships, it would only be enough for someone who was single. How would our little family be able to afford everything?
As we were looking into all of our different options, we toyed with the idea of me working remotely from home during the PhD program. Maybe if I did that, we could avoid having to take out student loans. I didn't want to do customer service. I had had enough of customer service from my previous jobs as a student. What kind of work would I do? My husband suggested looking into coding bootcamps. He had worked with a bootcamp grad during one of his internships and had a friend that used to work at Lambda School. I was hesitant because I didn't want to pay to learn something only to realize that I don't like it. Lambda School seemed like a good option with their ISA. We didn't have to pay anything up front, if I didn't like it I could withdraw during the first unit without owing anything, and I would only have to pay afterwards after getting a high enough paying job. Sounds pretty great, right? They also offered a part-time program, so I could do my classes in the evenings while my husband was finishing up his last year of grad school. To top it all off, they had a new part-time cohort starting in a month, which would've let me finish only 1 semester into my husband's PhD program. I would be able to start working pretty early on and help us avoid student loans!
Plot twist: After visiting some schools, taking the GMAT, and narrowing down which programs to do, my husband ended up not going on to a PhD program at all and decided to work in industry instead. He's now a frontend engineer at MX.
Bootcamps are not for everyone. Lambda School is not for everyone. Personally, I found the pace a bit too slow at times. Although anecdotal evidence might suggest that I'm simply a fast learner and that the pace was just fine, if not too fast, for many others. Pace aside, the accountability was wonderful for me. We were placed into smaller groups of ~8 students and had a Team Lead assigned to our group. Essentially they were what my TA's in my college CS class were. They took attendance, did code reviews with us, and graded our assignments and "sprint challenges" (tests). They also did 1:1's and standup group zoom meetings to check in on everyone to see how we were doing and provide additional support and resources. I think I could have learned very well on my own, but the accountability helped me learn things more quickly than I probably would've if I self-studied. I even was a Team Lead myself for a few months, thanks to the encouragement of one of my own Team Leads. It was an awesome experience being able to help teach and mentor other students who were just starting out their web development journeys.
Caveat: Lambda School has since greatly restructured their curriculum and done away with Team Lead's. As such, I cannot in good conscience recommend Lambda School to anyone because I cannot vouch for a program that is very different from what I experienced.
The side project that I believe really helped me get my job was my Pokédex project. I created a GraphQL API from scratch using PokéAPI's SQLite database. Then I made a frontend PWA with Gatsby using my API. To help myself remember all of the fields I could query from my API, I made some docs. While the project is by no means finished, having a fairly polished project (even if it's just MVP) on my portfolio gave me a lot to talk about in my cover letter and interviews.
Application and Interview Process
Now I want to preface this with acknowledging that many people apply to literally hundreds of jobs before getting an offer. Networking can certainly help, but I also believe that privilege and luck are also big factors. In my case, I applied to about 40 jobs before getting an offer from Apollo. Here's an overview of that process:
I originally saw the job posting on Twitter! I was already following some people that worked at Apollo, so that's how it showed up on my feed. I read over the job description and thought it sounded exactly like what I wanted. I'd be working with Gatsby and GraphQL, some of my favorite technologies. And there would also be dedicated time to give back to the dev community, like with blog posts, streaming, etc. I couldn't imagine a more perfect position! And what made it even better was that I had JUST deployed my Pokédex PWA literally that morning. It was too coincidental. So I wrote a solid cover letter, applied, and replied to the tweet saying that I had applied. Within a couple of hours, the original poster DM'ed me saying how impressed she was with my cover letter. After that, I got a call from the recruiter!
After an initial phone screen with her, I had a behavioral interview with the team's manager. Then the next round was a technical interview with the engineer on the team who will be my mentor. And then for the final round, there were 4 interviews with 4 different people: one from the documentation team, one of the developer advocates, the manager again, and then the CTO/co-founder. The whole process, from the day I applied to when I signed my offer, only took a month! And my first day is coming up quick on the 23rd 🤗
During the interviews, I got to talk about a project I'm proud of. So of course I talked about my Pokédex project. And even though most of my group projects at Lambda School didn't turn out well, I still had all of that group experience to talk about during the interviews with the manager.
For my interview with the documentation lead, I had to send him some content I'd made ahead of time so that we could talk about it during the interview. I debated between my GraphQL API docs or one of my blog posts. Ultimately I chose the docs and I think it was a good choice! We talked about the content itself and how I decided what to write and how to present it. But we also talked about what technology I used to make it. He seemed pretty impressed with it, especially after I told him that I made it for myself and not necessarily for anyone else to use. I mean, if someone else does use it and finds it helpful, that's great! But I mostly made it for myself so that I didn't have to keep poking around my code every time I needed to look up a field or something.
Overall, it was a great interview experience. I felt really comfortable and they all felt like conversations instead of more of a one-sided "interrogation", if you will. I've never felt so comfortable and confident in any kind of interview I've ever had, which I think really helped.
Lambda School did not give me everything I needed to get a job. My portfolio is not full of projects from Lambda School. What I gained from Lambda School was a lot of experience working remotely, group experiences I could talk about, and a strong enough base to know how to learn more on my own and build my own projects.
I also recognize the enormous amount of privilege I have that helped immensely in my job search. My family situation is such that I can spend a lot of extra time learning and practicing. I have a supportive spouse who works in the same industry and can kind of double as a mentor and pair programming partner if I'm stumped on a bug. Finding a job wasn't financially urgent for me or my family, so I could afford to be picky and take more time to find jobs I was truly interested in. It would be remiss of me not to acknowledge the privilege I have that has helped me get to where I am, especially in 2020 of all years.
To summarize what I felt were the most helpful things in getting me from programming noob to landing my first job:
- Build a solid portfolio! Reading Josh Comeau's book, Building an Effective Dev Portfolio, helped me realize that I needed to put a pause on starting countless new projects but never finishing any of them. So I picked up my dusty Pokédex project from off the shelf and finished MVP! In hindsight, this was the best thing I ever did. Now I have a much more solid portfolio piece that I was able to talk about in interviews and I'm excited to keep working on it to add more features and polish it even more.
- Practice, practice, practice! All of the extra time I put in outside of my Lambda School class hours really paid off. During my technical interview, I could focus on the solution and not be distracted with trying to remember React syntax and which hooks to use.
- Learn new things, but don't get stuck in "tutorial hell". When you learn a new technology, whether it's from docs or a tutorial, turn around and make something with it on your own. That way you get more practice, but without as much hand holding.
- When applying for jobs, include a solid cover letter! If it's a job you're sincerely interested in, it's worth the extra time and effort to write a cover letter that's tailored to the position. I'm fully convinced having a good cover letter is what got me an interview with Apollo.