Finding Your Niche as a Developer

shoupn profile image Nick Shoup ・4 min read

This post was originally published on my blog Fundamentals of Code

A Generalist or Specialist

I've been working in the world of software development and technology for about 5 years now. Previous to this my background was in environmental engineering. I was able to make the transition into software development both through some education as well as my background using Geographic Information Systems. That was my foot in the door. Both practical knowledge and a desire to learn more about a pretty specific niche in software. My current role is a GIS Web Developer. Do I work with more than GIS and the web? Yes, absolutely. Do I know my way around the front-end and the back-end of the applications that I work with? Yes, so in some ways, you could also say that I am a full-stack developer. Does this mean that I consider myself a jack of all and master of none? No, I would say that I am proficient enough to work across the technology stack, but am more comfortable in certain areas than I am in others. Job title aside, in many ways I feel more comfortable working in back-end the environment and large datasets. But my title would say otherwise 😉

I actually landed the job as a web developer, because yes, I have experience with web technology, but I have a range of specialized knowledge in Geographic Information Systems. I understand the difference between a projection and a coordinate system. I have worked extensively with systems built on top of ESRI's ArcGIS for Server and ArcGIS Spatial Database Engine. This was enough to not only to receive an offer, but also a competitive salary. I find that there are not a lot of other developers with this specific niche, this makes me more valuable to someone or a company seeking this specific niche to fill.

Finding your Niche

I am not saying that if you are reading this to go out and specialize in Geographic Information Systems. What I am saying is that you should find a specialty or niche in your area. It may be as simple as becoming the Dotnet Core REST API person, or it may be that you are really into integrated systems development, or you may be into blockchain. The point is to find that one thing that can set you apart from others and focus on that, and learn what you need in the meanwhile to accomplish learning your main focus or niche. What I think most companies are looking for when they put together a job description is not that you can do absolutely everything in that job description. They are looking for someone that can solve a particular set of problems. That is how you sell yourself. You may disagree with me in that you are selling yourself but think about the fact that you are exchanging your most valuable resource (time) for money. So you may as well maximize your investment of time into dollars.

Find something you are passionate about, but also marketable. Find a specific problem or set of problems and start to focus on those things that will help you solve those specific problems. Maybe it's securing web applications, or maybe it's all about migrating applications over to serverless technology on AWS? Or maybe it's about React/Redux and SPA's, I don't really know, but don't become a generalist. It may be okay to be a generalist for a bit, but you should find a niche and grow in that. I can command a much higher salary at this point in my career simply because I am able to solve some very specific problems as it relates to GIS and solve them quickly, without having to do a bunch of research into the matter.

T-Shaped Developer

Another way to think about this situation is with respect to t-shaped skills. You can have a breadth of knowledge, but a specialty in a specific area, just as I outlined above. Understand that your work whether on the front-end or back-end impacts other areas of the development stack.

How to become this T-shaped Person

I think that this skill applies to much more than just software development and can be applied to all areas of your life, and here are a few ways to get there.

  • Always be learning, be tenacious and unrelenting in your pursuit for understanding.
  • Be open to new opportunities for growth, even if you think you are underqualified.
  • Find what motivates you or intrigues you and focus on that.

Counter-Intuitive to Find a Focus

It may sound somewhat counterintuitive at first but think about it. What specific sets of problems can you solve with programming or technology? That is where you can earn the most for your time and energy. Being a generalist will get you generally into the role you might be truly passionate about. Doesn't sound like much fun to me. Find what you are passionate about and dive in. I've read in the past, that if you spent .5 hours a day reading on one particular subject, within 2 years you are a subject matter expert. Or in other words, it adds up in a way that you most likely don't grasp at the moment, but in a short period of time will start to matter more than what you are probably thinking.


Editor guide
devnic13 profile image

Thanks so much for this. As a new developer it is so easy to become overwhelmed by all the choices and not know where to focus especially if you have interest in many areas. As a bootcamp grad from a full stack program I wanted to learn it all but have found focusing on becoming the best I can be in one area first is a better start, less stressful and more marketable😊

shoupn profile image
Nick Shoup Author

Absolutely Lisa! Glad you found this encouraging.

steelwolf180 profile image
Max Ong Zong Bao

Awesome article, starting out I try to brand myself by being a Django developer and look for jobs that is Django based since that was what I really like.

I really can't stress the importance of being a generalist and a specialist. Your article has done awesome service for it.

shoupn profile image
Nick Shoup Author

Thanks, Max, I really think being a T-Shaped or V-shaped developer is going to be the most advantageous for any career. Having a general experience and throw in a specific skill like Django development is great!

ekimkael profile image
Ekim Kael

I found my niche on React/Redux SPA and PWA.
For now I'm finding jobs in this field.
Super article.

ancagooje profile image

Great article. I'm still in the process of finding my ideal niche, but I quickly understood that doing/offering too many kinds of services can be overwhelming for clients.

shoupn profile image
Nick Shoup Author

Absolutely. I have only worked a little doing freelance work, but both times it was related to specific needs. Something to try is to talk with business owners in your area and find out directly what problems they are needing to solve. Thank you for the comment!

marek profile image
Marek Zaluski

Thanks for the great article Nick. I included your post in my video review of career insights of the week:

shoupn profile image
Nick Shoup Author

Wow Marek! Thanks for covering my post. I'll have to check out your review this evening when I have some time.

rifaimartin profile image
Rifai Martin

this is very good, and I have found what I will focus on, namely mobile development. In high school I was trying all technology. in the end, I ended up only mastering half and never deep in one field