Is the full-stack developer going away with the rise of the super Paas?


Outline:

  • Websites are continuing to be commoditized.
  • Often they stop being commoditized when the underlying tech can do a lot more for what we care about (switch to react, get an easier to build website)
  • I list the tech trends for the last 10 years that have made us switch tech and kept us employed
  • Or if the requirements change (eg adding mobile)
  • I list the requirements that have changed in the last 10 years
  • In the last 5 years the growth&change has slowed
  • The tech that might change the future but hasn’t. Could still:
    • AR/VR
    • Optane
    • consumers having different tech like depth cameras on their laptops
  • The tech that is definitely becoming dominant:
    • CDNs are good now. Maybe they can even run our apps.
    • Better JS websites that achieve maximum accessibility & speed.
  • The current tech stack is JAMStack, all the way.
  • What “Serverless fullstack” is
  • Serverless fullstack is just PaaS. But even more integrated.
  • What to do as a fullstack dev?
    • Rebalance towards frontend. You still have to know how auth works as a frontend dev.
    • Look for opportunities at cutting edge places that don’t fit in the current mold.
    • Work for the Empire at amazon a a backend.
    • Work at startups building the first iteration of products. Maybe go broader
  • This is continously happening in tech, and is what you have to do as a fullstack.

Is the full-stack developer going away? I mean this seriously.

SPAs are now being extra-refined into JAMstack, which is bascially “Javascript plus Cloud”.

I looked at Begin’s list of things you don’t need to do if you use their service, and it was was stuff I knew:

  • setting up subnets
  • deploying certificates
  • writing pod configs

I wasn’t sold that much because this seemed to be k8s centric (no one “re-balances pods and configures taint and affinity” until they have a huge system that needs k8s)

As web sites become more and more similar on the backend and we develop best practices, (they standardize), their backend become deployed aaS “as a Service”. Heroku was the first example of this, where everyone was using Rails, and Heroku could optimize Rails deployment for people.

Lots of people are working on being Heroku for “Jamstack”.

This is a common pattern in tech. We create new stuff, there’s lots of config options everywhere, it’s complicated. Then over time we figure out best practices, we start narrowing and refining what our tech does best, we integrate it into one application. Until someone else comes along and shows how our “best-practice framework” isn’t all that good, because it’s missing X, Y, and Z that are important to us. Old tool tries to add X and Y, but can’t add Z because it’s mental model doesn’t know about W, which is the foundation of our new paradigm. So we start caring about new things. Things we have started caring about: Apache -> nginx by not spinning a new process for every request Rails made it easy to make a web app, hugely by having an ORM and conventions on top of it. At the same time, Rails proved you can write web backends in any language. There’s a corner of the webapp world that cares about realtime apps, and uses Meteor and Phoenix to do it, but it didn’t pull away and take over Rails. Node lets use have JS on the front and back-end. Bootstrap lets us have

Jquery gave us dom manipulation as a working tool React told us to model UI state as a tree. We do not do UI any other way anymore. Svelte cares more about performance, and true reactivity.

Often, also the computers change.

The addition of mobile was big. HTML5 made things much less bad on the web. We got SSDs at the turn of the 10s. App development got huge, and web got into that with Cordova and React Native. This is still a shaky experiment, but honestly the economics of not hiring a mobile dev, but paying 1 slightly more expensive RN dev are huge. And many apps are fine with RN. JS evolved to be less broken. Internet connections got better and could handle more live content. But honestly, in the last 5 years, I can’t remember any new paradigm shifts in the physical tech we use. CDNs grew up and became “for everybody”, instead of just “for Netflix and big companies”. That’s the main one and the one we’re currently on with JAMstack. I don’t count lambda in that because honestly I think the “Serverless is the future” people have been proven wrong, which is why they pivoted to “Fullstack serverless”. They forgot about all that stuff around the lambda.

