Marissa Would...

CODE / June 25, 2021 / Career Transition

FROM TEACHER TO TECH - PART 3

This is the third and final part of my series on how I transitioned from high school teacher to software engineer. If you want to know more about why I quit teaching, check out part 1. If you want to know more about how and why I chose my Bootcamp, check out part 2.

So, I decided to change careers, attended a Bootcamp and the real difficult part was next: finding a job. As of the time of this posting I am in my second software job so I'll talk about landing the first one and the second one. Everyone's career path will look different. It can take people months and even up to a year to land their first software job.

Why is it so hard to land a junior software developer/engineer job?

I don't really have any answers as to why this seems to be so difficult. It took me two months of devoting about 30 hours a week to applying and interviewing before I started my first role which was a full stack developer at a small (5 person) software agency. I started out as a contractor for about a month before getting hired as a full-time employee with benefits. This was not the type of role I envisioned when I set out on my job search. If I'm being completely honest, I took a small pay cut from my last teaching job to my first software job1. But I gained so much valuable experience and had a much better work-life balance. Even with the pay cut, it was worth it to change industries for me. If you are coming from a different situation, and a better paying job, you may have to take a significantly lower salary to start, but 2-3 years down the line, after you gain experience, so many more opportunities open up and your salary potential goes way up.

How my Bootcamp helped with my job search

I graduated from General Assembly's Web Development Immersive (now renamed to Software Engineering Immersive) and they built in sessions once a week for us to work on getting ready for our job search at the end of the program. We revamped our resumes and LinkedIn profiles. We took professional headshots for our LinkedIn and personal portfolio websites. We did practice interviews. We did exercises to help narrow down our ideal role. We had a career coach look over our cover letters. We had panels with GA alumni where we could ask questions and get advice. We even had a field trip to a local start-up to get a glimpse of a day in the life of a developer. Post-graduation, we were encouraged to continue to come to campus to work on applications and had weekly check-ins with a career coach until we landed a job or voluntarily stop using that resource. General Assembly used to have profiles of alumni available on their website for employers to look at, and this is actually how I got my first job, but upon searching for it today, it appears that they have discontinued this and partnered with Hired and Vettery instead.

All of this was very helpful. But I still found it very difficult to get my first job.

My job search

Keeping in mind that everyone is different, here is a breakdown of how my job search panned out. My program ended on August 3rd and I started my first job on September 26. It took slightly less than two months, which doesn't sound that bad, but it was the longest, most grueling two months of my life. It was two months of rejection. Two months of attending meet-ups and trying my best to network. Two months of spending hours on LinkedIn and every job board I could think of. Two months of writing cover letters and filling out applications. Two months of follow-up emails after phone screens. Two months of going to every job fair2 I could find. Two months of griding away on practice coding challenges on leetcode and other similar websites. According to my spreadsheet tracker, I applied to 60 different jobs. (I continued to apply to new postings while I was working as a contractor so these were spread out over 3 months). I had about 7 phone screens, then 4 companies invited me to a phone or video interview or take home code challenge and only 2 invited me for in-person interviews.

Looking back, two months isn't really that long, but when I was in the middle of it, it felt like forever. I think the hardest part of a job search is staying in a good headspace. All the rejection can feel crushing. It can seep into your mental state right before your phone screen or virtual interview. The skill of interviewing is separate from actually being able to do your job as an engineer/developer. It takes practice, but the more practice you get, the more rejection you face. It can turn into a vicious cycle that feeds into your imposter syndrome which makes it more difficult for you to present yourself well in your interviews. I don't think I paused to regroup enough after disappointment. Truthfully, before tech, I had always had a really easy time interviewing for my previous jobs. It was such a drastic difference to go from always having multiple offers and frequently getting invited to interview for open positions to fighting just to get someone to contact me for a phone screen. I was definitely hit hard by all the rejection.

My first job as a developer

After all of the applying and interviewing I finally got an offer. It wasn't ideal but I was really in the pits of hell and willing to take almost any job where I thought I could learn and grow. Originally I wanted to be at a more established company with big software teams and lots of structure and people to learn from. At my job, there were only 2 other devs. One was leaving for a new job so I had about 3 weeks of overlap but I was taking his place. It was scary as a brand new dev right out of a Bootcamp. The other dev was also remote. This was in 2017 before the whole world had to figure out how to be effective remotely. It wasn't what I had envisioned, but it was a good enough place to be to start.

My first job used Ruby on Rails with Vue.js on top. I had some experience with Vue, but Ruby was completely new to me. I didn't learn either of these in my Bootcamp, but I had gone to a local VueDC meetup and experimented with it a bit on my own. I started out styling static pages and gradually learned more Vue and Ruby to take on more responsibilities. I paired a lot with the other more experienced dev on my team. He was self-taught and was a very good teacher. Part of why I love pair programming so much is because I had great experiences in my first job. It's a great way to learn more and share knowledge. It's a great way to collaboratively think through a problem and pick up new tools and tricks.

Eventually, we hired another dev to bring the team up to 3. Our new hire came out of the same Bootcamp I attended and was local to DC so I had the opportunity to help train up someone new before I left.

When it's time to move on.

There are a lot of reasons to move on from your first role. But I knew it was time to move on when the benefits of my role (compensation, etc.) were no longer competitive for my experience. This also coincided with a big hiring boom in tech during covid so it was very good timing. My second job search was way less intense than my first. There's a lot less pressure when you already have a job. The stakes are lower. If it's a 'no' you can still pay your bills. You can take your time and only apply to things that you find interesting. The first job is all about getting your foot in the door, the second job should be closer to your ideal situation and role.

My Second Software Job

My second and current role is a huge step up from my first role. I have an actual manager who cares about growing my career. There are three other female engineers on my team3! I had to learn a new stack in my new role, which was a little intimidating but seems like it will probably be the norm when switching jobs. My new company uses python/Django for the back end and Ember.js for the front end. I had some exposure to python/Django during my Bootcamp but had basically forgotten everything. Luckily, once you learn one framework picking up new ones is easier. You can always look up the language-specific syntax.

My new company is in an industry that I care about (fitness) and I'm working on things that I find exciting. In my first job, we took on many projects for different clients and I never knew what was coming next. Now, I work on one product in a larger organization. I've learned how to write tests4 and do code reviews and other things that are important in a larger system.

Light at the end of the tunnel

I'm just now, about 3 years after deciding to pursue coding, hitting a groove in my career. Recruiters are reaching out to me all the time with opportunities (some of them worth responding to). I have enough experience to expect a competitive salary. It was an uphill battle to get here but all that early struggle is paying off. When anyone asks me about switching careers into tech I always emphasize that the first 2-3 years will be difficult but it is all worth it in the end. I can't imagine what my life would look like if I had continued as a high school science teacher, but I would definitely be making less money and working worse hours.

1 I made about $2500 less per year in my first software job than my last teaching job.

2 I still go to job fairs whenever I hear about them even if I'm not actively looking for a job. It's a good way to network (which I find very difficult), and, more importantly, you get a bunch of free swag. Give me all the free stickers, notebooks, pens, and t-shirts, thank you!

3 The industry is still very dominated by men, so being on a majority-female engineering team is definitely a rarity.

4 In my first job we talked about adding test coverage to some of the larger apps we built, but when there's a deadline for a client, test coverage was the first thing to fall off and we outsourced manual testing instead of writing tests most of the time.

Find a typo or broken link? Something not clear? Submit an issue to my github repo!