4 ms·
Hard disagree. Just as I disagree about "full stack" developers. People that call themselves "full stack"are a backend developer that dabbles in frontend or a
by hansonkd 2y ago
Hard disagree.
Just as I disagree about "full stack" developers. People that call themselves "full stack"are a backend developer that dabbles in frontend or a front end developer that can dabble on the backend. Almost never have a met a person who was equally good at both.
Just the same Languages have their strengths. Using a backend language to write your frontend is more or less a waste of developer resources. Chances are if you just chose react and typescript you could pull things off the shelf and have almost an unlimited amount of resources and developers you could pull from compared to an esoteric LiveView or webassembly type framework, get the project done faster, ship and iterate as opposed to reinventing the wheel and satisfying the commonly felt NIH syndrome.
Typescript for both frontend and backend is a bit better, but the backend story for me is still weaker than using Python or elixir, etc simply serving an API, because if you are building a company, 9 times out of 10 you are going to have to have an API anyways. I like to have the boundary of that API explicit.
the only exception to the above is if you aren't building a company and instead working on a small personal or group project.
- Aeolun 2y ago> Almost never have a met a person who was equally good at both. Doesn’t that say more around your surroundings? I’ve definitely met people that were equally competent at both (and more competent than most). A lot of things that are important on the front-end are equally important on the back-end and vice versa. Lets add databases and infra while we are at it. The thing is, you need an actually senior engineer for that. Not some kid right out of college that is somehow called a principal.
- runarberg 2y agoThese are totally different skill sets with very different tool chains. Front and backand are as dissimilar as carpentry and cabinetry, or geography and geology, or tailoring and fashion design. On the frontend you need to deliver excellent user experience, deliver accessibility, localization, cater to different—sometimes legacy—browsers. Even if you have a graphic designer, you still need to work with your designers to deliver a good UX. On the backend (I think) you need to deliver optimization, and speed, you need to work within confines of your infrastructure, or work with your infrastructure engineer, you have to design databases and optimize your storage and delivery. You also need to deliver a good API for your frontend devlopers, otherwise they‘ll complain. I‘m a frontend developer so I bet there are tons of stuff backend developers do which I don‘t even know about.
- hansonkd 2y agoYou articulated it beautifully.
- mattbaker 2y agoThey’re definitely not totally different, it’s still programming. I’m competent in both and have occupied both roles in my career, but more importantly I’ve worked with people much better than me in both areas :) They were more similar than they were different. I do agree with you that there are skills specific to each layer of the stack and they don’t all cross apply. You definitely don’t get to be good at backend and then magically be a strong frontend engineer! But I think a good backend engineer has a bright future as a good frontend engineer and vice versa, should they choose to pursue a different branch of our discipline.
- runarberg 2y agoCarpentry and cabinetry are both wood working as well, and both professions have somewhat of an overlapping tool set. However the professions are still very different, and being good at one will not make you good at the other. A good carpenter will have to learn a whole new skill set if they want to be a good cabinet maker.
- re-thc 2y ago> On the backend (I think) you need to deliver optimization, and speed, you need to work within confines of your infrastructure I hope the same applies for frontend. Let's not have the 20MB bundles (definitely exists) and seconds before a page loads etc. > which I don‘t even know about Security!
- runarberg 2y ago> Security! This is why no-one should hire me as a backend developer ;)
- Boldened15 2y agoIt really depends on the product (or feature) how much of that expertise is necessary. You need some domain experts for sure who really know the ins and outs of the specific backend and frontend technologies to architect the overall app and build system, and do the hardcore stuff like optimization that you mention. But fullstack engineering is just much more individually productive, if you're updating a settings page why involve multiple engineers and coordinate a handoff, when one engineer can just add the API calls on the backend and add the new toggles to the frontend in a single day? Most software doesn't need to be beautifully polished and completely excellent. Anyway I personally just find it fun, I get to breathe life to a vision end-to-end and tackle a wide variety of problems, and I can deliver quickly. Even if I'll never be (and don't desire to be) a super expert in one technology.
- xmprt 2y agoI think a lot of frontend engineers can do backend work and vice versa, but it takes a lot to be very good at both. It's not impossible but also I think it's rare that a backend engineer would voluntarily decide to also become a frontend expert instead of leveling up their backend skills. Fullstack in my experience arises out of a need by companies and startups to cut costs by having a single engineer do both.
- emseetech 2y agoA true fullstack developer is a jack of all trades. The adage being "A jack of all trades is a master of none, but oftentimes better than a master of one." A fullstack developer is not two developers in one. A dedicated backend or frontend dev will always overperform a fullstack dev in their side of the stack. But while a good fullstack dev is not useful to a more mature company, they are invaluable to a startup, early stage company or greenfield project where building fast, lean and "good enough" is the target.
- harrall 2y agoI think it depends 100% on the person. I’ve met people who haven’t solved a partial differential equation in 10 years and still remember how to do it whereas some people barely remember the library they used last week and have to keep a mountain of notes. The people in the former camp have a lot of very deep knowledge on a lot of things.
- emseetech 2y agoSomeone who can solve a partial differential equation with an hour refresher after ten years but most importantly can identify a situation where a differential equation is useful even if they can't solve it outright is still useful. If they're keeping a zettelkästen level system of notes and can get back up to speed on the specifics quickly but retain conceptual knowledge then I don't see any reason to dismiss them. One issue our industry has is how to identity a great generalist. Broad conceptual thinking is harder to test and interview for than specialized tasks.
- 2y ago
- deleted 2y ago[deleted]
- taurknaut 2y ago> I’ve definitely met people that were equally competent at both This is somewhat silly because there's no good way to compare backend and frontend abilities. And why would you! A full stack engineer indicates willingness to tackle both sides, no equivalent competancy.
- taurknaut 2y ago> I’ve definitely met people that were equally competent at both Tbh this is a meaningless statement. How on earth is any sane person supposed to compare competencies? I both describe myself as full-stack and associate with other people who do the same. There isn't a single person among us who would try to pitch ourselves as equally competent on the front end and the back end. Who would do this? Why? To what end? This simply ignores why people actually use the term "full stack": to indicate willingness to take on work, not competency.
- golergka 2y ago> People that call themselves "full stack"are a backend developer that dabbles in frontend or a front end developer that can dabble on the backend. Almost never have a met a person who was equally good at both. So what? Both of these developers would be able to ship a typical feature in a typical web product by themselves, without back-and-forth with their counterpart all the time, and that's a huge productivity boost. May be at some point help from a subject area expert would be needed — set up proper db indexes, center that div properly on a small viewport. But being able to iterate without the need to communicate, debug miscommunications, or wait on another person’s availability is a massive efficiency gain. Most product work doesn’t require deep specialization—just someone who can get things working end to end, refine as needed, and know when to pull in an expert. The alternative is siloed devs constantly handing off half-finished work, where backend waits on frontend for an API contract, frontend waits on backend for an endpoint, and everyone waits on QA. Been there, done that. A competent “full stack” dev sidesteps that bottleneck and ships.
- hansonkd 2y ago> So what? Both of these developers would be able to ship a typical feature in a typical web product by themselves, without back-and-forth with their counterpart all the time, and that's a huge productivity boost. Its a short term productivity boost sacrificing for long term maintainability and future productivity. I would take 1 backend engineer + 1 frontend engineer over 3-4 "fullstack engineers" any day of the week.
- leetrout 2y agoWhat is the sacrifice, specifically?
- hansonkd 2y agoSame reason you hire an architect, electricians, carpenters and plumbers to build a house instead of getting an equal number of handymen and telling them to get at it. Thats not to say a layperson can't build a house, but having experience and training about a specific domain can make later modifications and updates significantly easier.
- tobinfekkes 2y ago> Almost never have a met a person who was equally good at both. I am literally that person. It's a good thing we've never met, or you wouldn't be able to say that anymore! Edit: Sorry for sharing my professional responsibilities, where some of my clients pay me for front-end work, some for back-end work, and some for both. I forgot that people on the internet that have never met me know what I do better than I do, and that I'm not good at it! Please don't tell my clients that have been paying me continuously for 15 years....
- hansonkd 2y agoperhaps you are the exception that proves the rule :shrug: or perhaps its hard to objectively measure one's owns abilities. which is the most common thing i have seen from "full stack" interviewees.
- deleted 2y ago[deleted]
- owenpalmer 2y ago> perhaps you are the exception that proves the rule As someone who worked directly with OP, I can confirm they are highly exceptional. Don't be too surprised when you encounter talented people on HN. I challenge you to be more inquisitive, rather than dismissive.
- nesarkvechnep 2y agoOr, you just think you’re literally that person. No offence, I’ve met my fair share of developers who are full of themselves but are barely tolerable at best.
- bb88 2y agoThe devs who don't ooze ego over all of their code and just let their code speak for itself are often the best developers.
- JoeyJoJoJr 2y ago
- ehnto 2y agoIn fairness, the goalposts for frontend dev shifted significantly in the past 10 years. But also, no one thinks Full-stack developers are experts at everything. We are well aware they are the jack-of-all-trades developer archetype, that's why we hire them. They come in all kinds of shapes like you allude to, more like a starfish of skillsets with varying degrees of skill in each leg. But perhaps the best thing you get out of the starfish, is you know they'll be able to pick up whatever you throw at them, and they won't complain that that they can't do it because it's not "frontend" or not "backend". Corallary, good programming is universal. I find people tend to be experts in business domain and framework, regardless of where that lives on the front/back spectrum.
- hn_throwaway_99 2y agoIn my experience, I've seen no benefits (and sizable downsides) to using Python on the backend when the front end is React vs. using Node. There are tons of robust API frameworks for Node, a huge ecosystem, etc. So with Node and Python it's more potayto-potahto, and if that's the case, there are benefits to having everything in Typescript for standard server/client cases. Note I'm not saying do this everywhere if there is a place where there are clear benefits to using another language. For example, while IMO the difference between Python and Node on the server for standard CRUD type apps is really one of preference, that's not the case for doing something with ML or LLMs, where the ecosystem around Python is much bigger, robust, and more generally familiar to the AI crowd.
- xmprt 2y agoI think you feel that way because you're comparing Node to Python. Neither of them are particularly good languages for servers. Languages like Go and Java/Kotlin are much better when you're building complicated systems that need to be performant and reliable.
- physicsguy 2y agoGo is not the best for ML and scientific applications in my experience. Orchestration is fine but the libraries just aren’t there, Gonum alone is way behind NumPy/SciPy
- hn_throwaway_99 2y agoHard disagree on Node (at least if you're using Typescript) not being a good server language, and I say this as someone who was a Java dev for the first 15 years of my career. I've seen more performance nightmares with Java compared to a well-written Node server, though Java has improved a ton in recent years with things like virtual threads and the community has generally seen the error of the unnecessary AbstractFactoryBuilderGenerator shit that was so common for a long time in Java.
- hansonkd 2y agoTBH the hardest thing for a long time about Node backend engineers isn't that there isn't great frameworks but a lot of times people choose node for the above use case. So developers who write Node backends were some breed of frontend people who chose node because they didn't want to learn another language as opposed to learning the language because it was the best tool for the job. Anyways recently the typescript backend scene is developing a lot better than even a few years ago. stuff like NextJS becoming more popular and more stable better backend typescript frameworks coming out. My comment was mostly aimed at using backend languages for frontend as opposed to necessarily targeting Typescript
- steve_taylor 2y agoWhen you have a team of full-stackers with some front-end focused, some back-end, and some in the middle, with the right team culture these people can learn from each other and grow into well-rounded full-stack devs. And given the current market, companies can be more selective.
- evantbyrne 2y agoIt's kind of funny to me how derided full stack developers are as unskilled generalists. It would have been unthinkable back when I started web development to only learn half of what it takes to build a website.
- taurknaut 2y ago> People that call themselves "full stack"are a backend developer that dabbles in frontend or a front end developer that can dabble on the backend. Almost never have a met a person who was equally good at both. I never interpreted Full Stack to mean homogenous competency, which is a rather strange concept if you think of it.
- barrell 2y agoI also think having one language can be a detriment at times. The JavaScript that you write on the server is so different than that on a browser. Same with Clojure/ClojureScript. This idea that everything is in one language so everything is understandable to everyone just isn’t true in my experience. It’s more like trying to learn to speak Brazilian and European Portuguese at the same time There is something to be said about language _pairings_ though. I was building with a Python backend and ClojureScript front end for about 8 months and it. was. [expletive]. miserable. The context switch between the two languages was insane. I rewrote the backend to Elixir and the problem completely went away. No more context switching. Elixir is amazing at what it does. ClojureScript is amazing for UIs and state management. Everything is functional and immutable. That being said, I do occasionally wish the data validation could be written in one language and used on both places. But that’s just the engineer in me - in practice I have had 0 data validation mismatch errors
- 8note 2y agobackend engineering is really straightforward nowadays. same as frontend, its mostly knowing a couple tricks about how to format data. mostly is language agnostic api calls of some kind and you can have minimal transformation code over some fully managed platform. typescript seems to be one of the more supported transpilation tools.
- EVa5I7bHFq9mnYK 2y agoJS can serve API all the same as Python, and faster in most cases.
- voidr 2y ago> People that call themselves "full stack"are a backend developer that dabbles in frontend or a front end developer that can dabble on the backend. Almost never have a met a person who was equally good at both. Full stack developer here who disagrees. Most web apps are not that complicated and if there are the term 'backend developer' will be replaced with something more specialised as well. > the backend story for me is still weaker than using Python or elixir, etc simply serving an API That is a very odd statement, Python has a lot of issues that NodeJS never had, in terms of developer experience I believe NodeJS is superior just based on the fact that I don't need to know what a virtual environment is and I don't need to choose between different incompatible package managers before I even write my first line of code. > if you are building a company, 9 times out of 10 you are going to have to have an API anyways. I like to have the boundary of that API explicit. If the only consumer of the API is your frontend, why would you want to have such a strong boundary? > the only exception to the above is if you aren't building a company and instead working on a small personal or group project. This statement can easily be hard countered by the rise of full stack frameworks like NextJS and the fact that the whole backend-frontend separation didn't always exist, it mainly happened because of SPAs.
- mckravchyk 2y ago> Just as I disagree about "full stack" developers. People that call themselves "full stack"are a backend developer that dabbles in frontend or a front end developer that can dabble on the backend. Almost never have a met a person who was equally good at both. I would not be surprised if in 10 years from now, there will only be full stack web developers. I am a desktop developer (yeah, Electron). There's really no front-end / back-end split in this domain. Electron is pretty much everything web front-end (in a "SPA, choose your own adventure" way rather than relying on a framework to do the heavy lifting) and all the business logic that is self-contained within the app and putting it all together with the APIs Electron exposes. I know that a local self-hosted back-end does not have the complexity of a distributed web-backend, but it's still much more than just front-end and there are areas of development that are probably more "wide" and definitely more complex than this anyway - like video game development or C++ / QT desktop development. Now what happens to the front-end now? Full-stack frameworks like Next.js. They also simplify the front-end part to death, where you do not even get to think about state management anymore. Then you add generative AI... Also consider this, is a front-end and back-end engineers with 10 years experience at a large co that much better at their respective domains than a full stack with 5 years of experience at a startup? I cannot say for the back-end, but I can say for the front-end - there's a ceiling and it does not take long to reach it (maybe 5 years). You stop getting much better once the ceiling is reached. So what makes someone good is both reaching the ceiling and continuing to do the work on a daily basis, rather than specialising in an area, in my option. A video game dev with 20 years of experience probably is much much better than one with 5y. But front-end? I don't think so.
- pjmlp 2y agoAs backend developer/devops that dabbles in (Web) frontend, I am fully spot on the point of view. The only kind of frontend I could equally consider myself good, are native frontends on Apple and Microsoft platforms, but that is because native GUIs do most of the UI work and don't require CSS wizardy skills to turn divs into drop down boxes with type-ahead search.