I did it! It’s really happening! In a few short weeks, I will be working as a full-time developer at one of the biggest tech companies in Australia, whose website gets an average of 1 million hits per day. I’m living the dream.
It has been quite a journey to reach this point, and I will go into it in more detail below, but after being motivated by so many stories from career changers before me, I promised I would write my version one day. If I can have an impact on even 1 person, and help them achieve their dream, then writing this post was a success.
Right now, I’m on top of the world! I feel like I’m in some crazy, zero to hero Disney movie, that I’ve been the lucky recipient of some gift of fate. In reality, though, my story is not that different from many countless others. If you are reading this post, there is a fair chance that our stories have a lot in common, no doubt beginning with the desire to become a paid developer.
The point is that if I can do this, YOU can do this.
Aim big, set your goals, and take steps to create positive change in your life like I did.
It will be hard, you will have plenty of doubts, and moments of weakness. At the end of the day though, coding is a skill that is only going to be in greater and greater demand, and you can teach yourself without hardly spending a dollar (let alone hundreds of thousands that a degree would costs).
My approach to getting a job was a little different to many others that I have read. I focussed on fewer applications with a smarter, targetted approach, with the aim of making myself stand out. I will talk about this further down.
Hopefully, I can share some of the lessons I have learnt along the way.
I’m 28, began learning web dev roughly 2.5 years ago.
I live in Melbourne, Australia. There is a decent job market here.
I began the ‘job hunt’ phase about 5 months ago, though only submitted 3 applications in the end.
Got a job at a high profile tech company, whose website gets 1 million + hits a day, on a lot more money than I ever anticipated being on at this point in my career.
A little back story…
I was your average Australian kid, did reasonably well in High School, played sports and computer games, and always had an interest in tech, though my perceptions of working in tech were based around the unhappy looking IT guys at my school who’s job seem to consist of getting VCR’s working and turning computers off and on again a lot. I did I.T studies in my senior years, but the curriculum was based around tech support, and the closest thing to programming that we did was some math formula’s in Excel.
I left High School without much of an idea of what I wanted to do, or even what my options were. I chose to study for a Bachelor of Commerce, with a major in sports marketing. I like sports, great idea right? Turns out even the involvement of sports couldn’t make the airy-fairy nature of “Commerce” interesting for me. I changed majors a bunch of time, flip-flopping between economics, accounting, and ending up at marketing. This was the broadest major in the broadest degree I could think of, hoping that one day I’ll have a light-bulb moment and know how to apply it to something I want to do.
Unfortunately, my light bulb moment never materialized at uni. I began to struggle to keep up when the units got tougher, I had no spark, and no real motivation to learn this stuff. I got so bad that in a state of anxiety and depression I just didn’t show up to 2 of my exams because I knew I would fail them. I got called in to have a meeting with staff about it. Luckily, they were ok about it, and we agreed that a break from uni could be good, and it was. I moved out of home, worked full time selling computers, and just had a bit of fun. I was able to come back to uni, complete my remaining units and actually do pretty well grade-wise.
The other students around me had been busy reaching out to companies about jobs, landing internships, you know, adulting… I finished uni with a real sense of hopelessness. I felt like I had wasted my time, I didn’t get the grades to stand out, nor did I really care. I felt that the things I learnt at uni were not practical for me, that I had just memorized and regurgitated a bunch of marketing lingo from some overpriced textbooks.
I began working with my Dad at the family business (something I had always said I would NEVER do), a medium-sized foam manufacturer and upholstery supplies wholesaler. I loved working with my Dad and my family, but it was not where I imagined myself working forever. No career progression, same thing day after day.
I was discontent, I felt I had let myself down, and worst of all, I had no idea how to make things better. I was on a path to unhappiness.
A spark to start the fire…
So around 3 years ago, I decided that the business needed an updated website. After gawking at some of the prices thrown around by local agencies, with no inkling of web dev knowledge in my body, I set out to create an online store. I was lucky enough to be going on a snowboarding trip to Japan with some mates around the same time, one of whom was a web developer. I began picking his brain about where to start and settled on a Wordpress/Woocommerce solution. Talking about his career as a developer really caught my attention, solving problems every day for a job sounded interesting.
So I got back, and with the help of my friend, set up a basic online store over the next few months. At some point, I realised I needed to know a bit more about what was going on, how WordPress and everything worked.
So I stumbled across Free Code Camp, and this is where my life really changed. No amount of hyperbole could do justice to just how much of an impact freeCodeCamp and its community has had on my life. I can’t thank Quincy enough.
It wasn’t far into the curriculum that I finally had my light bulb moment. This was it, this is what I want to do. I was going to be a developer.
FreeCodeCamp and beyond
So I got stuck into FreeCodeCamp, I think it is easily the best curriculum out there for an intro to web dev. What really sets FCC apart for me, is the projects that you get to complete. Taking you off the rails, and throwing you in the proverbial deep end, not only forces you to really consolidate the learnings from the previous curriculum, and teaches you to think about how to plan out a website / program, as well as how to address problems that you run into, and source help and information from a variety of resources, be it documentation, chatrooms, stack overflow etc.
I worked through FreeCodeCamp, and eventually obtained my Frontend Certificate. At the time, FreeCodeCamp didn’t have as much content as it does these days, and I wandered off out into the world to learn on my own.
I decided to learn React, as it seemed to be exploding, and there seemed to be plenty of jobs around mentioning it. Watched a lot of video tutorials, and worked through a number of courses, including Wes Bos’s React for Beginners, and Brad Traversy’s MERN Stack Front to Back. Following through with Brad Traversy, and building a full stack application was really important to help my understanding about how an application is structured, where data comes from, and how it is moved around between front and back. It removed a lot of the cloud of mystery that surrounded everything outside the scope of front end.
Getting out there
Another great thing about FreeCodeCamp was the meetups that are in cities all over the world. It was hard in the beginning to put myself out there, and head into a room full of strangers for a couple hours, but one thing that I quickly realised, was that every time I went to a meetup, I would meet some amazing people who shared my passion and drive, and leave feeling more motivated than ever.
After some FreeCodeCamp meetups, I began going to other meetups, such as the JuniorDev meetups, and some hack nights. I also entered my first ever hackathon with friends I had made.
The lesson that has stuck with me throughout, is that meeting people and networking with other developers is INVALUABLE. The amount of contacts I made in the industry who helped me in one way or another is something I could have never anticipated. In fact, the role I have landed came about after I messaged one of the speakers at a meet up I attended. She was a career changer working at this amazing company, so I reached out to her on twitter afterwards. She ended up inviting me into their offices for a chat and a tour, where I was introduced to one of their talent acquisition team, and well… here I am!
Why’d I take so long??
As mentioned from the beginning, to now, has taken me almost 3 years. This might seem a long time to wait. Other people have gotten jobs after 6 months, right?
Well long story short, around the same time that I began learning, I also made a commitment to do some travel. After dealing with those feelings of failure and aimlessness, I decided that it felt like I was wasting time career-wise, that I shouldn’t waste time with anything else. So my partner and I made plans to head off and work a snow season in Niseko, Japan, followed by a few months of backpacking. This experience was life changing, to say the least. Because of this huge trip that we had set our hearts on, I wasn’t really in a position to rush out looking for a career change. It was great, I was just learning and learning, without the pressure of a job hunt hanging over me.
Turning our dream trip from a wishful thought, into a snow-filled, fun packed, cultured, sunkissed reality was a powerful experience. And gave me a real sense of self-belief to take through into my job hunt.
So it was July 2018, I arrived home just in time to see my hero, Quincy Larson, speak a the keynote speaker at LevelsConf. It was at LevelsConf that I began the final stage of my journey to my first developer job. A few of the bigger tech companies had set up booths in the lobby, and I spoke to a few of them about what application processes look like, how to best prepare, etc.
I was on the home stretch now, but it was going to be the toughest part of it all.
The job hunt
I think that this is where my story might differ from a lot of others. I quite often see the advice given - “Just apply for everything, send out 10 resumes a day, it’s just a numbers game”.
I arrived in Australia after travelling with this mindset, I had doubts about how I was going to be perceived, that I should take whatever job I could get, after all, I had no CS degree and no experience. My rough plan was to get my foot in the door, then work my ass off, and try work up to a top company in a few years.
Luckily for me, I was lucky enough to be good friends with a senior developer with plenty of industry experience. He became a mentor for me in the time I have been back home, and he quickly set about changing my defeatist mindset.
The best tech companies are ALWAYS looking for good developers, at all levels. You just need to be able to show them that you offer value.
Let’s get down to business
So… After all that, what did I actually DO that helped me land an amazing job at an amazing company?
Pick a handful of companies that you would love to work at. As a career changer, I wanted to work at a company that would allow me to learn quickly, continue my growth as a developer, somewhere where I would be surrounded by a lot of smart people, who were passionate about the same things I am.
After speaking with friends and researching online, I decided to rule out looking at agency work. It’s definitely not something I have ruled out forever, but I felt that there would be a greater focus on rushing to push out code to clients, with less of a focus on best practice, and deeper learning of technologies and design philosophies, which were things that I wanted to focus on at this early stage of my career.
I also decided that small startups would not be a good fit for me, for similar reasons. So I turned my attention to the bigger names in my city. I picked a few companies, to begin with, and looked at job descriptions for developer positions advertised (both current and past postings), as well as the careers pages and tech blogs if available.
What did these companies mention most?
What technologies did they work with?
How do they talk about their work culture?
What is their attitude to juniors and career changers?
Once I knew a bit more about what these companies were looking for in their developers, I would tailor my resume to best fit each one (while still being truthful). For example, if they mention teamwork and communication a lot, I would change my description of past jobs/uni to revolve around that.
This step is not only useful for tailoring your resume but will give you points to focus on in future interviews.
How to Stand Out?
I wanted to know, how will I be able to stand out from the numerous other applicants in my position? So I spoke to people in the industry. I tried to reach out to developers who were already working at those companies, typically through linked in and twitter, as well as meetups. I asked what the application process was like, what advice could they give?
I am lucky enough to have a close friend who is a senior developer at a tech startup, who was able to give me a very clear idea of what would impress developers at these companies. Some of the main topics that he told me to study up on were…
Design Patterns: If you walk into an interview as a “junior” who has never worked with other devs, and start talking about implementing design patterns, you will get peoples attention. A couple of the design patterns I focussed on (and successfully used one in my coding test submissions that got me my job) were the Commander, and Factory design patterns. Learn about when and why they are useful, and how they might look when implemented. MVC is another topic you should look into, especially if you are looking at companies that use Rails.
Data Structures and Big O: These two seem kind of intimidating, but are well worth looking in to. I didn’t get asked about these quite as much, but I felt like I had a greater understanding of programming in general, and these might come up more often in other cities/companies. Specifically, I learned about things like linked lists, binary search trees, hash tables, database indexing, stacks and heaps. A great resource to check out is the Base.CS podcast.
How does the internet work?: I was asked this a few times. What happens when you type www.nbgdev.com.au into your browser? Be able to talk about the process, DNS, HTTP verbs, etc
Test Driven Development: This is a BIG one. As a self-taught dev, it was so easy to just float from one cool thing to another, trying the latest and greatest frameworks. Testing seemed boring, something I could learn later. I think learning and implementing TDD was one of the biggest technical factors in getting my job offer, and I can honestly say I am a better developer for it. Watch this great series by Fun Fun Function (can’t post links but easy to find on youtube) for an intro to why we use TDD.
Turn the tables in the interview: As much as it is easy (and totally understandable) to enter into interview situations with the mindset that you would do anything to get this job, another thing that will impress your interviewers, is if you can show that you are looking for a company that matches your ambitions and values. How do they ensure a high quality of code? What is their team structure like? What is their onboarding process? Do they promote diversity and inclusiveness in their organisation? etc.
Have a side project you can discuss: This is pretty important, you need to be able to show off something that you created by yourself, and discuss decisions made regarding the choice of technologies, the structure of your code, and maybe some problems or points of interest that you ran into. I discussed a group money management app I had been building the help figure out who’s turn it was to buy the next round of drinks between friends. I built this using the MERN stack, which allowed me to discuss the relationship between the front and back ends and how data was transferred, as well as the use of a non-relational database and why I might like to replace MongoDB with a relational database in future. This shows off your ability and self-drive to learn and create things outside of following tutorials.
Research your interviewers if you can: This is a great tool to get your interviewers to feel like you are REALLY interested in the company, and themselves. I would look up my interviewers on linked in, twitter, and find any blog articles they had written. From these resources, I learned things like:
One of my interviewers was a co-author of a book on CSS with Rachel Andrews, a pioneer of CSS (Grid in particular).
One interviewer had worked at companies such as Microsoft.
One interviewer was a career changer and was already conducting interviews within a year of doing so.
All these were interesting talking points that helped highlight a deeper interest in them and their company.
What I’m hoping that you can take away from this wall of text is that there is a different path to your first dev job, one that doesn’t involve making 600 applications and latching onto the first offer you get no matter how bad the job/company might be for your future development. If you take the time to build your skills and knowledge in the areas I mention above, you will STAND OUT. It will still take time and effort, I believe that spending a few months studying fundamental programming concepts and making a handful of applications at a time, is a better, more efficient use of your time as compared to making hundreds of applications a month.
Happy to answer any questions, thanks for taking the time to read my long ass story