HACKER Q&A
📣 throwawaybcknd

Front-end bait and switch?


First-paragraph TL;DR: A weird and very specific thing keeps happening to me: I tell a recruiter that I don't do front-end work, I take an interview with an employer, I make it clear during the interview that I don't do front-end work, I hear nothing but "Yes", I take the job...and then I get assigned front-end work. My performance drops off a cliff, I try to communicate, it gets worse, and if I don't quit, I get fired. Once could be a fluke, but it has happened several times. I don't understand and would seriously like to understand so I can avoid it.

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?


  👤 matrix_overload Accepted Answer ✓
It's not you, it's the industry. For every non-trivial task there is a long line of people within the company willing to do it for some visibility. But in order to get promoted to the position where they can do it, they need an army of button-moving monkeys working underneath them. So, they will say whatever they need to say in order to get you to sign up. Because that increases the head count and gives them more internal weight.

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.


👤 coumbaya
I'm flabbergasted by the majority of answer there, and wondering if I've been extremely lucky. I've never even heard of a (senior) BE asked to do some FE work. I've done like one FE PR at each startup I've worked at (granted it's not that many startups, but all under 60 devs), and each where just like small translation or removing a button, idk. To me they are widely different jobs, but I guess it depend on the stack and scale. I would've reacted the same way as you I think, or maybe just played (or really be) absolutely dumb reharding those asks.

👤 william45123
I have encountered the same problem but as a FE engineer who doesn’t do backend. (we should hang out)

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.


👤 onion2k
Dev jobs where you do no frontend at all are pretty unusual, especially in startups where everyone does a bit of everything. You're often given some 'easy' fixes that are inevitably frontend before you're let loose on the 'hard' stuff at the back end. As a dev who worked on mostly frontend code for about 25 years it's incredibly annoying. It's probably a large factor in why the web sucks - a lot of devs who don't want to work on frontend apps and who don't really understand what's important in a frontend app are churning out code that isn't fit for the job. More specialism would help immensely.

👤 overgard
My guess would be that for non-technical people it's much easier to schedule visible work (frontend) vs invisible work (backend). Are the people that are managing you less technical possibly? If you have a good technical lead they should probably understand the work to give you, but PM's and scrum masters frequently don't understand.

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"


👤 dml2135
What's your job title been at these places? Is it "Backend Engineer"? I'd have that as your job title at the top of your resume, and insist on being hired under that title. When assigned frontend work, point to your job title, and refuse to do it.

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.


👤 katzinsky
I've had this same thing happen with deployment automation. I'm a good software developer but everyone wants people to write hudge knots of deployment code for some reason. I get interviewed for other stuff and then I'm only given that after joining. I'm not great at it, it's frustrating, and eventually I get burnt out and quit or get fired.

No one seems to be able to really communicate anymore.


👤 nitwit005
I can tell you that at my current employeer, they just did a re-org, and people were assigned seemingly randomly to front and back end roles.

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.


👤 tomhallett
In your offer letter, it should say what your job responsibilities are. Usually things like “work with stakeholders to develop features”, etc etc.

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.


👤 ghusto
I'm hearing a lot of "you can only demand your job title's work at large companies", and disagree. It may be that this is actually true in America, I wouldn't know. What I can say though, is that at least in Europe this really hasn't been my experience.

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.


👤 winrid
> I like jumping in to help where it's needed, even on the front-end

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.


👤 emerongi
Specialising is only possible in larger companies (more than 500 employees). What size have these companies been? A smaller company might want to hire a backend expert, but who might have to jump into front-end for short periods - sort of an 80-20 split. Communication during the hiring process can be suboptimal for a lot of reasons: one person does the job posting, another does the interview, a third actually knows what the job entails, but they were never involved in the process. You have to account for that yourself: request a "get-to-know-eachother" with team members and ask them what they do daily. That's the only way to figure out what your own job will be like. If they are set on hiring you and are a good employer in general, they will not have a problem with a request like that.

👤 azangru
Given the astronomical number of frontend developers currently on the market, I am amazed that you are tasked with frontend work when you explicitly ask not to be. I would have thought it is much harder to find a back-end specialist these days. Are you not working in a team? Do you not have front-end specialists or full-stack generalists on it?

👤 smusamashah
Only web dev at work I ever did was in my internship. I have been a backend developer since then. No touching web or front end stuff at all.

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.


👤 lubujackson
To answer your question: it is not you, it's them. Still, rather than over-emphasizing that you don't want to do frontend, spend more time getting a feel for how the company operates during interviews.

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!


👤 tengbretson
Don't work with recruiters.

👤 hitsurume
So have you been laid off or fired several times in the past few years? Do they tell you its because you can't do frontend or is it for performance issues? I feel like there's some key information missing here.

👤 throwawaybcknd
> What am I doing wrong?

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!


👤 jonwinstanley
At my company we finally got rid of the last of our react projects so we are now 100% Laravel.

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?


👤 rvz
Maybe you should be self-employed or build a startup yourself instead of running into the same problems with 'employers' who don't care about what you say and just need a code monkey to code for them.

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.


👤 shove
By Occam’s Razor: the people in charge of the day-to-day running of things at most companies are simply not very bright. I’ll get downvoted for this, because “attitude problem” or whatever, but I’ve been around 30 years y’all. There aren’t many explanations that fit the data.

👤 apricot13
I've noticed it too but as an actual front-end dev I find it very frustrating because you can tell when someone's not a frontend! Then another not-frontend joins and it gets rewritten and again and again - might explain the cycle your seeing!

👤 CLiED
In the grim dorkness of the near future, there is only JavaScript and front-end work.

👤 deadbabe
Better a backend dev in the frontend, than a frontend dev in the backend.

👤 marcosdumay
My guess is those people need somebody with your expertise, but only once in a long while. So they see the need to hire for it, but don't actually have enough work to keep you occupied.

👤 Atotalnoob
You need to work at larger companies.

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


👤 achempion
What is the tech stack you usually apply to in terms of BE languages? I'm wondering if it can be related.

👤 animuchan
I feel you, I really do. A similar thing happened to me with Java.

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.


👤 genezeta
Could it be that you are applying for the wrong positions?

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".


👤 jarsin
Nobody lets the new guys have all the fun at first. But seriously outside big tech / unicorns I doubt most companies have the luxury of finding all the right talent to have such well defined roles.

👤 llmblockchain
"I don't do X type of work" is pretty unrealistic and comes across as more stubborn than anything else. This is especially true in a small/scrappy company up to medium size companies where you're expected to wear multiple hats.

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.