Ask Slashdot: Are 'Full Stack' Developers a Thing?
"It seems that nearly every job posting for a software developer these days requires someone who can do it all," complains Slashdot reader datavirtue, noting a main focus on finding someone to do "front end work and back end work and database work and message queue work...."
I have been in a relatively small shop that for years that has always had a few guys focused on the UI. The rest of us might have to do something on the front-end but are mostly engaged in more complex "back-end" development or MQ and database architecture. I have been keeping my eye on the market, and the laser focus on full stack developers is a real turn-off.
When was the last time you had an outage because the UI didn't work right? I can't count the number of outages resulting from inexperienced developers introducing a bug in the business logic or middle tier. Am I correct in assuming that the shops that are always looking for full stack developers just aren't grown up yet?
sjames (Slashdot reader #1,099) responded that "They are a thing, but in order to have comprehensive experience in everything involved, the developer will almost certainly be older than HR departments in 'the valley' like to hire."
And Dave Ostrander argues that "In the last 10 years front end software development has gotten really complex. Gulp, Grunt, Sass, 35+ different mobile device screen sizes and 15 major browsers to code for, has made the front end skillset very valuable." The original submitter argues that front-end development "is a much simpler domain," leading to its own discussion.
Share your own thoughts in the comments. Are "full-stack" developers a thing?
When was the last time you had an outage because the UI didn't work right? I can't count the number of outages resulting from inexperienced developers introducing a bug in the business logic or middle tier. Am I correct in assuming that the shops that are always looking for full stack developers just aren't grown up yet?
sjames (Slashdot reader #1,099) responded that "They are a thing, but in order to have comprehensive experience in everything involved, the developer will almost certainly be older than HR departments in 'the valley' like to hire."
And Dave Ostrander argues that "In the last 10 years front end software development has gotten really complex. Gulp, Grunt, Sass, 35+ different mobile device screen sizes and 15 major browsers to code for, has made the front end skillset very valuable." The original submitter argues that front-end development "is a much simpler domain," leading to its own discussion.
Share your own thoughts in the comments. Are "full-stack" developers a thing?
Yes, there are full stack developers but as with any developer they may know how to code the full stack -- but they will typically be substantially stronger as a server/ messaging / or UI developer and thus much weaker on the other side. It is always better to have people that have a full understanding and the ability to step in if required (especially as you become more senior) of the full stack. If you have people that are purely silo developers - then you will often get into situations where your UI developer wants the server to take responsibility and your server thinks it is too frivolous for them and should be done in the UI.
I know someone who has a liberal arts education (all the way to PhD) and then went to one of these coding boot camps. She now describes herself as a "full stack" developer, despite very little training and experience in the field.
The real "Libtards" are the Libertarians!
Who codes for 15 different browsers? No wonder you think it is so hard.
"In the last 10 years front end software development has gotten really complex. Gulp, Grunt, Sass, 35+ different mobile device screen sizes and 15 major browsers to code for, has made the front end skillset very valuable."
This is a silly statement, its like saying backend development is only difficult due to maven/ant. As someone who is a full stack developer (not only web but old style widgets), the vast majority of application code both front and back is plumbing / shuffling bits around, the amount that is technically difficult is diminishingly small.
Having everyone a "full stack" developer does not necessarily benefit or favour the employer. All developers have strengths and weaknesses - and more experience doing one or the other... The natural extension of that is that those that have a strength in server work doing primarily UI work or vice-versa -- will be less efficient than someone whose strength lies on that side. A small employer could benefit from having a backup (even if less efficient) -- being able to step into doing the work that he is less efficient at (better than having no-one). A large employer will benefit from having a pool of senior developers that have full understanding of both sides (as to be able to settle disputes in the best interest of the customer)... But absolutely requiring everyone to be a full stack developer doing both in a large shop is not necessarily the best as far as cost.
PhD stands for Phul stack Developer
Hey! A post I love!
I'm a full stack developer, and I think I do fairly well all around, but UI would be my weakest area, because that changes based on client needs.
I think I am successful at working this way.
The secret is, my 'stack' hasn't changed in 18 years.
I keep upgrading, and I stay current within my stack, but I stick with what I'm doing.
This is web work, so you're generating HTML and JavaScript, and CSS. That's it. The tools behind the scenes don't need to change every year. Find what works for you, and stick with it.
Everything I work on, I have a lot of experience with. I may not be a hardcore DBA, but I have 18 years experience. My server admin skills aren't crazy...but 18 years. Same with the application layer....
It's a cool job for me, because I care far more about the domain I work in (plants) than I do about finding the latest JavaScript framework.
I haven't had a single request in the last 18 years to change any of the tools I use. But I get lots of requests where I really, really need to understand the science and logic of what my customer does. And I'd rather focus on that.
That's my take on this...the technology is over-rated. What's really important is what you do with the technology.
No reason to lie.
... Overflow.
I'm tired in general of people who want to hire with super specific skill requirements. There is so many technologies out there that you end up faking 80% of the crap on your resume. I mean fair enough, if you want a Java developer, you want someone who did Java before. But apart from that, I'd rather hire on talent than specific skills.
As an aside, as a matter of pure research, if you can only hire people on one data point, you're far better of hiring someone for ANY position based on IQ than any other factor such as qualifications, a good performance in the job interview, an impressive resume etc. That's just science. So it's pretty likely that if toss resumes in the bin, and forgo an interview and just give an IQ test, you'll actually get better employees.
Clearly the original submitter has only ever done simple front-end development. Back-end code either works, or doesn't.
Front-end code has to take into account multiple operating systems, multiple browsers, multiple versions of those browsers, hundreds of devices, an extremely wide range of processing power and RAM combinations... in short, your back-end code is a walk in the park.
#DeleteFacebook
Ask for the world. Then you can choose not to hire somebody you don't want in the company (age, race, sex, hair color, etc.) because they don't meet the qualifications. HR has been doing this kind of things ever since discrimination became illegal.
Am a retired volunteer. Started learning web technologies after I retired in 1999: ASP, MS Access, HTML and a little Javascript and SQL where I volunteered for a non-profit. Lately, have designed and developed a very interactive website for my homeowners association with extensive MySQL, PHP, CSS, JavaScript + jQuery, and custom HTML. I use an IDE (NetBeans). I don't claim to be the fastest coder in the world, but I have evolved my skills to use the programming tools needed to do what I want to do to keep my site interesting and useful to our community. I am 78 years old, reasonably healthy, and still learning: a survival strategy I'd recommend for anyone.
I am older, as the summary suggests - I'll be 49 this year, but these days I do:
I don't think of myself as a "full-stack developer", I just think of myself as a developer. The goal is to solve problems, the more tools you have at your disposal the better.
Physicists get Hadrons!
A "unicorn" is mostly just someone who's been around for more than a few years and kept learning in a broad range of areas. There are plenty out there.
Some employers have trouble with wanting unicorns but only having the budget for newbies, but that's an entirely different problem.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
There are good developers and there are bad developers. Once you know and understand the programming paradigm, you should be able to work on anything from Linux kernels to JavaScript apps in browsers.
Now, you may not be as experienced in one or the other, so there will be a learning curve. If the company wants a "full stack developer" what they mean is that they want someone that, without a learning curve, knows the innards of all the technologies they have picked. If they want someone like that, they would probably try to retain and promote people that have worked there the longest, so a full stack developer should be virtually always an internal hire and practically at the level of team management.
But bad managers at companies that don't understand technologies or how 'stacks' work, want a college grad that can quickly be thrown into multiple gaps they have and thus hire externally for "full stack developers" not even knowing what their own stack is and how a hire would have to fill it.
Custom electronics and digital signage for your business: www.evcircuits.com
Well yes, 'full stack' exists, and it can work pretty well. It all depends on the project's needs. The OP is correct in that pretty much all layers of development have gotten more complicated and specialized over the years, but in a way they have also gotten simpler and less specialized too. The people who develop the various technologies have generally taken a 'minimum necessary complexity, scale up from there' approach which has made the barrier for getting useful functionality out of things pretty reasonable. A good full stack developer knows a few technologies from each layer well enough to link them all up and produce something that does the job. It will not be as fancy as something produced by a UI expert, or as high availability as something put together by a database expert, etc, but if the project does not actually need that level of design or fancyness then having a full stack person or two can get you what you need with the flexibility to shift people around.
"but only having the budget for newbies"
or only be willing to *pay* for newbies but demanding expert skills and extensive experience.
Pain is merely failure leaving the body
The front-end is basically completely FUBAR at this time. Always changing trends, always apparently good (but actually really bad) new ideas (like REST now), and everything new is expected to use them. But after a few years the framework designers lose interest and a new greatest thing is born and the old one withers and dies (very slowly). All that without any actual benefit, because business logic and business applications do not need any of that, a vt100 would actually be perfectly fine for most of them. And you do actually find those vt100's still in use. Although they are now a badly working Java Applet, instead of the original rock-solid serial terminal.
While "new" technologies and frameworks are created at a break-neck pace, but they are not decommissioned at the same pace. So the number of different technologies you have to keep running at the same time gets larger and larger. Not good. Most applications web would actually do fine with plain HTML and a bit of JS for interactivity, but that would be plain old boring and nobody would want to be boring just for the sake of actually delivering a mature stable and professionally done product. Instead it is always the next stupid thing that is supposed to solve everything a lot better than the last stupid thing.
Basically, it boils down to most coders never having heard of KISS or not understanding it at all. The utterly demented things coders do are staggering. And the utter lack of skill, insight and knowledge is the same. I recently told some people that their web application was not working with a proxy because it was not web-standard conform and they did not even understand what "RFC7230" was and why it was _their_ problem if they violated it, regardless of whether the framework they were using was doing it or not. Or application teams that expose data to the browser that they must not expose to it or the security model goes out the window. Turns out they had no idea what was getting sent to the browser. Or the senior (> 5 years experience!) web developer that I had to explain the anatomy of an URL to. The list goes on.
In the end, all this is just an expression of too many bad coders and too many bad framework designers (but with big egos!). And they all want to show off their mediocre skills because they have delusions of being masters of this game and jump of every demented new trend as they think that will make them shine. What it actually does is create a mess of inconsistent technologies were you can find all the "web application coding worst practices" because somebody with not even minimal understanding of competent coding thought it was a good idea to do something clever.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Well, you are approaching this from a different angle.
There are many companies with 25-500 employees who need programming, but don't want to pay for an entire team.
Think of a gazillion specialty companies who are small to mid sized, but need custom software. Not every company can run off the shelf type stuff because their business model can't adapt to what is currently available.
So they hire 1-2 programmers and have them do the whole thing. Customer management down to the website.
These aren't bad jobs. And the organizations care more about your longevity than the typical tech shop. These companies don't want to hire someone new...huge hassle.
These are not bad jobs. And they aren't being offshored. You're part of the team and effect how the business is run. You're there to help and guide because you know what's going on.
It's using your skills in a different way.
No reason to lie.
At 45+ I retrained into c# and made full stack in under two years, front end all the way to deployment, and I was far from the brightest of our bunch.
> 35+ different mobile device screen sizes and 15 major browsers to code for
This shows he doesn't understand the entire POINT of html, a web browser, and CSS. He clearly doesn't know the difference between a PDF and an html document if he's coding for many different screen sizes with many different browsers. PDF files are sized - you can make a letter-sized PDF or legal-size, for example. The entire PURPOSE of a web browser, of the rendering engine, is to format *information* coming from the server to fit nicely in whatever size the window happens to be at the moment. If you're coding you're web pages for lots of different screen sizes, you're missing the entire point of what a web browser does, and your pages will be fucked when the window isn't maximized. *Maybe* two versions - small and large. Other than that, let the browser do its job. Don't try to force something to be exactly 3 pixels over by loading pixel.gif three times and you won't have to worry about screen size (or window size).
Your html should describe *what* the page elements are, using tags like "header", "list (ul)", "top level heading (h1)". It's the browser's job to figure out how many pixels a top-level heading should be given the screen resolution, user preferences, etc. Your CSS then can give hints including "larger" which should generally apply to all devices.
Code for 35 browsers? Try coding html 4 or html5. Not IEthml, and not loading pixel.gif five times when you detect Mozilla. Just code to the standard. If one of the three or four major browsers is completely broken in respect to the standard for some tag you can adjust for that, but those instances should be rare.
I guess I am full stack... Everything from R&D to requirements to electronic design to firmware to validation and debugging to production support.
It's definitely undervalued. If you grow into it at one company the raises don't usually match your new skill set. If you are looking to move most places will be looking for specific skills and won't value your full stack abilities properly. That's just the way hiring works it seems.
I've noticed that US companies operating in Ireland pay very low wages. They contact me with offers that are â20k below anything I'd even consider, but want the skills and experience I have. They usually have very poor benefits too. Minimum holiday, no real perks. I don't know how they manage to recruit anyone. UK companies are often the same.
EU companies tend to be a bit better. The Netherlands is a great example. Good pay, 30% tax free income for foreigners, good holidays, holiday buy-back, lunch provided, car chargers, bike facilities, nice offices etc. Sweden and Norway seem good too, if the climate is okay for you. Language could be an issue.
const int one = 65536; (Silvermoon, Texture.cs)
SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
A full-stack developer is a jack of all trades and master of none.
That is nonsense.
If you are to dumb to do several things that all are centered around software development that is your problem.
For example, I saw an actual listing for a job that wanted a web programmer who could also: design for print and web, do photography and videography, create e-mail campaigns, handle social media, write content and documentation, and train users.
This is ofc an absurd requirement. But still I know people who exactly do that and have no problem with it.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Learning a nordic language should not be a problem for an english speaker. Considering that english is heavy influenced by germanic and nordic languages. ...
Most jobs there are english anyway
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Full Stack means you know your way around correct front-end, correct back-end, correct software architecture and a solid setup that can stand on it's own once the project moves from development into maintenance/"dev-ops". This usually means that you focus on a specific set of technologies, and don't get too much into others in detail.
Here's a nice example:
By chance and circumstance I happen to be doing quite a bit of PHP for a living. I started before Node and kinda got stuck with it. I haven't gotten round to building mission critical Node stuff yet, but there also are some things about Node and some about PHP that actually have be favour PHP, despite it being a language developed by monkeys on crack. I also know my way around JS, Ajax, DB Design, OOAD, Linux CLI, Tooling, Load-balancing and some other stuff. Ask me about intrinsict details on JS or PHP I might be out of my depth or jump straight to stackoverflow, but therefore I don't make a fool of myself when I need to pick a font or a color palette or design a basic pageflow and layout. I can also tell with quite some certainty wether someone at any tier of the stack knows what he is doing or not.
Hence: I'm pretty much what you would call a senior full-stack web-developer.
We suffer more in our imagination than in reality. - Seneca
The Germans have something like that, it's called an egg-laying-wool-milk-pig.
They are very rare and their eggs are small, the wool is sticky, the milk sour and the pork awful.
You know the ole 'master of none' thingie.
A "unicorn" is mostly just someone who's been around for more than a few years and kept learning in a broad range of areas. There are plenty out there.
Hopefully there are more of those unicorns coming through the pipeline. I've found so many people simply don't want to learn new things. That won't work in the future, and to a large extent hasn't worked for years. Lifelong learning is the key, and a big part of being a Unicorn is a desire to learn new things. I've seen people lose their jobs because they refuse to learn new things, or learning them poorly when forced.
The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
I'm a full stack developer, I can and do write code in the embedded landscape with C, ASM (Several Arch's). I write back-end code with PHP, C, C#, Node.JS, Erlang, Scala, and some others. I write code in the front-end with JavaScript, Angular, React, GTK#, C#, C, GTK, and some others and I work with Databases, SQL (only when required as it's crap), MongoDB, and some node based DB's.
Part of my past job was to write and maintain a stack that included an Embedded Firmware, Database, Back-end globally distributed system, Front-end System on the Web and Desktop and I wrote a full testing framework for that system. There are defiantly full stack developers and they have a place, BUT, they're also a place for non full stack developers who specialize at a Jedi Ninja level in one area and rock it so hard, it's basically another Woodstock.
Being willing to learn new things is different from being required to constantly shift gears.
How am I supposed to get any good at Yesterdays-Framework.js when management suddenly decides we need to "pivot" to Framework-du-Jour.js?
Hard to say. Over my career I simply learned and adapted to what I needed to do. I actually enjoyed learning new things - I suspect that might be the difference between myself and many/most people. There are rewards for being flexible and open to learning new things.
The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
I'm what you'd call a full stack dev. Most of my time is spent in Angular 2+ with plenty of messing around with Observables and the like. However, I also do work in Spring creating REST endpoints, entities, handling security and integrating with other web services. I also write SQL queries for use by Spring entities, and work with store procedures that inevitably are called by Spring. When I need a new table or column I'll discuss shape, form, naming of it and its relationships with the database folks and they'll put it. Then I'll write the sql to populate it.
We have a dedicated frontend design/developer. He's light on the Angular 2+ side, which allows the rest of us to focus on that part and he takes care of all the CSS. I could do the CSS if I needed to as I was a web developer as well further back in my career. However, while I'm good at user experience flow, I'm not good at the making it pretty part, so we're glad to have him handle that.
The rest of the devs (4) on the team are also what you'd probably call full stack though everyone has their strengths. I'm probably the strongest in Angular 2+ on our team. Two of the others are stronger on the stored procedure/database side of things. The other two are probably strongest in Spring, though one is getting pretty good with Angular 2+ now as well.
Inevitably the entire team, other than the frontend designer/developer, ends up working along all parts of the stack to varying degrees. And we all code review each other's work so we're all exposed to all parts of the system.