Sun Nov 21 2021

How to get experience to get experience as a self-taught developer

Some thoughts on how to break the cycle where you need experience to get experience as a self-taught developer

Who am I? Just an average guy who spent over 4 years in marketing, then 2 in teaching and then deciding I wanted to do something more. Enter front end development which I started learning over 2 years ago, and is now the source of income for my bread and butter. 

Why am I writing this? Well when I started to learn how to code, I didnt even know what IDE was. It truly was difficult and I had to change my mental models to make sense of the code. What kept me going was motivational videos and quotes you find on almost all the coding channels on youtube where the influencers talk of how they managed to change their career etc by learning how to code and getting their first dev job in 6 months or so. All I needed was to do some projects, showcase them on my portfolio website and headhunters would come banging at my door.

Great. Now imagine my surprise when I did exactly that, updated my LinkedIn in job status to looking for jobs and didn’t really get noticed much. Maybe I needed to be more proactive and apply for jobs on my own, I thought to myself before sending my CV and/or portfolio to companies who were looking for junior front end developers or interns. 

Fast forward a few weeks and I was in a slump. A slump where all I had was a bunch of polite rejection emails which all essentially said the same dreaded sentence- we need someone with commercial experience. It was time for a post mortem on where I went wrong and how to fix it. So I wrote to a recruiter who seemed the friendliest asking for tips on how I could go about getting commercial experience for the job which was to provide me with commercial experience. She suggested that I try contributing to open source or to work on more projects for actual clients and deploy them so that I have some real-world experience instead of the apps I made watching a video on Udemy. The more I thought about it, the more it made sense then. 

So now that I was asked to get commercial experience before applying for a job, I knew that I needed to work on some commercial projects. That's when I decided to freelance as a front end developer and land a few clients. 

There are plenty of places where you can go looking for clients. You just have to be strategic and relentless about it. Here’s where I found mine. 

1. Friends and family 

This is the best place to start looking for opportunities as these people trust you and care for your success. But don't assume that they will hand over any project and pay you for it as that’s not how things work. Before you approach your friends and family, think hard about what they do, whether they have any problems that your coding skills can help solve. Remember that you are a developer AKA problem solver and that any payment you receive is for your ability to solve a real-life problem and create value for your customer. 

Eg- uncle Jamie has a pet shop, no website and no social media presence. Great! All you have to do is get some stats on how creating a website and having some internet presence is valuable to a brand and convince him to let you in on the job. 

Worst case scenario? He says no and life goes on. Best case scenario? He says yes, you get your first commercial project to showcase on your website and get paid for it. 

2. Friends of friends 

The friends and family route didn't work? No worries, that's not the end of the road as they might know someone who needs a website. If there is one thing I've learnt in marketing, it's that you have to be persistent. There will always be rejections but they might actually direct you to a prospect, who might then end up being a customer. 

Eg- Aunt Sandra has a friend who is a hairdresser. Do a quick google search to check whether she has a website. She doesn't? Great, there’s your reason to call her. She does? Okay, not all is lost as maybe she can use a hairdressing appointment booking system to help her and her clients to keep track of their appointment. You won't know until you get the name of this hairdresser from your aunt Sandra and call her. The thing you have to remember is that some customers don't even know what they could use until you point it out to them. It is through the creation of such "aha!" revelation moments that you make a prospect like you and eventually convert. Remember, you don't write code, you solve problems. 

3. Local businesses

One of the most effective ways to get leads is via local businesses. I say as such because a business that's been established for some time needs a website just as much as a business that's just taking off the ground. Here is a couple of examples 

Example 1- a new sushi restaurant just opened up in your neighbourhood. Do a quick google search for their name. They don't have a website? Nice, that's a good way to get your foot in the door. But think beyond this and do some research. When I was approaching restaurants one of the biggest issues I've heard about from restaurants was that food delivery services such as Uber were taking a massive chunk off their sales as a commission. So I suggested creating an online ordering system so that the restaurant could handle the deliveries themselves and keep the Uber commission for themselves. The only investment they would have to make is the one-time investment in the website. The owner of the restaurent liked the ideas and I got the job.

Example 2- Another problem that I heard from the owner of a restaurant that I started to talk to was that he had no way of keeping tabs on the appointments customers made at his restaurant other than with pen and paper. The solution there was to create an app where the restaurant staff would enter the time and contact details of the customer appointment so that they could see which table was booked at any given time. As a bonus, I also added a system where the app would send an SMS message to the customer on the day of their appointment. 

