I got into Silicon Valley’s tech scene through the back door — by building my career with simple, quick freelance gigs. I highly recommend this approach. Not only is it a great way to learn a lot of different coding skills really quickly, it’s also a lot of fun!

The paradox: you need a job to get experience but you need experience to get a job…

The other day, a friend who was getting ready to graduate from college asked me for advice on how to get a developer job. He had spent hours poring over job boards, sending out cover letters, and had heard back from exactly zero companies. ?

I completely understood his pain. Having been one of the founding engineers at a tech recruiting company where I worked on data-science, I’ve had the opportunity to see actual numbers and the picture can be pretty glum.

It’s cut and dry. New grads and people without much past experience have a really hard time getting jobs. When we ask employers why they didn’t want to hire someone without much past experience, we usually hear the same thing, “we’re looking for someone experienced”.

It sucks.

You need a job to get experience and you need experience to get a job… It’s the age old paradox.

Luckily, in the programming world, there is a solution to this puzzle.

All you have to do is find employers who are willing to hire programmers who have a little less experience. Seems impossible? It’s not. Believe it or not, employers like this are out there right now. They’re desperately looking for anyone to solve their problems and they will happily pay for your help.

All you have to do is find them.


Allow me to introduce freelancing and the ‘Gig’!

I know what you’re thinking, freelancing? If no one would hire me for a job, why would anyone hire me as a freelancer? What’s so special about freelancing anyway? Isn’t it just working for a company except without the W-2, benefits, and job security? Wouldn’t I be better off sticking with the job hunt for a while?

These are all valid concerns and freelancing isn’t always easy, but before you run off and start mailing more résumés into the abyss, let me explain.

Freelancing is a term that covers any work you do where you don’t have a formal employer-employee relationship with a company. In the developer world I would (very non-scientifically) break freelancing down into a few distinct categories. There are consultants, freelance-employees, and freelance-gig-doers.

Consultants are usually very experienced expert developers who are being brought in to solve tough technical problems where they have unique insights and expertise. Since you are just learning to program, I suspect this is not you.

Freelance-employees are usually pretty much exactly like employees except that they got their job through an employment agency instead of by being directly hired by the company they work for. This usually happens for political reasons far too boring to discuss in this article. Suffice to say you probably don’t fall into this category.

Finally there are gig-freelancers.

Gig-freelancers fill a special gap in the software engineering world. They typically take on jobs that are too small, too specialized, or too experimental to warrant hiring a full-time employee. The employers they work for hire them because they need to get a temporary job done, and the gig worker is available and willing to do the work.

Some examples of employers who hire gig workers include:

  • entrepreneurs - looking to build a proof of concept for an idea
  • intrapreneurs - entrepreneurs working on innovation inside a company that are also looking to build proof of concepts
  • small-businesses - usually looking for someone ‘handy’ to install or set up something
  • individuals with a programming problem - maybe it’s a guy who needs help with his programming homework or something ?

The unifying characteristics of these customer jobs are that they’re small, well-defined, and temporary.

Gig-freelancing definitely has it’s drawbacks, and I would hesitate to recommend it as a place to build a long-term career. But for someone who is starting out in their programming journey, it is one of the quickest ways to simultaneously build skills, connections, and credibility. It also can be a whole lot of fun.


Why it’s worth doing gig freelancing when you’re first starting out

Surprisingly, Gig jobs are fairly easy to get.

Gigs are usually small — a few hours, a week…

They usually don’t pay that much money, so if you know where to look the competition isn’t that fierce.

The work usually requires less experience to complete. It’s “write a simple crawler” instead of “build out the next Facebook.”

For the employer, the stakes are much lower. No long-term commitments need to be made. No employee badges are printed. No HR department is involved. If you don’t do good work, very little has been lost.

All of this means that getting these jobs is fairly easy. Be professional and prompt… don’t be hard to work with and you should be able to get hired in spite of your lack of experience.

Discovering the type of gig that suits you

When you get a gig job, you can use it to discover what kind of programming suits you.

Gigs give you the opportunity to work for a lot of different people and work on a lot of different projects. This is a great opportunity to do some exploration to find out what you like.

