From Zero to Convergian

The 9th January 2018 marked my first year anniversary working at Converge, and this also marked one year of professional experience as a software engineer. You might be thinking that this is my first job after graduating from university, alas I am nearly 33 and graduated 8 years ago (with a degree in photography). My journey from fresh-faced arts grad to full-stack Javascript engineer wasn’t simple. It involved many hard decisions, countless hours of work, and spanned three different continents…but I’ll cover all of that below.

In the beginning…

Whilst at university I had my first encounter with coding: to make an interactive photograph using Adobe Flash. This brief flutter with ActionScript certainly switched on some light bulbs in my head, but they were switched off pretty rapidly after coming to the conclusions that: a) I surely wasn’t smart enough to study computer science at university (because that’s what you need to do to become a software engineer right?) and b) there was no way I could afford (mentally and financially) to drop out halfway through my current degree and start a new one.

Finishing university in the middle of the recession was terrible for any graduate, let alone one with an arts degree. What followed was a year of trying to get my foot in the door (aka work for free for an unspecified amount of time) at any company willing to take me on, which was none.

One day during the summer of 2011 I got an email from the founder of Documentary Arts Asia, a Thailand based NGO that tackles social and environmental issues in Southeast Asia through the mediums of photography and film. They offered me an internship and my main task would be to help them setup and run their first gallery/events space in Chiang Mai.

It was a massive jump into the unknown, but with the monotony of daily life in the UK and no sign of things improving I seized the opportunity to live and work in a far away land. I only had a few months to prepare myself (and my family) for this sudden decision, and on 12th January 2012 I said goodbye to my friends and family and boarded a one-way flight to Bangkok.

I could write a book on what happened in the following years, but we shall fast forward to 2014, by which point I was living in Melbourne with my girlfriend and starting the process to apply for Australian permanent residency.

This is where it began…

Initially I started to learn to code out of curiosity to learn something new and the desire to teach myself a new skill set. Even after my initial foray into the world of software engineering I was blown away by the overwhelming number of resources out there and it wasn’t long before I had signed up to Codecademy.

Progress was slow but I was working my way through the Codecademy courses on HTML, CSS and Javascript. Before long, I started thinking that if I put in some serious hours I might be able to actually start building a website for myself or a friend that might need one, I was however lacking some direction and focus. Looking back I am glad I spotted this early on as the vastness of the software development ecosystem is a scary realm for any engineer, let alone a novice, and it is very easy to lose your way whilst trying to traverse it.

Someone suggested I try Treehouse (a fantastic online coding resource for self-learners) to have a structured curriculum to follow, and as such I started a free trial and within two weeks I was hooked and started paying for a full membership. I worked my way through the front-end focused curriculum, which was a real step-up from the Codecademy tutorials I had dabbled with previously. I certainly felt as though I was getting somewhere, although at that stage I wasn’t sure where that “somewhere” actually was.

A lot of people think that if you work through online resources such as Codecademy and Treehouse then you can code by the end of it (I was one of those in the beginning), but after spending a lot of time on both platforms it became clear that this was obviously a naive assumption. Tutorials are a great tool for becoming familiar with a new language or concept (I used Codecademy earlier this week to brush up on my SQL basics), but they can only take one so far and the best way to really learn is to work on a real life project. So, I set myself the challenge of building a photography portfolio site, and it was during this period that I started toying with the idea of coding for a living. A lot of research into how to become a professional software engineer without a relevant degree followed, and something that kept popping up were articles about coding bootcamps.

Learn to code in 12 weeks…

Time was a problem for me whilst self learning. Working full time then coming home to try and squeeze in a few hours of coding was tough to say the least. I knew I had to do be doing this full time, but a degree wasn’t an option and part time courses took longer than a degree. The only other option on the table was a coding bootcamp. The premise of a coding bootcamp: an intensive full time course (usually 3 months or more) by the end of which the student is armed with the skill set to work professionally as a junior software engineer.

I did a lot of research and found numerous positives and negatives to enrolling on such a course. My main concerns about taking the plunge were: a) they are expensive (but still less than a degree) b) was I smart enough? It would be an expensive way to find out I wasn’t, and c) you can’t actually learn to code in 12 weeks, would I be able to get a job at the end of it?

