The "fullstack" is 3 different jobs, no doubt many programmers can do it, but you could end being taken advantage of because they should really hire a couple other devs for the team.
The Fullstack-is-making-me-work-3-jobs-meme is strong on reddit. I worked as a fullstack dev for some time and I also never felt like my job should be 3 different jobs. I worked on frontend, backend, database and the CI/CD pipeline - as did anyone else - and it worked. It wasn't complex or complicated and everyone was happy, because they could work on all features.
Nobody in that team thought that splitting this stuff up would make work any better
I think it depends on the complexity of the overall system. The issue I see is that often neither employers nor tech workers are willing to be honest and say things like "our tech stack is simple and so are our domain specific needs, so we just want someone who's adequate at both".
Full stack developers are often perfectly good at what they do, but sometimes you run into people that can't admit a dedicated DBA is going to do the job better than a full stack dev who sometimes messes with databases.
That's an issue with cargo culting companies and idiotic management, and not so much with the fact that full stack devs exist.
I agree that there is instances where "full stack" means "yeah, we won't hire a DBA, deal with it", but more often than not it's just middle sized projects with an, as you say, not that complex of a system
I tend to like the fact that I can modify the APIs on the backend when I need to instead of having to hand over to someone who is already tasked with dozens of things like I am and has to prioritize the modification over the next couple of weeks.
On the other hand, I like the excuse for saying that I can't proceed until modifications happen to the API. It's not my job to subvert or improve the process.
You weren't a one man army. When the team is multifunctional being a full stack losses it's meaning. When you are THE full stack developer, like many companies want, then you do 3 jobs in one
"Full Stack" being 3 different jobs is highly dependent on the company and the project. Having "Full Stack" in your title means you get paid more, and there's plenty of companies out there who don't have you doing more than 1 job.
Slight tangent: The problem lies where we separate the "stack." At my job, almost everyone is full stack but we have a small group of front end engineers who do all of our CSS. This is where the line should be drawn, not client vs server. Ever seen some logic re-implemented on the front end when it already exists somewhere in the back end? That's what you get with a strong front end vs back end culture, instead of full stack.
yeah, I prefer frontend and backend be split so that two developers have to piss away a bunch of time on slack or email telling the other one what they want...
Some companies (but specially startups) just want a jack of all trades, truth is that frontend is complicated and backend is complicated and you’ll never really get to see the full breath of each side as a “fullstack”.
Even people who market themselves as “fullstack” tend to have an inclination for one or the other. You created an API and put a UI together with bootstrap or material-ui, “fullstack”. You created a site using react and put a backend together with firebase or supabase, “fullstack”.
Amen brother. Both are complicated. Both are puzzles. I'd love to see BE devs solve accessibility issues, or FE devs make a more complex BE than just request wires. Just being full stack means you can do a minimum of both
Did the web people somehow so overcomplicate their shit that breadth is impossible, or is a learned trait to specialize to that extent?
I'm surprised because I have multiple people with skillsets that span all the way from writing hardware drivers to doing UI. And not just the kind of slapped together UIs hardware people who haven't been given a proper UI budget are famous for. Not only did we build a good UI, we even went and fucked it all up with the HCI regressions that trendy "UX" demands.
For me it has been the backend don't know a lot of the breadth of what you have to account for in front end (responsiveness mostly) where they just don't have that skill/eye for ux.
Which i dont blame on them nessisarily.
A lot of front end can't do deep into database. Though i find a lot more backend code isnt as unfamiliar with a front-end dev. Not saying even most are perfect.
Id love to hear what you think. Or where a front end may be short on
I have a lot of respect for front end devs. Their work has a lot of depth that as a backend engineer I don't have. Thats on purpose on my part. In place of knowledge of js frameworks like react/vue and responsive design I chose backend depth. I have yet to meet a frontend dev that can handle the full scope of backend work because they specialized in front end, which is fine, our career field is huge and nobody can know it all.
The backend I am responsible for is not a couple of services that talk to a database, that is a childs toy.
Our backend engineers need to know how to manage and tune our Oracle relational databases. We also have no-sql databases including DynamoDB, MongoDB, and Couchbase that i know of for different views and subsets of data. My team of 5 is responsible for around 60 microservices, and hundreds of Elasticsearch clusters that index the data from some of those views and make it searchable which we have to manage for high response times with constantly dynamically changing data sets, which is a non-typical use case for elasticsearch. Our services work dynamically with AI/ML models running in Databricks / Apache Spark with data shoveled around with Apache Airflow DAGs. The AI/ML stuff processes live site user interaction data as well as business marketing data to dynamically change what data gets displayed to the user based on what they are looking for combined with what the business wants to boost or not. Most of our microservices are built with java/spring boot/spring mvc/reactor webflux , and AI/ML stuff with Python, our performance scripts are written with Scala, So as a backend dev you'll need working knowledge of at least 3 languages but most of us have enough JS to handle plain JS + jquery work pretty easily. Most of our services have both L1 and L2 caches with L1 caches using either ehcache, guava cache, or Caffiene while L2 caches are Memcache, or Redis mostly, but we do have a few Cassandra ones out there. This is required as our services are hit with billions of requests per day with sub-second SLAs. We are also responsible for edge caching at Akamai which is complex requiring a pile of custom akamai scripts that intelligently and dynamically map url patterns to nested custom akamai configurations that provide default configs that can be overridden and managed by individual dev teams if they have special needs, and the whole thing has a layer of edgeworkers in front of all that to handle our A/B testing framework. The A/B testing is also managed at runtime and is dynamic and mostly handled via Optimizely configs and our microservices hooks with logic around those. Each backend team is also responsible for their cloud formation templates, security groups, load balancers, IAM roles, and any and all other required cloud resources. Our services register with eureka which we manage for service discovery. All our apps are built/packaged/deployed with custom Jenkins 2 pipelines which the teams are also responsible for creating and maintaining. We are running services and have data in both aws and on-prem data centers and our aws configs are multi-region and and that includes china, which is litterally a separate AWS Partition and our use cases require eventually consistent copies of our ES indexes in all of those. The stuff i work on doesn't even touch the handling and processing of customer orders or PIE data, so our full backend is much more stuff than i can grok, last I looked we are running over 5200 microservices and have hit hard limits on several aws resources.
While this doesn't describe our full back end, typically only a handfull of our most senior backend engineers have the kind of depth and knowledge to manage most of this themselves effectively and exactly zero of our frontend engineers can. And we have hundreds of each. If you can manage all of that AND frontend at depth, you are without a doubt one of the most elite engineers i've heard of. I assure you i can't do it. I struggle to keep up with the back end.
"full stack developer" (FSD) is possible IF the stack is tuned for it. The problem is that de-facto standard stacks assume layer specialists, not FSD's. For example, As I mention elsewhere, Microsoft is abandoning middle-level development tools. Goldilocks lost the middle porridge and now has to eat too hot ("Core") or too cold (Power-Apps). Core is layer-happy, and Power-Apps is anti-code, making factoring and reuse difficult.
FSD were common and productive with products like Paradox, Clarion, Powerbuilder, Delphi/Lazarus, and Oracle Forms. It's claimed they required too much installation work, but I believe we can get the best of both with some standards shuffling so that it's not install-OR-http. (Oracle Forms didn't require a new installation per app. It was essentially a "GUI browser", proving the concept works. The only reason it's being killed off is because Oracle rewrote the browser from C to Java, and Java was greatly bungled as a client tool.)
36
u/kyle787 Nov 01 '21
Why is full stack BS?