Curious about data? Pick up a scraping or data processing gig.

Want to learn about hardware? There are Arduino a Raspberry pi gigs.

Found something you like? Find another similar job.

I personally used gigs to try all sorts of areas of programming. When I was gigging, some categories of projects I got a chance to try included:

  • web sites
  • custom video players
  • audio players
  • micro-controller programming
  • live streaming and video conferencing
  • data scraping and crawling
  • simple games

and the list goes on.

Use gigs to figure out what you like and don’t like as a programmer. The learning is super valuable. Maybe more valuable than the money you could have earned working a job you weren’t really interested in.

Gigs let you polish your skills and hone your craft.

When you’re early in your programming career, you’re probably not ready for big projects. They’re too complicated. They involve skills (like reading other people’s code) you may not have mastered yet.

You also need to hone your architecture and chosen platform API chops. There’s nothing like a real client asking you to perfect some CSS to get you to learn how flex-boxes work. And having to build single-page apps for four different clients really helps you get really clear on how React apps handle routing.

Also, just having to do everything yourself will be beneficial. You’ll have to build entire systems. You’ll have no choice. You will learn how everything works.

Gigs often lead to better things

When I started doing gigs, I never really expected them to open doors for me, but that’s what ended up happening.

I would bill out a gig for 2 hours (the gig actually took me a bit longer) and I would deliver exactly what my client asked me for. The next day the client would ask if I had time for another project.

Every project I created was another project I could add to my portfolio. Every project also expanded my network. People I met would refer their friends and colleagues to me. Over the years I ended up working for some pretty big name companies.

Eventually I didn’t really even have to look for new work. It sort of just came to me.

It was fun… and although it was scary at first, it got easier over time.

So how do you get gigs? Here is the process I recommend:

Find a good gig marketplace that fits your situation

You want to start your gig search by finding a ‘marketplace’ where employers will see you as a good solution to the problems they’re trying to solve. They typically look online in a ‘marketplace’: job board, mailing list, slack channel, forums, and so on. When I say ‘marketplace’ I really mean any community where a particular group of people post jobs.

Finding the proper marketplace is probably the most important part of doing a job search, and many people don’t approach the where of their job search very strategically.

The truth is that each marketplace has different ‘client mixes’ with different needs, desires, and hiring criteria.

If you spend time hunting on the wrong kind of marketplace, you’ll have a really tough time getting work. So it really pays to spend some time looking around for appropriate marketplaces.

So what do you want to look for?

First it goes without saying: look for a gig-focused marketplace. This likely means a place where entrepreneurial employers are posting small focused projects. This means you’ll want to avoid full-time job boards. Any post where you’d need to submit a resume and go through rounds of interviews is probably not what you are looking for.

In addition to looking for marketplaces that are ‘gig’ focused, you’ll have the most luck with marketplaces that are ‘niched’.

What do I mean by ‘niched’? Well, you want marketplaces that have some sort of focus that your skills or experience fit into.

Niche Marketplaces include:

  • Geographical focus: Some marketplaces are built for local communities. People often hire through these sites when they want to work with someone local.
  • Technology focus: Some marketplaces focus on particular technologies. If you have been spending lots of time with a particular technology, these boards will be places where you will have an advantage.
  • Problem-space focus: Some marketplaces are not targeted at a technology per-se, rather they focus on a particular audience. Software projects exist in every community. If you are a member of a community, you may be able to get access to gigs that are not available to other developers.

Picking a good niched marketplace will vastly increase your odds of getting a gig.

In an niched marketplace, the employers will be more relevant. You will face less competition than you would on a more general freelancing site. Most importantly niching gives you a chance to ‘stack the deck’ in your favor as you will be applying with an advantage over the competition even if that advantage is only ‘we live in the same city’.