I remember the day well: we were at the 1st birthday party of our friend’s son and I got chatting to someone about how I was teaching myself to code. I also mentioned I was debating with the idea of enrolling at General Assembly (Melbourne’s only bootcamp at the time), in response he said “I have just hired some graduates from that course”. Little did I know it at the time, but attending Noah’s 1st birthday party changed the course of my life.

I was now sold on applying for a spot on the General Assembly course, but before that could happen my partner and I needed to get our permanent residency sorted and I needed to figure out how I was going to pay the fees and not be employed for several months.

Life got turned upside down…

I can’t remember the exact date but sometime in September 2015 we were on holiday in Vietnam when we got the devastating news that Australian immigration had changed the rules surrounding permanent residency applications and that we no longer qualified.

This was obviously a shock and completely unplanned, coding was pushed down the list of priorities whilst we organised our lives and shipped them back home (via a three month adventure in Asia). This also meant that I wasn’t able to apply for General Assembly in Melbourne, but all was not lost as there was a campus back home in London, along with various other bootcamps.

Best of the bunch…

By the time I touched down at Heathrow I had two interviews lined up: one at General Assembly and one at Makers Academy. The latter is regarded as the best coding bootcamp in Europe and is renowned for its tough application process, as such they only accept around 10% of applicants. Based on all that I knew of Makers it was my preferred choice, but I didn’t get my hopes up as I had a lot of prep to do before the interview. The prep wouldn’t have normally been a problem, but I was halfway into an adventure through Asia (sans laptop and reliable internet), and by the time we got home I had less than two weeks to get up to speed.

During my second interview at Makers they stepped the technical test up a gear (Ruby katas in Code Wars) and drilled further into my approach to solving problems. I was shown around the office and it was clear it was a special place and head and shoulders above the rest. The buzz in the main space was amazing, students were taking time out by playing table tennis, there were sleep meditation and yoga classes taking place, and most importantly everyone was clearly enjoying themselves whilst working their socks off. Later that day I got the call saying I had a spot on the May 2016 cohort, I couldn’t quite believe it. Maybe leaving Australia wasn’t going to be so bad after all?

Back to school…

Rather than give an account of my time at Makers you can checkout a series of posts I wrote whilst I was there, but unfortunately I found myself short on time and brainpower near the end of the course so the final weeks are not covered.

The amount of information that we had to absorb was something I was not really prepared for, and I never knew it was possible to be so exhausted through exercising your brain. There are two things in particular that I would class as the most valuable skills I learnt during those 16 weeks, and that I am still improving upon to this day: a) learning how to learn, and b) being comfortable with feeling out of my depth all the time.

Being in an environment that allows me to be learning something new everyday is what made me want to become a software engineer. In such a profession it is important to be able to pick things up fast and efficiently, which can be made difficult by things such as poor documentation (sometimes no documentation even exists) or the complexity of the concepts or technology that need to be understood. Over the duration of the course I learnt how to approach something completely alien and extract what was needed to build an overall understanding of how it worked, such as understanding the ins and outs of a poorly documented Node module by looking at it’s source code.

Something that I (and most other new engineers) experience almost every day is a feeling of being out of one’s depth. This was particularly the case whilst at Makers but is still true to an extent today. As human beings most of us don’t like being wrong about something, we get frustrated when we try to understand something really complex but we just can’t “get it” and failing at a task makes us start to question our own abilities. A combination of some or all of those situations happened everyday at Makers and sums up what I mean by “feeling out of my depth”.

Throughout the duration of Makers I got used to this feeling and it has set me up in good stead for being a professional engineer. This is not to say the previous situations don’t happen virtually on a daily basis, but I am now well versed in dealing with them and actually enjoy being wrong about something as it is an indication I haven’t fully understood the problem and I need to dive in deeper.

My time at Makers flew by and before I knew it I was giving a presentation to over 100 people about our final project. If I was to sum up those 16 weeks in one sentence: a life changing experience that challenged me every minute of every day.

The job hunt…

Simply put: finding a job after Makers was tough, really tough. Despite the rejections, false leads, time wasters, numerous tech tests, even more interviews and altogether bizarre behaviour from several potential employers I battled on for 3 months before things started getting serious with my application for an IoT startup called Converge.

