Today's interview is with Cam Sloan, a self-taught freelance web developer. Cam shares his tips for going freelance and getting hired. He also talks about learning to code and building a SaaS (Software as a Service) business.
Hey, so can you introduce yourself?
My name is Cam Sloan. I’m an entrepreneur and freelance full-stack web developer. I recently moved from Toronto to Vancouver, BC, Canada with my partner Gaby and my dog Grampa.
Why did you learn to code?
I had a few introductions to coding through high school and university, but none were successful until I had to build a website for the band I was playing in. I learned some HTML, CSS, and a bit of jQuery to get the site up and running. I really enjoyed the experience of building something from scratch, and it had me hungry to do more of it.
At the same time, I was working as a marketing coordinator, feeling underpaid, underappreciated, and I had very little room to grow at my job. Through my network, I ended up meeting someone who leads the dev team at a charity in Toronto. They offered me an entry-level position where I would have the chance to develop my skills on the job. I felt very underprepared for this role because of my lack of experience, but like many “sink or swim” occasions, you rise to the challenge and learn.
How did you learn coding?
I learned coding primarily through YouTube and online course platforms like Pluralsight. I also supplemented my learning with free online books, such as Eloquent JavaScript and You Don’t Know JS.
This was a long and slow road though, to be honest. When you’re teaching yourself by building your own curriculum, it is difficult to know the right courses and books to learn from, and in which order. I would often find myself trying to take a course that was well beyond my skill level and feeling very overwhelmed.
At the time, I did not have the finances to quit my job and attend a bootcamp, but nowadays there are many bootcamps that have financing options where you only need to pay them back once you start making money from your first job.
My partner recently went the bootcamp route, and I was amazed at how quickly she was able to learn things that took me years to understand. A well-defined curriculum certainly has its advantages. So, if I were to do anything differently, I would try to learn through a bootcamp and accelerate my learning. That said, a great resource to get started with which can take you a long way, is the Beginner JavaScript course by Wes Bos. It’s the course that I wish I had available when I was getting started learning how to code.
How has your life changed since learning to code?
My life has improved in so many ways since learning how to code. It’s very likely that if I hadn’t switched careers, I would still be working in the same job as before, stressed out and broke.
In my first year coding professionally, I made the same salary as my previous marketing role, but that was just the beginning. My salary started to increase pretty quickly as I moved into my next few roles, as I eventually reached that magical six-figure salary we all dream of a few years into my career.
With the increasing salary, I was able to pull myself out of debt, go on vacations, start investing for retirement, and build up enough savings to eventually start my own business.
But money aside, I absolutely loved what I was doing. Coding is a lot of fun, in my personal opinion. I couldn’t believe people were paying me to do something that I enjoyed so much. I woke up every day excited to go to work and build cool stuff. That made such an improvement to my overall mental health.
What was the interview process like for your first developer job?
This was back in 2015, so bear that in mind, as your mileage may vary. The interview process involved a culture fit interview, as well as a take-home coding test, and possibly one more interview (I honestly can’t fully remember).
The take-home assignment was to build a responsive login page with HTML, CSS, and jQuery. It was pretty straight-forward, though I remember being pretty confused about how jQuery worked and trying to understand the syntax.
In terms of the questions they asked in the interview, it was mostly questions around culture fit and seeing that I was ready and excited to learn.
Can you tell us about becoming a freelancer right before Covid hit?
Oh man, this was quite the time in my life. In October of 2019, I was working at a company that unfortunately had to lay off 80% of employees as the result of a failed rebrand. This sent the company’s search rankings, and revenue, on a massive downward trajectory and it never bounced back the way we had expected. The company laid off every single web developer, including myself, though they kept me on as a freelancer for a short bit afterwards to wrap a few things up.
During that time, I started interviewing for a new job, but I wasn’t thrilled about any of the offers I was getting. Luckily, by this point, I had been building up my savings and emergency fund, with the intention of starting my own business one day down the road. I still did not feel prepared to start freelancing, worried that I would not be able to find any clients, but I decided that I would give it a shot. I figured that in the worst case scenario, I would go back to the job hunt in a couple months if I couldn’t find work.
I started letting everyone know I was a freelancer. This was an important step because it ended up getting me most of my gigs down the road. I told my friends, previous co-workers, former bosses, and just let them know I was open for work. Having spent about 4 years as a developer by this point, I already had a decent network. Before long, I secured my first 3-month contract, around February 2020, just before the pandemic hit.
Without getting into too much detail, the contract ended up getting cut short about a month early due to the pandemic and I was, once again, without work. Nearly every company seemed to be laying off employees at this time, and very few companies were hiring freelancers or contractors because of the uncertainty of how the pandemic would affect their business.
Luckily, I had already made some decent money from the last contract. Plus, like I mentioned, I had some personal savings as well. I ended up weathering the storm for several months by working on my own personal projects to keep my skills sharp. By the time summer of 2020 had arrived, companies were starting to look at hiring once again, and I was able to start finding work again.
This all goes to show, you never know what may happen in life and so it’s best to prepare yourself with an emergency fund - big or small, whatever you can afford. Without the peace of mind of having some savings to fall back on, I would have rushed into a new job as soon as I was laid off in November 2019, and it’s quite possible that I would have ended up job hunting again in the height of the pandemic when most companies were cutting costs. Instead, I managed to finish that year with more income than I had ever made as a full-time employee, and only billed for about 6 months of work.
Do you have tips for people who want to learn to code without doing a degree?
If you’re not going to get a CS degree, I would highly recommend finding some kind of structured learning, whether that is a cohort-based course, a bootcamp, or a very comprehensive online course (such as Wes Bos’ Beginner JavaScript course).
Also, if you’re starting out and feeling like “this is all impossible”, I encourage you to keep going. It can take a long time for this coding stuff to make sense. Some people pick it up very quickly, but for others, myself included, it can take a long time. If you stick with it, and keep practicing, I think most people can learn how to code. And once you start connecting some of the dots, let your curiosity guide you the rest of the way. If you keep asking questions and searching for answers, you will undoubtedly learn how to code.
Can you tell us about building your SaaS Hopscotch?
Building Hopscotch, which is a user onboarding tool for SaaS companies, has been a massive challenge, both technically and mentally. And while it has been extremely challenging at times, the personal growth I have experienced in building my own product company from scratch is unparalleled by anything else I have done.
From a technical perspective, when you’re building a SaaS on your own, you get to learn about so many different aspects of the code. You learn front-end, back-end, and infrastructure. You learn about data modelling, schema and data migrations, billing and subscriptions handling… all kinds of patterns that when you work in an existing company, you may never get to touch because they were put in place long before you started. So I grew a lot as a developer in the past year since starting to work on Hopscotch.
When building a SaaS, you also learn to be more pragmatic about your code, because while you want to ship high quality code, you are also trying to make money, and so you learn how to balance quality and speed. I don’t necessarily recommend that everyone should go build a SaaS business from scratch, but I do believe that building any kind of side-project from scratch, where you have to figure out how to do things on your own without reference, is an extremely valuable exercise to level up as a programmer.
All this said, building a SaaS company is slow, and very difficult. And coding is less than 50% of the work I do. You need to learn about marketing, design, product management, sales, customer research. If you love to learn new skills and all of that sounds exciting, then definitely give it a go. You will grow so much. But if your aim is simply to make a lot of money, there are much easier ways, such as freelancing or continuing on the software developer career track. It is not for the faint of heart.
If you have any questions at all about business, coding, or anything else, don’t hesitate to get in touch by email or shoot me a DM on Twitter. I always love to help people at all stages of their coding journey.