If I had to start gigging again today, some places I might look include:

  • craigslist (the gigs section) — it’s local / geographically focused, so you have some of the above-mentioned built-in advantages.
  • in person physical meetups — again local and niched. In my experience, when you show up at these events, there is almost always someone looking for someone to help with their projects. The fact that you’re a local is a huge advantage.
  • public-entrepreneur-focused slack chat groups and topical mailing lists (again they’re niched and a little less main-stream). You can find these by googling ‘public slack channels’— many of these have a specific section devoted to jobs, and most of the jobs on entrepreneur-focused channels will be gig-based.
  • finally, upwork.com, freelancer.com, or some other freelance focused work site. These sites have plenty of employers looking to hire people, but it can be a bit hard to get started. You’ll be competing for jobs with people from all over the world who already have a lot of platform reviews. When you eventually get some 5-star ratings things will get easy, but until then it’s a numbers game so be prepared for a lot of rejections.

Apply for the gig

Applying for a gig is pretty simple. You will be having a conversation with an employer and you want to convince them that you can solve their problem.

Usually you will be sending an email. In some cases you might be filling in a form or something. It doesn’t really matter though as long as you can somehow have a conversation.

What do you say?

You want to let the employer know that you understand the problem that they’re trying to solve and that you think you can solve it for them.

You want to tell them how long you think it will take and include a little bit of information about yourself that explains why you specifically are a good match.

You want to include a few links to some pieces of work you have done that are similar to what the employer is looking for if you have them.

You may be thinking, I have no experience. Doesn’t that immediately disqualify me?’

Not necessarily. You can actually use your weakness as your strength! Here are some examples of how you might do this.

  • Let the employer know you’re new to freelancing, but tell them that you are interested in their project because you need great portfolio pieces. This means that you are happy to revise and polish as much as necessary to create something really spectacular.
  • Let the employer know that you’re new to freelancing and that is why the rates you are quoting are so low - likely lower than the competition. They will be getting a great deal.
  • Let the employer know that although you are new to coding, you have a lot of experience in his / her particular industry. You have knowledge that uniquely qualifies you to do the gig better than the more generic competition.

The fact that you are just starting out is a strength in some respects, as you can justify doing projects that more experienced developers won’t pick up because the payoff for you is different - experience and portfolio evidence vs money. Communicate this message effectively and you will have no problem landing a few of the gigs you apply for.

Follow up

What is often said in many job search books and articles is true! Following up is really important.

Think about it from an employers perspective (I know because I’ve hired people before).

You (as the employer) post a gig and start to receive messages from contractors. Many messages are terrible. The messages are poorly written or the contractor wants too much money or it doesn’t seem like the contractor understands what you want. A few applicants look promising but naturally you want to wait a bit for more applications to come in. Maybe someone spectacular will show up.

Eventually you move on to some other task and forget about the gig you posted. A few days go by and the applications stop showing up. You’re busy… and then you receive a follow-up email from one of the few promising applicants. This person seemed like they could get the job done and they seem professional (after all they followed up). Your decision is made.

As the contractor you want to be that person that looks promising and follows up. You would be surprised how few people follow-up when applying for gigs. It really does make all the difference.

So, how do you do it?

After you send your initial email you wait a day or two and then send a quick email saying,

Hey, I hadn’t heard back from you and thought I’d follow up. Have you found someone to help you out with your gig? If you’re still in need I am still available.

In my experience this is when you get the job. Give it a try and see if it works for you.

Don’t be discouraged

Getting gigs can be a bit of a numbers game at first. Don’t take rejection personally. In the beginning you won’t have built a reputation, so it’s only natural that people will be wary to hire you.

Keep on applying to postings and don’t be discouraged! I recommend thinking of success as ‘applying’ instead of actually ‘getting’ the job. It will help keep things in perspective. Eventually you will land your first gig.

That first gig you get is well worth the effort. After that first gig when someone asks you what you do for a living you will have something new to say to them:

I’m a professional programmer ?

I hope I have convinced you

I hope I have convinced you that gigs can be a great way to start a programming career.

If you can build basic programs you can use gigs to start your programming career today.

Over time, gigs are a stepping stone to bigger and better things, so go out there and get a gig or two. You’ll be surprised at what you can do if you try.

Thank you for taking the time to read my article.

You can also read other articles of mine on my personal blog https://wildnotion.com

You can find me on Medium where I publish articles about programming, entrepreneurship and data. You can also follow me on Twitter.

If you found this article helpful, let me know ???.