Now before you start approaching your local businesses, remember they are businesses. You are a developer who is looking for clients, so you have to play the part. This is how I did it. 

  • Practice your introduction pitch which introduces who you are, what you do and why you do it. Get so good at it that you can mumble it in your sleep. This is a powerful tool in your self-promotion. 

  • Invest in getting yourself a business card. I found a nice design from Canva and got 100 business cards printed for less than $10 from a local printer.

  • Invest some time to do some research on the business you are approaching. This will help you think about the possible problems (opportunities for you) so that when you do make your pitch to the prospect, they will be more willing to hear you out. This proposition is what will follow your introduction pitch. 

  • Listen to the prospect. The offer you just made in step 3 might not have been received favourably but maybe they have a different problem that you can assist with. Listening goes a long way to helping understand the problems of a prospect and helping solve them through your coding skills. 

  • Leave a good impression- it is very rare for a prospect to say yes to an offer you make for the first time. They need time to consider whether they are willing to make an investment and even trust you with that investment. Make sure to collect your prospects business card and give them yours. I've found that handing over a business card helps to be taken seriously. 

  • If the prospect didn't reach out to you in 3-4 days, follow up. If they say no, take it with grace, ask them if they would tell you the reason and ask them to recommend you to anyone they might know. If they say they are still thinking about it, ask questions on why they might be hesitant and work towards alleviating them.


Might be cliche, but having a business card makes you take your craft seriosly and convey it

4. Freelancing platforms 

There are so many freelancing platforms out there with Upwork, Fiverr and Toptal taking a big chunk out of the market. I have only tried Upwork and Fiverr out of these and found Upwork to be the best fit as the bids for the projects are reasonable. The bids on Fiverr were way too low and would not have brought me any money that would be worth my labour. 

The competition on freelancing platforms however is fierce as it is effectively a commodity market where a project from a client in London can see bids from literally all over the world. Depending on your geographical location some of these bids might seem alright whilst the rest might seem like an absurdly low amount. 

My advice here is to look for projects that match your skills, interests and write a convincing message to the client introducing yourself, the skills you possess, why you consider yourself a good fit for the project with a link to your portfolio and/or previous work. A lot of freelancers fail at this, hoping the low rates they bid with will convince the clients to go with them. This, in my experience, doesn't always work as most clients are aware that they get what they pay for and do not mind paying more if the job gets done reliably. So write a good message as I outlined above and provide the rate that you are happy with. 

I have more thoughts on approaching and winning clients on Upwork that I would like to share. These will be in a future blog post where I will also include some templates that I used to convince clients of my suitability for their project. 

And there you have it. The above 4 are the key means through which I obtained commercial experience as a self-taught frontend developer. Keep in mind that the order in which I placed these is not random but based on the ease of winning projects. Whatever approach you decide to take, keep in mind that your job is not to write code, but to solve business problems. The code you write is just a tool to create business value for your clients. 

When you are looking to get clients as mentioned above, you will need to wear two hats- one is your developer hat but the second and maybe more important hat is the marketing hat. Marketing yourself or self-promotion is a crucial skill you will have to work on, as you will need to be convincing for a client to hand over their project to you. Remember to put yourself in the shoes of your client and understand their business needs. Understand the industry jargon that they would be using and use the same when pitching your services. It's human nature to connect with someone on the same wavelength, and your clients will take you more seriously as they need a partner to help develop their business and create value. What they do not need is some developer who will blindly take the specifications, write some code and never be seen again. Another pro of taking such a partnership approach is that the very same client will seek you out when they have another project or know of someone who needs some work done. I cannot emphasise this enough as I only had to work hard to get clients for a few months before new clients came seeking me out via old clients. Referrals are a powerful thing, so make sure to set the ground for it. 

Before signing off on this blog post, I'd like to also talk about how you can go about pricing your services. My one key advice of thumb here is never work for free. It’s frankly insulting to the hundreds of hours you’ve spent learning how to code and creates a ripple effect where people start expecting work to be free, devaluing the entire market for new developers. Whenever you get a project, or is going to pitch a client your service, think about what you can do for them. How many hours do you think this will take? Add a buffer on top of that taking the potential issues and complexities of the project. 

I hope the above helped you or got you thinking about the answer to the paradoxical question that is ”how to get experience to get experience”. Being a developer is a great career option, with a bumpy beginning. But if you’ve come so far with self-learning, why stop now?

Got questions, comments or anything you want to add? Drop me a message on LinkedIn and I’d be glad to help out.