Lambda has been a useful tool, but it’s not a category definition. It’s like micro-services. Most of the time you want Services. Sometimes a service can be very small and delivered on its own. Most of the time you want a Monolith, sometimes a a function can be small and delivered/scaled on its own. It’s great of image thumbnail uploaders that have performance and scaling demands that may be different from the whole app.

“Fullstack serverless” is now a keyword people use to position their product, but it really just means full-stack PaaS. I don’t see a difference between using Firebase and AWS ignite or.

Serverless was a great term to mean “you don’t need to care about servers”, which is great for front-end devs. Other possible paradigm changes: One more language change as we switch to WASM. Maybe eventually we write a whole new web dev language that compiles to WASM on the front-end, with web ergonomics as its main feature. We almost wholy changed our backends with Intel optane. They promised huge and undelivered, but I was looking forward to that. It was going to be cool. RAM was going to cost as much as SSD, so people would routinely have a terabyte of ram on their laptops, and we could build huge DBs. Another aspect of it was that it was addressable & persistent, so it removed the need for filesystems, virtual memory management concerns. It woudl have been a cool shakeup. More people are getting touch screens in their computers. But app dev has made that a concern we care about. Better GPUs, cameras, and maybe that AR sensor hardware.

I’m waiting for VR web/app developers to become a thing, and I wish it would because it would be great. AR has the potential to make computers useful as more than information processing tools, and the web’s content delivery mechanism is the best in the world. Sadly, AR/VR is too compute intensive atm to run in JS sandboxes, though webpgu+WASM could change it. But that’s a whole other topic The requirements changed a little. Web sites had to be better: oauth everywhere responsive & accessible web pages better testing, through unit testing frameworks, but also browser sandboxes, and e2e tooling More performance and reactivity. Animations, d3 level graphs. More integration. With email, exposing APIs is normal and common. New apps these days are pretty much always built with the JSON API upfront, to serve a website, a mobile app and an API for external customers. Rails needed API mode, and this is the reason a lot of people moved to go and node. But now Next.js has a folder for API requests.

But honestly, the pace of change has slowed down in the infrastructure department. Usually these articles are the concern-framing “oh no nobody knows how to make a pencil anymore” type. This isn’t that. The current situtation is that backend concerns ahve because easily factorizable and delpoyed as services. You can be a frontend with an AWS ignite account and maybe be done. Much more often than you could have 3 years ago. This pairs in with the huge influx of new developers in the last few years. The bootcamps are working. But it’s hard to be a new developer. Bootcamps seem to be biased frontend? I need to check this assumption. If I was starting in tech, learning frontend and then using a superPaas like AWS would be the way to go. As a midlevel full stack though, I feel bad.

I’m fully reinvesting in rebalancing on frontend tech. CSS Layout has made a huge improvement in the last 5 years, and I need to catch up. React is now stable.

This is a classic (and maybe one of the most cliche) discussions on the internet. X is now standardized and sold as a service, nobody knows how to do X by hand anymore.

Here is where full-stack shines:

Early startups. Maybe your platform doesn’t fit on Vercel. When making flexichat, I started on vercel until I realized I needed a constant websocket connection, which this dressed-up CDN platform doesn’t support.

I got into full stack because it meant I didn’t have to specialize. Honestly I do it because I have ADHD and the range of techs is very stimulating. It is very fun to keep learning, and to try to be good at EVERYTHING. Traditionally a fullstack dev was someone at a company tasked with delploying features end to end. You take a wireframe, and do both the front and backend of it. This is great if the copmany doesn’t have enough work for either a front or a backend dev.

The other sad part is the agglomeration (technically aggregation) of the tech industry. It is eating itself the same way it has eaten everything else. This is the natural state of the tech industry, but it feels even more sad to see your own field get eaten by the giants.

I’m a fan of heroku, and vercel and am ok with netlify etc. But I try to avoid amazon. Ordinarily I’d be fine with I wish there was a DO super Paas.


comments powered by Disqus