Is it possible to get pigeonholed into a niche area and not be able to get out?
Posted by lcwalshing@reddit | ExperiencedDevs | View on Reddit | 54 comments
I work at a tech company building libraries for machine learning/statistical analyses, and have done so for the past 10 years since graduating college. I primarily work in R, with the occasional opportunity to work in C++ (though the split is probably 90-10 R to C++). I'd say the role is maybe close to some kind of machine learning engineer, but realistically, I'm not someone deploying models and investigating pipelines, I'm just designing some of the tools to be used in those environments.
I've become increasingly concerned that I might be getting myself stuck in an area of software that isn't particularly marketable. In the MLE space, I think my strength lies in the mathematical foundation for the models in those environments, less in the deployment, and I don't know how important it is realistically to be able to write an SVM from scratch (for example) over just pulling something in from scikit-learn, deploying it, and calling it a day. I have faith that I could probably put together a sensible pipeline on my own as a side project, but that doesn't feel like a replacement for working on something at scale in a real production setting.
Have any of you experienced this kind of tension between the stack you work in and the stack that's actually used in industry? Have you found it to be a barrier to leaving the stack you're in? Is there a point of no return?
AngusAlThor@reddit
I don't think it is possible to not get pigeon-holed over time; If you are working as an engineer and get experience in one area, and move through from junior to senior and onward, you will inherently be just that one type of engineer.
tehfrod@reddit
This isn't true.
I started as a digital video systems engineer, transitioned to video games, then ad tech, then billing systems, then VR, then wireless network management systems, then voice recognition and TTS, then user generated review content and fraud detection, then search stack, and now ML infrastructure.
You only get pigeonholed if you let yourself get pigeonholed.
AngusAlThor@reddit
Everything you described is high-performance algorithms work, either due to handling large datasets (video) or low latency (banking/networks) or restrictive hardware (embedded). So congrats, you are an Algorithms Engineer with lots of experience in C++.
dontquestionmyaction@reddit
that is so reductive that it just misses the point
Plenty_Line2696@reddit
there's so much more to those topics than that
local_eclectic@reddit
Full Stack SWE enters the chat
dfltr@reddit
The classic antidote to being good at one thing: Being bad at everything!
AlmiranteCrujido@reddit
I mean, it is itself a pigeonhole, and at the startup level, it's a highly desirable one.
I'd have a much bigger pool of jobs if I was a product-oriented full stack engineer, and there are absolutely very senior people doing that.
local_eclectic@reddit
Can confirm. I get constant recruiter outreach as a full stack engineer at a startup. It's highly desirable because, contrary to many assertions in this thread, we are actually capable of being good at it, and it makes companies a lot of money haha.
AlmiranteCrujido@reddit
From the management side, having the flexibility to use people interchangeably is huge. When you're small enough, unless your product is itself very specialized, it's almost obligatory.
With a more general product, companies/teams hit a scale where they can take advantage of hiring specialists, but that is not THAT early in the lifecycle of a startup.
Then much later if successful, they hit the scale where you absolutely need specialists, but that's usually not even in the startup space anymore.
exomyth@reddit
Always find this a weird take. Frontend and Backend are all using the same fundamentals. Understand the fundamentals and it doesn't matter where you apply them. The rest is just learning APIs, SDKs and Frameworks, and that is the easiest part of it.
Maybe if you never learn the fundamentals, but arguably I'd say you're also not the best backend or frontend developer in the first place
Plenty_Line2696@reddit
ehh, yes and no, there's plenty of things which you can spend endless amounts of time on which are either back- or front end specific
exomyth@reddit
You can, you will always have some kind of specialization: A list of programming languages and frameworks you know better than you know others. But to say it is going to make you a better frontend or backend developer I'd find questionable.
Considering that as long as you are working within frontend and/or backend you will grow your fundamentals. Arguably by seeing more variety as frontend and backend have different preferred ways of doing things, you're less likely to plateau in your fundamentals.
However, if all you do is write the same nodejs/react full stack applications, or write just your CRUD wrapper APIs in Spring Boot or .NET, or work in the same Angular code base for years, you will plateau no matter if you are doing frontend, backend or full stack
Plenty_Line2696@reddit
Yeah ofc if you do the same simple stuff over and over you can plateau at both, but let's be real you can spend your whole career in just the frontend or backend and still have endless more to learn or improve upon.
GrowthProfitGrofit@reddit
Oh you're an artist who does oil painting as well as sculpture? What a dilettante, everyone knows that your skills aren't portable between different mediums.
Oh you're a musician who can play the Guitar, Bass, Piano and Drums? What a sucker, real musicians only know one instrument.
Like, yeah, you *can* be someone who specializes in just the one thing and you can even be good at your job. But if you're passionate about this stuff as a vocation and not just a little money making hustle I don't get why you wouldn't take the time to learn everything you can get your hands on.
local_eclectic@reddit
Sorry if that's your experience. If you're passionate about the field, it's not hard to be a great generalist after years of growth and practice.
AlmiranteCrujido@reddit
Sure. You just won't be as good at any given specialty as the real specialists.
Which for many employers is actually more desirable.
AngusAlThor@reddit
Full stack my arse.
larsmaehlum@reddit
Good at creating valuable features, which is the one thing management really cares about.
local_eclectic@reddit
Embedded software development and networking are not included in the definition full stack.
Data engineering, algorithm analysis, and database administration are table stakes for software engineers. Add frontend development skills and you're full stack.
It's not even a stretch unless you work at a siloed megacorp your whole life without ever building anything solo.
AngusAlThor@reddit
As an experienced data engineer, trust me, I am speaking from experience when I say so-called "Full Stack Engineers" suck at DBA, data engineering and algorithms. The only reason they seem ok is because most datasets are under ten million records and they get saved by the hardware.
To be fair, though, I couldn't frontend my way out of a paper bag. Everyone ends up specialised.
vvf@reddit
“Not an expert” != bad
Each skill is its own spectrum. It’s incredibly rare to get an even time distribution with all types of work
OkidoShigeru@reddit
Being a generalist is fine, but then yep, you’re a generalist, you won’t have the super deep SME knowledge in a specific area. It’s pigeon holing of a different sort.
Different-Star-9914@reddit
I think OPs worries are also incredibly unique. He’s not just a web dev affixing buttons and subsequent logic to a webpage.
He has a very specialized, niche, and mostly LLM proof skillset. LLMs have yet to uncover novel or groundbreaking breakthroughs.
It’s only exponentially getting worse. Prior to LLMs, the World Wide Webs largely consisted of human created content. That ocean of information is far easier to “grade “and refine models with.
Nowadays? The biggest LLM players are scrambling to both: re-engineer web scraping processes for secure ETL or refactoring processes to adequately label and tag data to refine the models.
Each model release and curated benchmarks are simply well crafted pieces of indirection for the public. Ultimately, the goal remains the same. To secure/generate more funding
RandomPantsAppear@reddit
This is such a funny dynamic to me, since almost nowhere will be actually directly hiring for adversarial scraping experience.
It’s a specialty of mine, and the decent well paying roles for it are extremely rare.
Famous-Test-4795@reddit
When do you get pigeonholed? Can it happen as early as when you're an intern or a new grad?
AngusAlThor@reddit
It isn't really pigeon-holing, it is just what you have experience in. If early in your career you are happy to take it slow and bounce around a bit, you'll have a broad foundation. If instead you immediately push for seniority and pay, you'll quickly find you can only move forward in one area, and would have to accept a step-down in level to move laterally.
Famous-Test-4795@reddit
One of my first internships was in manual QA, then SRE to get my foot in the door and I was and am still worried that it means I'll be stuck doing that kind of thing forever even if I feel like it's not what I want to do long-term
AngusAlThor@reddit
Bruv, sounds like you haven't even graduated yet? Don't worry about that stuff now, just get a job, any job, and then try and pivot once you're in the industry.
AlmiranteCrujido@reddit
Some level of pigeon-holing is inevitable, although it is often really in the post-senior roles that you see it. I know Seniors who have transitioned between just about everything, but when I've known really senior people my age who've transitioned, it's usually back to a Senior vs. laterally at a Staff+ role.
I'm hitting that right now. I could drop into pretty much any Senior BE role, but my post-senior leadership experience is really NOT translatable to product roles.
I'm an infra/devops/platform guy, and am getting some great traction interviewing for those roles. When I get asked about working with external stakeholders, or really heavy product-led metrics, I'd really have to be wiling to stretch or fake: even the places which seem to accept those answers give me little confidence I'd be able to work at that level.
SquishTheProgrammer@reddit
I agree that you will be more experienced in a certain area but I somewhat disagree that you will be one type of engineer. I think it depends a lot on where you work and what size company you work for. I have 14 YOE and I work on so many different things. Our company has an old web forms site, WPF apps, angular for our newer web stuff, a few internal tools in Blazor, and we are starting to work on a mobile app in react native. It’s honestly one thing I really enjoy about my job because it keeps you from getting burnt out in one thing. I’m probably most experienced in WPF but I’m also quite capable of working with other languages and frameworks. IMO once you really learn how to program learning languages is more syntax than anything. That being said each language has its own stuff outside of syntax that you need to be aware of.
AngusAlThor@reddit
Congrats, you are a frontend engineer. Please do not touch the database.
cabindirt@reddit
I started out by learning to code in high school and I built websites from scratch. That and my tinkering with my desktop landed me a job as a Linux admin. After a few years of that I finally got a Junior Developer role where I was a hybrid developer and admin (and thus I got into DevOps).
I’ve been pigeonholed in SRE/DevOps ever since despite applying to countless roles for full stack dev and doing full stack work in every one of my SRE roles.
This wouldn’t be that much of a problem if SRE wasn’t merging with production support… i.e. ops.
Dense_Gate_5193@reddit
yup. happened to me yesterday.
i wrote ui-grid 13 years ago for the angularjs ecosystem. it did row virtualization native to angular at a time when nothing else was doing the trick for performance. which influenced agGrid.
i forever became known as “the UI guy” but i was just chasing performance numbers.
i’m an infrastructure architect and ive shipped 3 different OSS infra projects across 3 different domains.
ui-grid (javascript), Butterflight (flight controller firmware in C for stm32 processors), and now NornicDB (golang hybrid vector/graph database which runs LLMs inside the memory space, which has much broader implications than the other two, which were niche.
I even have a provisional patent through my employer they are working on the full thing now. i was on the AI labs team applying for patents on new infra techniques.
yet, budget cuts and a reorg later, I am told to “convert” legacy ui apps at work. i can do that shit in my sleep. i’m tired of it.
Nemosaurus@reddit
Yeah I quit a job over this.
Wanted me to transition from a Java dev to a configuration developer for a specific tool.
IngresABF@reddit
I’m a generalist, yes it’s good for opportunities- but, someone has to have the deep knowledge. Having a niche can seem like you’re pigeonholed, yes - but also, your knowledge/experience is valuable and more importantly rare; you have much less competition
janyk@reddit
Employers rarely value generalized and transferable skills.
TribeWars@reddit
At smaller companies wearing many hats is essential.
janyk@reddit
Yes, but the employers likely do not recognize the value of those skills.
blowupnekomaid@reddit
Yeah. Not necessarily a bad thing though, in my experience working in a more pigeonhole area as opposed to a general senior full stack dev, can result in lower level of expectations and more chill work environment.
exomyth@reddit
Yes, so I am avoiding it
UnluckyAssist9416@reddit
Yes it is possible.
The common phrase is that you repeat the same 1 year experience over and over. So even though you have senior years, you have junior experience.
It is why you will always find developers pushing 'new' tech. They are resume building more then trying to do what is best for their projects. With the current market where applicants get auto filtered out if they don't match the job descriptions tech stack, I'm not sure they are wrong.
AnAcceptableUserName@reddit
Eh, devil's advocate: Sometimes pushing New Thing just for the sake of not having Old Thing in your stack anymore is a good move
If nothing else it's a lot easier to find new people who can hit the ground running when you're working with something that was trendy in the past decade.
ashdee2@reddit
Isn't it the opposite? You repeat the same year when y move from one stack to a different stack
idontevenknowwhats@reddit
Yeah but all of those stacks are at the junior level.
ccricers@reddit
The underscore shaped developer
ashdee2@reddit
What is the difference between Junior and senior level stack
OkidoShigeru@reddit
Not sure about your situation in particular, but definitely saw something like this with an unfortunate person I interviewed recently for a graphics programmer job in games. They were clearly passionate and wanted to move into graphics work, had done lots of hobby stuff, but their work experience in games was pretty much just gluing SDK stuff together and fixing generalist bugs, which meant that yep, they didn’t have the kind of deep experience we were looking for in an applicant for a graphics programming job. It sounded like they had tried to move into more graphics stuff at their current job, but yep had unfortunately been pigeon holed into that SDK glue stuff instead.
Jolly-joe@reddit
I had to leave a company because I was stuck working with tech no one else wanted to work with. It started off as me trying to help out but then I quickly became the SME and just got defaulted any tasks. meanwhile I lost a promo cycle because my work didn't have enough impact... because I was working on this niche tech no one else wanted to use. A lose lose situation that I could only fix by job hopping.
diablo1128@reddit
I worked on safety critical medical devices for 15 years, think of things like a dialysis machine. It was mostly c and c with classes style c++ code with some python. I started as a new grad and eventually was leading teams of 20 SWEs and responsible for all software activities on the project.
Projects I've worked on has been granted FDA approval and I even got my name as an inventor on patents. Saying all of this I find it hard to move to different jobs that's not what I do. The companies that reach out to me these days are companies working on health related devices.
I don't mind learning new things but companies want me to come in at Senior and above levels and I just don't have that kind of experience in other domains to hit the ground running. I feel I could work on a fitness wearable or autonomous vehicle, but I lack domain skills that others have and look more impressive in interviews.
I don't mind taking a down-level to mid and learning. Hell I'd probably still make more money at an actual tech company then the 110K I made at the private non-tech company in non-tech city.
roger_ducky@reddit
You get pigeonholed eventually if you’re experienced enough for people to expect you to be senior or above.
Way I’ve gotten out was to apply at less picky places and work with more recent tech nearby employers needed. Typically with worse pay. Then apply at other places as the chance arises.
kevinossia@reddit
No. At least, not through factors outside your control.
You are in charge of your own career and what you want it to look like.
tehfrod@reddit
Not sure why this is getting down boated.
It's absolutely true.
yen223@reddit
Reminder to anyone who needs to hear it: You have a lot of agency over how you want to take your career.