Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Front-end bait and switch?
53 points by throwawaybcknd 3 months ago | hide | past | favorite | 74 comments
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?




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.


Cynical but kind of accurate.

> 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 is a "plays golf with the CTO" rate; I spent some time consulting because I thought that would mean more flexibility, and it's feast or famine, because of what you said about headcount, which applies all the way down until it's companies funded out of pocket. It took me years of consulting to figure that out: headcount is a costly liability at most businesses, but at a VC-funded startup, if they are trying to spend their competitors into the ground, frugality is discouraged.


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.


My management expected everyone, who already had a full time job working on their main product, to also be a full stack react+flask dev on the side, to push the CIO’s pet project. It failed within 18 months due to licensing costs. We switched to some other platform, so all that work, if it was even done, was thrown away and had to be done again on a new platform.

I tried explaining to my boss that a BE dev isn’t going to jump into react in a day or two, but the expectations had been set. The principal architect on the project also quit, came back, rebranded everything for no reason, then quit again. It’s been a mess.

Luckily, I was able to avoid getting too deep into it, as it was obviously going to fail, and I was able to kick the can down the road until it did.


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.


I saw front end people on rota call for microservices. When one microservice failed, the FE devs would be alerted, wake up, agree that the microservice was indeed not running and immediately proceed to page the backend developers. I guess they were on rota just to share the misery.


Not me 2:00am slack posting links to DataDog where our DB latency is at 30 seconds "is this bad?" while I hotfix better 500 handling to the client app.


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

Maybe we should. I know a good ops guy, we've got a minimum viable tech team.

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

That's a good idea. I usually rely on the hiring manager's job about some parts of the work, but then ask the team about other parts; I should probably move this to the "other parts".


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.


I do not believe backend roles with no exposure to frontend are particularly unusual.


Same. If they want front end help don’t hire the guy who is telling you they don’t do front end. Have to take OP at their word here but if that is true the company just sounds like a place you don’t want to work anyway.


Yeah, no-frontend jobs have been the majority of my career. I don't know if I'm typical, but I don't think I'm atypical.


> Dev jobs where you do no frontend at all are pretty unusual,

Maybe for webdev jobs this is true, but there's lots of software out there in the world that is not web development. I don't think I've ever seen ML engineers anywhere near the front-end except in cases where they're personally interested in it.

I do think if you're doing web development being asked to do a front end task, especially as your first ticket since these tend to be quicker fixes, is not too surprising.

But OP might do best to try to avoid web development work altogether. There are quite a variety of data engineering, ML engineering and infrastructure related roles where it would be completely out of the question to be expected to do any front-end.


If you hate front end as much as OP does. I do as well. Just switch to infra/platform engineer. No one ever talks to me about front end unless it’s to deploy the application.


Any tips on making this move? also, I've seen that a lot of infra jobs are just sysadmin in disguise. How do you deal with this?


I started as a swe at a startup and then just made my job fixing our AWS and deployments going from hand deploys on EC2 to docker containers on some of the first versions of rancher.

After that I was hired at a FANG company and worked on automating data centers and service deployments as well as a ton of other stuff. Now I pretty much just go setup infra teams for people I used to work with who are at various small to medium startups.

So I don’t have a great answer for you but I would say staying away from anything where all they can tell you is “k8s” “terraform” and stuff that boils down to writing yaml or some config language all day. Additionally if you can’t get a good idea of where the company is today in the interview and where they would like to go it’s going to be sys admin stuff. In all my interviews i lay out where we currently are and all the issues that causes and go over where we want to be in a year from now and what things need to be done to get there. At the end you should feel like you fit into some part of that.

It is amazing how many hiring managers can’t give you a coherent picture of that. If all they can say is we need k8s, docker, infra as code and other buzz words without a plan the team is setup to fail.

The other way is just apply for platform eng or sre jobs at FANG and friends which will almost never be sys admin stuff although it can happen sometimes if they are listed for a team that works on the corporate side of the business.


I've never seen this. At all startups I've been at, there were either frontend, backend, or FS people, but the separation and ownership was clear. They wouldn't waste a Java Dev's time assigning them CSS stuff, that's just dumb. There's always little tech debt to start with on backend too.


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"


> why the strong resistance to frontend work?

I am bad at it. So they get an under-performing employee with low morale and I get complaints about my work.

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

I usually do the latter, but then in December I thought I'd better make sure, reasoning that things go better the clearer I am ahead of time. That was the first time I tried saying, "Seriously, I can't do that kind of work." This time I got nothing but that kind of work.


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.


> I'm hearing "I only do frontend badly and under protest". That's complicated, "I don't do frontend" is simple

This makes sense.


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.


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.


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.


Have you ever referenced an offer letter to say no to work you're being assigned?

I feel like the last bullet point is always something like "ad hoc duties as assigned by your manager"


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.


Nope, there's a few different philosophies at work, and I've seen both in the US.

On the one hand, you hire and assign work to domain specialists. You don't expect a DBA or backend senior to be able to explain the box model in CSS or how to make a custom model accessible to screen readers, and you don't expect an FE senior to diagnose why an index isn't performing well or whether a particular model should be backed by a polymorphic table.

It's possible to do both, but you're going to be paying senior rates to get junior work except in rare cases.

On the other hand, there's the philosophy that good engineers can apply learnings from one domain to another, and therefore a senior is a fungible resource. If someone is a senior Django dev, they can pick up rails pretty quickly. Surely it can't be that hard to pick up some flavor of JS.