The biggest single problem with graduating from a coding bootcamp (even from one that is regarded as Europe’s best) is that most employers don’t take you seriously and think you can’t possibly have gained the skills to work as a junior engineer. Part of this first hurdle is taken care of by the careers team at Makers as they have a network of employers that see the benefits of hiring one of their graduates.

I came across Converge at the second careers fair put on after my graduation, and they were my pick of the bunch of the companies I wanted to work for. I was eager to apply because the nature of the business sounded fascinating and full-stack JavaScript was the technology I wanted to be working with. I must admit I wasn’t feeling overly confident due to my experiences over the past few months of job hunting and my knowledge of React was non-existent, which is not great when you get sent a React based tech test to complete.

With hiring any engineer it is important that you are satisfied the candidate meets all the required technical criteria and fits in well with the team. This is amplified when you are a small team (I think I was employee number 10 overall and the 4th to join engineering) and even more so when you are hiring a junior engineer with no professional experience. The process for me was rigorous (a tech test and three interviews from what I can remember) but very interesting and at every stage made me want the job even more. I wasn’t however putting all my eggs in one basket and during this time I was also at various stages of the application process with a couple of other companies.

By mid December 2016 I had made it to the end of the last stage of the process with Converge and had to play the waiting game to find out if I had made the cut. To say the wait was excruciating would be an understatement, but I got the best Christmas present I could have hoped for just before new year: an email from Gideon saying they would love to have me join the team.

I couldn’t quite believe it, and sometimes to this day I still have to pinch myself.

Today…

It feels as though I have been in the industry for a lot longer than 12 months, but it wasn’t all that long ago that I was signing up to Codecademy to try my hand at HTML and CSS.

Working as a software engineer is everything I had hoped for, and thanks to the team at Converge, a lot more. I work alongside a group of very smart people from various backgrounds and all corners of the globe, which along with the awesome things we build is one of our greatest assets. As a junior engineer being in such an environment is hugely invaluable to my personal development and improving my knowledge and skill set, I know quite a few juniors that haven’t been so lucky in their first roles.

I was pleasantly surprised that from day two I was thrown in at the deep end and started working on a feature that would be rolled out to production when it was complete. I think within my first month I had built two features that were in production: building something and then it being rolled out into the wild for the first time was and still is my proudest moment in my journey as a software engineer.

Over the course of the year I have worked on several projects of varying importance, complexity and size, and in each one I have been able to build upon knowledge I gained in the previous project. This structure of building upon the previous project’s learnings has almost felt like an extension of my time at Makers Academy (with the added bonus of being paid), and much like Makers I have at times had a few bouts of imposter syndrome.

Imposter syndrome isn’t an unusual feeling for a software engineer (those with more experience just become better at dealing with it), but it is certainly more prominent in juniors, and particularly those that have come out of a coding bootcamp. On a daily basis I am surrounded by very smart people with academic backgrounds in mathematics, physics and engineering, all of which sets one up fairly well for a career in tech. This was not an environment I was used too, and in a weird way my arts background and not so typical path to becoming an engineer (at 32 years old) made me feel very much like an imposter that had sneaked into this realm.

Thankfully, however, I have mostly overcome the imposter syndrome and when it does rear its head I deal with it in a much more structured manner, but as a result of my early bouts I came across a fantastic book called “The Imposters Handbook”. The book is written by an engineer with decades of experience, but much like myself became an engineer without an academic background. This has proved to be a fantastic resource in helping me understand various computer science concepts that I never got the chance to learn about at school or university, and has gone a long way in helping me to better understand documentation and literature that I come across whilst at work.

Onwards…

Converge is growing fast: we were a team of 10 in a small co-working space when I joined, and now a team of 20 in our own office. The engineering team is set to grow further which will give us the resources to work on new exciting projects and features, my second year as a software engineer is shaping up to be even better than the first.

I hope sharing my experience will show those of you that are interested in breaking into the tech industry (or looking to take any other jump into the unknown) that it is possible to achieve anything you put your mind too. The next jump into the unknown for me arrives in April 2018 in the form of my first child, anyone know of any good dad bootcamps?