This is the story of how I got my first job in tech as a software engineer in less than a year after my first ever git commit, without spending any money, without a degree and without applying to a single job.
Small print: I already owned a MacBook Pro and I was living with my parents.
Preface: I wrote my first ever blog post outlining exactly why I chose a career in tech, which you can read here: Why I Chose A Career In Tech.
Mission: To help someone find their own path, create their own roadmap and see what's possible to achieve in tech in a year.
I'm always a fan of working backwards, so step one was inevitably answering the question: "where do I want to be and by when?". Although I was already aware of the kinds of jobs I was after and the salary range of a lot of positions, I needed to be specific.
I want to be remote, but accept that I may have to be office based for my first role (or two) until I have some experience.
I want to aim to enter the market as a mid-level developer. Worst case scenario, I'll be a strong junior.
I want to work for a company I respect and whose mission I support (sorry JP Morgan).
I want to work for a company where I have the opportunity to learn and grow.
Ok, so I have an end goal, but how the hell do I get there?
Well, like most things in life, it starts on Google and it ends with square eyes watching endless YouTube videos and reading countless blog posts, forums and articles. Eventually, I felt like I had a good idea as to how to achieve my goal. Enter my roadmap:
MDN Web Docs. The fundamentals.
Free Code Camp (FCC). Learn code interactively. Build simple but solid projects for my portfolio.
YouTube. Expand on things I learn on MDN & FCC. Use as a tool to help me understand things on MDN & FCC.
Git. Sign up to GitHub. Push every bit of code I write. Get those green squares. 3 functions: learn git, help to track my progress, show potential employers I'm serious!
Portfolio. Comprised of FCC projects, 2 simple unique projects, 2 full stack projects and 2 freelance projects. Aim to show technical ability, creative ability and professional ability.
Portfolio site. Create a portfolio site to showcase my portfolio. Design something sleek and modern that's technically advanced enough to showcase as a portfolio piece itself, and stands out from the crowd.
Social media. Twitter, Instagram, start a blog, LinkedIn, CV.
And finally, as an overarching point:
Live, eat and breathe code.
I feel this kind of goes without saying, but in order to get good at anything, you have to put the time in - especially if you've got a time limit!
Living, eating and breathing something means (to me) that aside from doing what you need to do to avoid burnout, you do the thing at every possible opportunity. This means that if you're drinking a coffee, you read about code. If you're playing Playstation, you listen to a podcast about code. If you're reading a book, you're reading a book about code. You get the point.
Personally speaking, my time off is normally exercising, so I always take 1 hour a day to remove myself from everything but the workout. Although, admittedly, sometimes I did use this time to listen to a YouTube video or podcast when I found something particularly difficult.
By the time I had finished researching and putting this plan together, it was around mid-February 2020. My target was to be 'job-ready' (not that I knew what this particularly meant) inside 2 years studying part-time, but then Covid hit, so with lockdown and no work firmly in place, I pushed this target to being job-ready by the end of the year, with a more ambitious target of getting my first job by the end of the year. (Spoiler alert: this didn't quite happen).
I completed the FCC certificates, got a MongoDB certificate, created an obligitory to do list in React, made a full stack blogging app with Django, made a full stack social media app with React, Express, Redux and Firebase, got 2 freelance clients and designed and built a modern brochure site for one using Node.js, Gulp, Sass and Pug, and designed and built a custom e-commerce solution for the other using PHP, Node.js, Gulp, Sass and Wordpress. I also designed and built my portfolio site with React, Typescript, Gulp and Sass, complete with Dev.to API integration and a theme switcher. I also incorporated current design trends and made it as unique and interesting as I could - mainly thanks to illustratations by my brother which I animated with CSS.
It was now time to start the 'get out there' part of my journey, so I stopped the projects, stopped the tutorials and started making my CV, signed up to LinkedIn and bookmarked a load of tech-orientated recruitment companies to contact.
I was fully prepared to be job hunting for months. In my head, I had set a target for a 3-month long job search, but in reality, I knew that even this was impossible to gauge. After all, I had no idea how good or bad my code was or how well suited I was to the tech industry! I had also never interviewed for a job in my life and had no qualifications to speak of, so there was that too.
Ok ok so what happened?!
npm run build on my portfolio project, published a few blog posts on Dev.to, made my CV, uploaded my CV to LinkedIn and set my profile to 'actively seeking work' or whatever the setting is. I also uploaded my CV to CV Library and then... I went to bed.
This was on Thursday 11th February 2021, 322 days after my first git commit.
I was going to give myself the weekend and begin my 8-hour a day job search on Monday.
However, on Friday 12th Feb, I had about 20 emails and my phone was ringing off the hook all day (literally) with recruiters wanting a chat. I hadn't sent a single email.
By the end of Friday, I had 4 interviews lined up for the following week.
By the end of the following week, I had 3 second-round interviews.
On the 26th Feb, I had a job offer.
I started my mid-level, remote software engineering role on 1st March 2021 for a start-up in London, building a platform that aims to help people.
Nearly 1 month on, I am still getting messages every day with job specs and interview requests from all kinds of different companies, large and small across a plethora of industries.
The short answer is, I have no idea! Based on what I've seen, read and heard from other people, YES, this is a fairly unique position to be in and I am very grateful and feel very fortunate. However, it does show you what's possible and how in demand developers and engineers are right now.
This is by no means an "I'VE MADE IT!" post. This is much more an "I've got my foot in the door, and here's how you can do it too!" post. I still work evenings and weekends to get better at what I do, and to bring more value to whomever I work with or for and ultimately, create more value for myself.
I'm aiming to write another post about my first month in tech and all the things I've learned during this whole process as I think that will be of more value to new and aspiring devs, but for now, the key takeaways I have to help land your first position are:
Create a plan and stick to it.
Do everything you can to show your passion: blog posts, social media and, most importantly, personal and unique projects.
GitHub. Get those green squares. It's simple, easy to achieve and it's visual.
Think like an engineer. Ultimately, this is what landed me my first role. Learning syntax in the grand scheme of things is easy. Thinking like an engineer is the biggest challenge and is ultimately invaluable.
Focus your CV around your achievements in tech. Created a website for a client? Great! What did this mean for the business?
Develop a passion for the process of learning and even the process of finding a job. Enjoy the challenge of it all. It's no fun if you're not having fun.
Lastly, you will struggle. You will feel dumb. You will feel like giving up. But, it's those who keep going that succeed. So....
If you're interested, here's a link to my portfolio.