Here's the most recent example: I interview in December, it's great, there's a former colleague that remembers a lecture I gave, he's a cool guy, and I make it clear to new boss that I don't do front-end work, but to be sure, I tell them during the last round of interviews not just that I don't do front-end but that I keep getting this bizarre bait and switch. New boss nods, talks about scaling problems, they need someone that's good at Postgres. I sign a job offer and my first week, I get "please move these buttons". I protest, he says it's to get me used to their workflow. So I move the buttons, then go back and forth with QA for a week on spacing issues. I get a bad feeling and remind new boss. Similar weeks go by, I get invited to a meeting, HR CC'd: I'm slow and my work is bad. I tell them I'll do whatever they want to pay me to do, but I do a better job if I'm doing the work I am great at, "I mentioned this during the interview, I would not have taken the job if it was front-end". New boss stares down and does not say anything for while the lead talks about everyone on his team being a full-stack developer so I need to acquire front-end expertise in a hurry. I spend my evenings and weekends learning Vue.js, doesn't go well, another meeting where new boss won't make eye contact and now he's old boss.
I still don't understand why. I've started getting somewhat superstitious: I'm leaving JS/CSS off my resume and LinkedIn, I tell recruiters that I don't know JS. I hear about the difficulty scaling their public-facing APIs, the new customer that requires rewriting the ETL pipeline, I sign up, but I arrive and hear "We'll do those things later, first we need you to make a landing page and help port the front end to the new version of React."
It's gotten maddening: at a previous employer, I started having panic attacks and chain-smoking (both fixed now). I design and build APIs, I write back-end code, I optimize Postgres/MySQL/Redis, I build telemetry and then use it to implement data-driven rate limits to mitigate DDoS attacks, I architect systems, I transform and move massive amounts of data quickly and reliably. I'm very good at those things just not at browser front-ends.
I can't rationalize it as coincidence or a fluke: at least half a dozen employers have told me I'd be doing back-ends and ask me for front-end web development. I've worked at a lot of startups and have done plenty of consulting jobs: I understand wearing several hats (it is one of my favorite things about startups), and I like jumping in to help where it's needed, even on the front-end.
Has this happened to anyone else? No one I have worked with before seems to have this problem. Why would an employer do this? That's important to know: if I don't know why, I don't know what to do to prevent it. Since I am well into the senior/staff level and skilled, I cost way more than a junior front-end dev, so it can't be for economic reasons. It has happened too many times across too many years to be a weird employer or a coincidence. I don't want to come off defensive or combative during an interview, but even being extremely direct has gotten the same result, so it can't be ambiguity. Is there some magic phrase I can use with employers to say "Seriously, we will both be unhappy if you want me to make a web front-end, this will be a catastrophe"? What am I doing wrong?
If you want to play the corporate game, you need to get used to having 5 meetings to move 1 button. And it's not about the button either. It's about asking Alice how her daughter is doing, and asking Bob on how he feels after that surgery, and casually hinting to Carol that you really like her choice of coding style for that new project. You play that game for a few years and you'll be allowed to have some monkeys of your own.
Or if you find the game soul-draining, you need to beef up your sales skills and connections, and become a consultant. One of those guys that gets invited to unwind a particular clusterfuck, gets paid $500/hour and quickly moves on to the next gig. This means less stability, more control, and a totally different skill set. Ultimately, your call.
I think some shops just really want everyone to be interchangeable as a way of ensuring no one becomes too niche and therefore irreplaceable. i.e. it’s a control thing.
My suggestion would be to look for info early on in the vetting process for stuff like how titles work there and how teams are organized. possibly ask to talk with other potential teammates or other employees.
I guess the other thing I'd ask is, why the strong resistance to frontend work? I get not seeking jobs for it or not preferring it, I don't seek those either, but for my own personal productivity I like to have a decent idea how to build a frontend in case I'm waiting on someone that's overloaded in order to deliver my feature etc. It can be helpful for a career if you don't have to frequently tell people "I can't do that", vs, "it's not my strong suit but I can pitch in"
From what you've described, I'm not hearing "I don't do frontend", I'm hearing "I only do frontend badly and under protest". That's complicated, "I don't do frontend" is simple -- but you need to back it up.
No one seems to be able to really communicate anymore.
They then hurriedly reshuffled some people after complaints. I know someone put into a backend role that had the job title "Staff Front-End Engineer".
I'm 80% sure they did the staffing in Excel, primarily worrying about what office the headcount was in.
In that offer letter, you need to negotiate so that it says “backend features” and “op will not be required to implement frontend features, which use technologies like JavaScript, typescript, and css”.
The act of negotiating this will show you if the company is actually ok with this or you are just being told yes by a recruiter.
If you can’t get this, then you are effectively powerless.
I mainly work for places with less than 50 engineers, and with the exception of CICD and a little fooling around in DBs, everyone sticks to their area.
Did you say this in the interviews? Even if you said you don't do frontend, if you said this too, that's why.
I'd try to apply to jobs with titles like "Backend Engineer" etc, not generic software dev jobs. People look at titles. If your title is Senior Software Engineer, you'll be expected to do frontend at most poorly managed startups. Managers and HR churns all the time. But your title makes your responsibilities clear. Even if you apply for a "senior s/w engineer" job tell them you want your title to be "senior backend engineer" or whatever.
For example early on on my career I only did frontend, and then I applied for a job that was specifically "Backend Engineer". I never wrote a line of frontend at that next job.
That said, to me it sounds reads like you do mention your Web dev experience in either the interviews or the CV. Whenever you mention being bad at it, they hear you are not good at it, which means you are a resource they can throw at it.
Have you tried skipping over and lying about any web experience at all. As if this was something you have no clue about. Like if you mention "don't give me hardware related stuff, I am bad at that" they might hear "oh this guy knows some hardware stuff". So may be treat your FE work like that. Something totally alien to you.
But again, I have no professional web dev experience and my suggestion/understanding could be very out of place.
I like to ask things like "what are the biggest technical challenges/focuses for the next 6 months?" And "are there any projects or initiatives you would want me to work on right away?" And "if I'm successful at the roles, what sorts of things would you expect me to accomplish in the first half year or so?"
Those all give you more info than the answers alone. I always look out for companies that are always on fire/reactive as a red flag. Good companies will have objectives and be hiring you to help accomplish them. Bad companies will have a put crew tackling tickets "as they come" and any actual projects keep getting superceded by critical issues or user requests that are over-prioritized.
Lastly and most simply, just ask employees there what they are working on and how they go about assigning tasks. If everyone is touching a the codebase and that's not what you want, avoid the role!
I got some very helpful answer to this. The most important one was probably "Just ask the other people there how things get assigned." (And independent of front- or back-end engineering, while reading what everyone had to say, I realized I should figure out how go back to smaller companies; I am usually happier putting out fires with a small group of people.)
I appreciate it, HN. Thanks!
It’s so much simpler to only have one major tool to stay on top of rather than adding npm, react and webpack plus all the rest.
We still do a load of front end work, but it’s html, tailwind and vanilla JS.
Are any others looking to do this to?
Surely you’re better off if you’re sticking to 100% rails/django/laravel?
It doesn't matter until you say 'No' to them, or else you will find yourself running into the exact same problems you are describing here.
You mentioned startups and scaling problems. Scaling problems are typically for smaller companies.
You need places with 500+ engineers. Look at bank, insurance, bigN, anything in the f500
I honestly disapprove of Java as a language, it's simple so I can write it, but find no joy in it whatsoever. Not once have I mentioned Java on my LinkedIn, CV, or in person.
Every company I've worked for, I had to write Java. Sometimes it's their backend, and I'm their frontend guy and get assigned end-to-end tasks. Sometimes it's more obscure, like an Android app (hey, you're the frontend person, and Android apps have frontend!)
In my current company I seem to have broken the Javacurse by moving into a low managerial role, so now I can assign the tasks I hate to people less offended by this nonsense.
You haven't described the positions you interview for, so it's hard to say, but if you find the situation repeating over several jobs, it seems likely that you're applying for similar positions. If this is so, then you clearly need to stop applying for that specific kind of position.
Note that you may not realize they are similar positions, or what it is that they have in common and makes it "wrong".
Maybe at Google you can get away with being the "person that does X-only" but that doesn't work in most companies.
Your job is to do _the thing_ if that thing includes front end work, then you do the front end work.