Personally, I'm in the former camp- true full-stack is a unicorn, and the closest ones still need a solid donation from someone else.

I've never been employed as a full stack developer, and though my current company keeps hinting that they want me to go that way, I've been successful at pushing back.


> there's the philosophy that good engineers can apply learnings from one domain to another, and therefore a senior is a fungible resource.

I see that a lot. I mean, JavaScript isn't hard to pick up, but the front-end is not an operating environment that resembles anything else I have ever seen.

> Personally, I'm in the former camp- true full-stack is a unicorn,

I think that's the case, too. iOS or desktop applications, I've played with those, I've done games on tiny hardware, those feel like I'm using the same part of the brain the rest of the computer science lives in, but I don't think it's possible to have a thorough understanding of the browser environment and be equally good with anything else.


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


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.


> Specialising is only possible in larger companies (more than 500 employees)

I've seen this sentiment a few times now, so I'll weight in and say that I have to disagree. I mainly work for companies smaller than 50 devs, and frontenders do front-end, backenders do backend. I've never witnessed the behaviour described. Maybe it's a USA thing?


Small-company USA dev here, this is news to me too.


My experience is the total opposite. Smaller companies tend to interview you for and assign you to exactly what they tell you you'll be doing. It's the big publicly traded companies with sprawling administration that seem to consistently do the bait and switch thing.


> Specialising is only possible in larger companies (more than 500 employees).

I think it depends on the company. You get niches at 10 employees.

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

Yeah, like I mentioned, I don't mind that. At one company, I ported our network daemon to Windows XP.


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?


> I would have thought it is much harder to find a back-end specialist these days.

It would seem that way.

> Are you not working in a team?

Unless I am doing a contract job, I'm always on a team.


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.


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!


> Lastly and most simply, just ask employees there what they are working on

You are the second person to point this out, and I feel like it should have been obvious to me that this is the easiest way to tell. I appreciate it.


Don't work with recruiters.


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.


Are we really going that way?

The OP fully reports a Kafkan maze of being hired for a job, and then asked to perform a completely different job; having a low performance because, well, duh; and then we expect him to explain his low performance?


> several times in the past few years?

Several times in the past fifteen years, but it was that I got fired or quit.

> Do they tell you its because you can't do frontend or is it for performance issues?

The times it was involuntary, it was because I got moved to doing front-end stuff, my performance tanked, I told my manager or whoever was relevant, and sometimes I hear "Just bear with it a minute" and sometimes I hear things like I described above. This was the first time I tried saying anything about it during the interview.

> I feel like there's some key information missing here.

I don't get it either, so at least there's that sanity check: I don't get what's going on because it doesn't make sense as presented. That was what the questions were: I'm certain there is something I'm missing, I tend to be socially oblivious sometimes. I do not get it.


Maybe you should learn some front end and avoid the problem altogether?


Hell no. Why"? Should a anesthetist do he work of a surgeon? It's insane how this industry brainwashed people into becoming jack of all trades, master of none.


There's a difference between becoming incredibly good at frontend and knowing enough to get things done and be a productive member of a team (ie, not get fired like the OP).


What if you don't want to? Being fired form a bait-and-switch shithole is a blessing in disguise.


Yeah, in that situation, it's better to get out as quickly as possible. I want to avoid getting into that situation, though.


I know "some front end". Some things I have picked up like I always knew them, some things required study, some things I'm not going to be good at, and at this point, I'm old enough to know the difference.


> 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!


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?


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.


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.


You are absolutely correct. I am not expected to assemble my desk or the wiring for my workspace either. That’s because people understand that this isn’t part of my job.


Funny enough, one of my early startup experiences absolutely included, “here’s your (unassembled) chair and an Allen wrench.”


Yup! My first day on the last job (also a startup) started with me getting a desk with no power socket nearby. So I had to buy an extension cord (on the company's expense ofc) and run it across the open space.

I'm irrationally fond of this memory, too. It just felt right to improvise and overcome small problems, all day every day. Early stage startups are fun.


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!


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


Someone has to write the compilers.

...In their spare time, as an open-source project, something to keep their mind alive after a day of doing JavaScript on the front-end.


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


Not necessarily. I know people who are equally skilled at both, but decide to do front-end because they don't want to be on support call at night.


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.


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


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


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.


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


> You haven't described the positions you interview for,

If the JD says "JavaScript" or "CSS", I politely decline.

> Note that you may not realize they are similar positions, or what it is that they have in common and makes it "wrong".

I can't discount the possibility.


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.


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


If you negotiate it before being hired, and you get hired, it's a real stupid move for managers to expect you to do the job that you explicitly made it clear you don't want to do / can't do. It's so easy to not hire someone, I really don't understand hiring people who hate and are not good at the job you want them to do.


> Maybe at Google you can get away with

The recent example was a large, international company. I mentioned this in the post.

> Your job is to do _the thing_

Like I said in the post, I do what I get paid to do, and the idea is to figure out how to avoid a place where "the thing" is inappropriate. I have an easier time at startups: I'd rather spend 12 hours a day doing something that matches my talent and interests than spend 8 hours a day saying "Yeah, the button is...I don't know why it is where it is. It looked fine to me before, I don't wanna spend two days on this."


That button conversation is way too real. Front end dev here, and I've probably spent at least 20 hours this year just in meetings about fonts.

I hope you find what you're looking for.


OK, tomorrow you clean toilets in your office. Don't complain that it's not part of your job, just do it.


I do-- I own my own company and the office is my house :)




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: