I just accepted a job offer as a software developer! Free Code Camp, along with many other things, helped me get to this point. In the job I will be using skills I learned and/or improved in the freeCodeCamp curriculum. I will also be using Ruby on Rails.
I detailed much of my journey in a Medium article. In this post I will fill-in some more details.
After I had decided to switch careers to software development and before I started my bachelors degree in the field, I was talking to a friend about the idea. He had recently started a Ruby on Rails course and asked if I wanted to complete it with him. I decided to hold off starting my bachelor’s degree for one month so I could do that course with him. (You can start at the beginning of any month at the school I attended.)
After completing the Rails course and the Bachelor’s degree, I continued to learn and build up my portfolio. I earned the FCC front-end certification and I started the other FCC certifications. I completed another Ruby on Rails course that was better (and cheaper—free) than the first one.
I continued making projects. I volunteered to develop web projects for different organizations. This included a craigslist-like site that I created for a church using Ruby on Rails. I also got some paid software gigs and developed a mobile app for a regional newspaper using Ionic.
Another thing I started in January was 100 Days of Code where I committed to coding an hour per day and posting about it every day on Twitter. (This is the part of this post where I try to re-frame a negative thing as positive.) I quietly gave up on 100 days of code (this is the negative thing) so I could focus more on the YouTube training videos and preparing for job applications (this is the positive part). I can definitely say I was still putting in an hour per day on things related to coding but those things were often not actually coding so I stopped posting about it on Twitter.
One of the non-coding activities I was doing was cold-emailing software developers and asking if I could meet up for coffee. I knew I wanted to move to Grand Rapids, MI to get a job, about a 2 1/2 hour drive from where I lived. I was able to meet up with 10 different people in Grand Rapids, four of whom ran software companies. I took multiple days off work to drive over to Grand Rapids and I often scheduled back-to-back meetings. I was also scheduling meetings with people involved with organizations I wanted to volunteer with after I move.
Here is an actual e-mail I sent to get an idea of what I said in my cold e-mails. I always started with something personal that showed what we had in common.
I don’t know you but we have a lot in common: you taught high school and then switched to software development and I currently teach high school and am about to switch to software development.
I’m currently a special education teacher in Saginaw but I’ve always done some coding on the side and I’ve spent all my free time in the last year learning software development (including getting a Bachelor’s degree in the field).
Anyway, I plan to teach until the end of this school year and then move to Grand Rapids to get a software job. (Grand Rapids is close to family.) I want to get to know some developers in the area and learn about the industry in Grand Rapids. Can I buy you a cup of coffee some time so I can ask you some questions about your experience as a software developer? I’d be interested to learn about your transition from teaching to software.
If you are willing to meet up with me, I will let you know the next time I’m in Grand Rapids so we can try to schedule something.
I had a pretty good success rate with this approach. Also, sometimes people I met with introduced me to other people. One of the company CEOs I met with introduced me to another CEO that I was able to meet with.
I would find the people to cold-email either by finding their names on the website for software companies I was interested in or by searching LinkedIn for 2nd and 3rd connections in Grand Rapids that had the word ‘software’ in their profile. I never contacted through LinkedIn; I would find their e-mail address somehow. If I had lived closer, I would have met with a lot more people. The idea to cold-email people came from a great article by Haseeb Qureshi about how to break into the tech industry.
Besides the one-one-one meetings, I also went to a few different meet-up groups. Again, this was limited because of the driving distance.
In one of my meetings with a company CEO that was set up completely through a cold-email, the person offered to set up a mock-interview at his company for me. The mock-interview was a great experience and I learned a lot—plus I was later invited back for a real interview! Another one of my meetings also led to an interview. However, that one was with a friend from college (the first time in college many years ago…) so we already had a relationship.
While the job I accepted did not end up coming out of one of these meetings, I expect that those connections I developed are going to continue to be beneficial in the future. Also, the interviews I got through the meetings could have impacted the job offer I accepted.
Another thing I did in preparation for applying for jobs was to make sure my online presence looked good. I updated LinkedIn, GitHub, and a website that shows projects I have developed.
I also updated my resume. To make my resume stand out, I included a section called “bad references” where I quoted some less-than-flattering comments about me from random people on the internet. I also included links to the original comments. The idea with the ‘bad references’ was that it would make it more interesting to read and that when people clicked through to see the comments in context it would end up reflecting positively on me. Here is the actual resume I used (minus my phone number). Feel free to copy the format.
The goal was to get multiple job offers at once to give myself greater bargaining power. This is one of the many plans I’ve had throughout this process that people have told me would not work out. Well, it did work out. I applied for maybe 50 jobs in one weekend. I also sent e-mails to different people I had met with letting them know I was looking for a job. I ended up booking 5 interviews in the span of three business days.
Keep in mind that I would have loved to work at any of the companies I interviewed with. I wasn’t just trying to get offers to bargain with but was seriously considering all the positions.
All the interviews went well. It was very helpful that I received a job offer of 60K/yr at my first interview. (A really good pay for my region and experience level.) Two other companies upped their potential offer by 15K after hearing about my first offer. One company ended up deciding that they wanted me but couldn’t afford to get close to matching my original offer. There were two companies that were interested but could not get an offer to me before I wanted to make a decision. I received a second offer for 65K and more vacation days than the first offer. The first company agreed to match that offer after I let them know I’d rather work at their company.
Maybe I could have gotten more if I had not revealed I would rather work at their company. But I’m still very happy with the offer and super excited about the company! Also, the people I have met there are awesome people and I’m looking forward to getting to know them better.
A few weeks ago a recruiter told me I’d be lucky to get 55K/yr in the area with my experience. Yet another example of people suggesting I set more reasonable goals. I’ve gotten good at ignoring that type of advice.
I ended up negotiating one last thing before accepting the offer. My wife thought this was silly but I asked for a different job title. Originally the title was “front-end web developer”. After hearing about my interest and experience with the back-end and Ruby on Rails, the job description was changed to include more of those things. Also, I will be working with a small group of developers and the idea is that I will be working on some core features. I’m only slightly embarrassed about this but they agreed to change the title of the position to “Senior Software Developer”. That title definitely gives me something to live up to. And it will look a lot better on my LinkedIn profile.