Web developers must learn many technologies to become good at their profession. Things like HTML, CSS, programming frameworks, APIs, hosting, and databases are all necessary.
A new freelancer is likely able to complete several different types of web development jobs. But you need to resist the urge to go broad and stay within a niche.
Why focus on a niche?
You need to stay in a niche because clients want a specialist, not a generalist. The client that needs an API built in Django wants to hire the person that has done it 20 times. Not the person that thinks they can do it because they built something similar a long time ago.
The bottom line is this:
Specialists command higher rates, choose better clients, and stay busier than generalists. – Me
What do I mean by a niche? For me that meant specializing in a tiny python web framework called Flask.
Now I’ve worked with a lot of web frameworks over the years. I’m proficient at customizing WordPress sites, know some Ruby on Rails and python Django. But for some reason I can really get a lot done with Flask. That’s why I chose it to build my demo project.
After a day or two of applying for jobs I thought about switching to WordPress, since there were so many more jobs available. But then I got my first Flask gig, and it went well.
Fast forward to my second gig. I’m anxious to get another job quickly. I apply for a couple Flask jobs and hear nothing back. Once again I’m tempted to broaden out to Django or a bigger framework that has more job postings. But then I get an invite for a Flask job, accept it, and end up with another solid project.
Now my work history is full of jobs like ‘Flask expert to host an API’. I raise my rates.
Every time I’m tempted to broaden to a more popular category, invites roll in for Flask jobs. That’s the power of staying within a niche.
Growing Into Your Niche
Let’s get into the meat of what it means to be in a niche. The truth is that it is hard to simply ‘choose’ a niche as a web developer.
We all gravitate towards certain areas of programming over time. And we all have of our strengths and weaknesses.
You are likely strongest in one of these three areas:
- Front end development
- Back end development
Within that category you are likely strongest in a particular technology, language, or framework.
Keep in mind, many applications require a combination of these three core areas. Is being a front end developer considered a niche? No. You need to specialize further than that. Let’s explore the three core categories.
Front End Development
Front end development includes the presentation layer, or everything needed to display the web page or app properly. Core technologies required are:
So saying you are a front end developer is too broad. Specializing in something like Bootstrap is too narrow. But a front end developer specializing in AngularJS is just right.
Demand for Front End Developers
Demand for front end developers is very high. One way to see this is by looking at technologies in the 2018 Stackoverflow Developer Survey.
Does this mean that you should specialize in Angular or React? Not necessarily. You should focus on those areas if you are productive in the framework and can build something with it. What I am focusing on here is the process of knowing that you are in a lucrative niche.
Back End Development
Back end development involves two key processes:
- Create, read, update or delete data in a database
- Sort, filter, search, or analyze that data for display or use
Your primary programming language is the foundation of your back end development skills, because that is what you will use to interact with the database. You will also need to be competent in at least one type of database.
The following chart breaks this down. This is not all inclusive.
For back end you will most often specialize in a language framework, such as:
What is a Good Niche to Get Into?
It’s hard to recommend a single niche within web development because there are so many, and what you specialize in depends very much on what you’re good at and where your passion lies. But here are some good examples of what constitutes a niche:
- Python Django
- Ruby on Rails
- AWS Devops
The key is to build your demo project around a key language or framework, then stick to that combination for at least your first 5 to 10 jobs.
Beware the WordPress Effect
It is very tempting to apply for the type of jobs you see popping up most often. If you are on UpWork or Craiglist you will likely see a lot of WordPress jobs, because people build a lot of lot of sites using WordPress.
I do not blame them. It works well for a particular type of web site.
But WordPress has a low barrier to entry. So while you see a lot of jobs available, there are lot of people applying for them.
Who would rather be, 1 of 40 applying for a WordPress job, or 1 of 5 applying for a Go developer job? Oh and never mind it is likely only 1 or 2 of you are highly qualified for the Go job, so your competition may very well be one other person!
Branching Out from Your Niche
Once you complete 5 to 10 jobs, you can broaden out and gradually move your niche into different areas.
For me that means occasionally completing Django jobs, or writing raw python code.
There is definitely room to broaden out once you have many good reviews, but do not do it too soon. The longer you can stay within a niche, the better!