Live data from Hacker News

Ask HN: Is it worth getting into distributed systems after 12 years full stack?

news.ycombinator.com

41–50 of 69 posts

Re: Ask HN: Is it worth getting into distributed systems after 12 years full stack?

#41

Earlier quoted context omitted.

> Interesting. Some time ago I had the ongoing debate with a colleague on what it meant to be full stack. Yeah, that's what makes this term a poor one IMO. It's not at all clear what it means. I've always taken it to mean "not merely Javascript."

I think most people think of a fullstack developer as someone who is experienced in everything from backend all the way up to frontend design. Fullstack developer = someone who can do all parts of a project on their own if they wanted to.

What does "backend" mean? Just the application layer? If you're writing a Tomcat application, do you have to know how to debug Tomcat itself and submit patches for issues? Do you need to know how to write a Java compiler or an OS kernel? Do you need to know how to design microprocessors? What about how to fab them?

Calling the top two layers of a very deep stack "full stack" is a bit strange.

Re: Ask HN: Is it worth getting into distributed systems after 12 years full stack?

#42
> Would it help with better career opportunities?

It depends on the demand.

How many senior web devs are there? How many senior web dev positions are there?

Guestimate: 278057 senior developers and 23050 open positions [1].

How many distributed systems people are there? How many DS positions are there?

Guestimate: 1355 distributed systems people [1] and 219 open positions [2].

In other words: try to find some data that give some intuition. Sure, the 'research' (if you want to call it that, lol) is really biased but it probably is better data than your own intuition if you have no clue about it.

------- addressing some other stuff you said -------

Why do a masters in it? Do you want to research it as well? Writing a thesis is the obligatory part of it. At the Vrije Universiteit Amsterdam there is a masters in it that is spearheaded by Andrew Tanenbaum. But when you look at the courses, you see that many courses aren't about the theoretical part of distributed systems (see [3]).

To get your feet wet I'd recommend to fully follow distributed systems from Maarten van Steen. Why? First of all, his book [5] is being recommended by other people (see [6]). He also has lecture videos on it (from 2012, but since it's from a theoretical perspective they are still relevant). Edit: he deleted his videos, but I found one source here [4]. Oh yea, and he offers it all for free (which is also why I'm comfortable posting the new URL of the DS videos).

These are my 2 cents. Goodluck!

My personal opinion, don't pursue a masters. Just scan study guides of universities and figure out a curriculum, work less as a web deveoper but keep doing it (i.e. 4 or even 3 days per week) and study it independently.

[1] I searched it via LinkedIn by typing "senior web developer" and "web developer" and "distributed systems"

[2] I typed in "distributed systems" as job title on indeed.com. LinkedIn gave nonsensical results since everyone's course Distributed Systems was counted and almost no one had a title in it.

[3] https://www.vu.nl/en/study-guide/2018-2019/master/m-r/parall...

[4] https://u.cs.biu.ac.il/~ariel/download/ds590/videos/

[5] https://www.distributed-systems.net/index.php/books/distribu...

[6] https://teachyourselfcs.com/

Re: Ask HN: Is it worth getting into distributed systems after 12 years full stack?

#43

Are you specifically targeting better career opportunities? Now is as good a time as ever to be a seasoned Full Stack engineer. Pursuing an MS and shifting specialties seems very expensive. Despite all the support other commenters are giving, I believe you should be very hesitant about making such a career shift.

Fwiw, my experience has been that many of the job openings spurring the growth in advertising for Full Stack engineers are actually glorified Front End roles, with very little work at the interface or on the back end.

I suspect that, due to bias against Front End developers (and javascript :) ), hiring managers are have trouble justifying senior front end developer positions and so are resorting to overqualifying the position and unicorn-seeking.

There's also a bias in technical interview questions, since conventional algorithmic/puzzle questions hold less relevance on the front end, so qualifying experienced engineers without asking back-end appropriate questions poses difficulties. Which means that, despite a role being a Front End position, Full Stack candidates end up looking like a better fit, since they do better in the interviews.

Re: Ask HN: Is it worth getting into distributed systems after 12 years full stack?

#44
post #26

Don't you need to know some of Distributed Systems to consider yourself Full Stack engineer?

I think it depends on the scale of apps you build for. One can deploy a simple backend API or web app to a PaaS like Heroku or Zeit, or even a PaaS-like environment managed by another team, without knowing much about distributed. I would consider someone that can do that + build a modern front end as full stack. IMO the average CRUD web app doesn't have the scale to have distributed systems problems. Also there are m…

Yeah. And the scales have to get pretty crazy before "rails on postgres with some in-memory caching" stops cutting it. Your average developer will never see it.

Re: Ask HN: Is it worth getting into distributed systems after 12 years full stack?

#45

I don't believe Full Stack is a real thing. I also believe you have probably been doing distributed systems even if you think you haven't.

Well thats because you are not a full stack engineer. If you were you would understand. Its pretty simple. You have backend , you have front end , you have database. Full stack enginner has experience and implements features across all these technologies. A bit of dev ops environment knowledge is probably also good because you have to worry about the connection between all these environments in order for you to do yo…

> Full stack enginner has experience and implements features across all these technologies.

I guess most of the 90s and early 00s web devs were full stack then, including setting up the servers ("dev ops" I guess).

Re: Ask HN: Is it worth getting into distributed systems after 12 years full stack?

#47

Earlier quoted context omitted.

Not everything in the world needs to be decentralized, despite what your local snake oil ICO salesman might tell you. However, there are more than enough significant institutions and processes that can and will function better with a little bit of distribution, decentralization, federation, etc properly baked in at key friction points. Building that future is a worthy and potentially lucrative cause. I know I'm speak…

I always thought distributed systems weren’t necessarily decentralized systems. Is my understanding of the terminology wrong? For example a system that uses distributed algorithms for performance improvements, or a system that is distributed by design and necessity to retain the benefits of redundancy, could be considered both centralized and distributed.

Nope. Your understanding is spot on. Mine is the one that's flawed :P.

Re: Ask HN: Is it worth getting into distributed systems after 12 years full stack?

#48
post #5

Earlier quoted context omitted.

Not everything in the world needs to be decentralized, despite what your local snake oil ICO salesman might tell you. However, there are more than enough significant institutions and processes that can and will function better with a little bit of distribution, decentralization, federation, etc properly baked in at key friction points. Building that future is a worthy and potentially lucrative cause. I know I'm speak…

Thanks. However I am not much into Crypto and Blockchain, just distributed systems (not necessarily decentralised).

Completely understood!

Re: Ask HN: Is it worth getting into distributed systems after 12 years full stack?

#49
post #46

Here is starter kit for you: https://github.com/theanalyst/awesome-distributed-systems Read, understand, repeat.

Ah and regarding career: Do Masters' degree if you want guided learning and/or target an academic career.

But if you are self learner and want industry job with hands-on distributed systems, I would recommend exposing any back-end/dev-ops/networking experience in your résumé. Also obtain AWS and GCP certificates, they will require you to learn about both theoretical and practical aspects of distributed systems.

Seek companies working on large scale distributed software, you may start as full-stack or back-end engineer and then get closer to interesting projects.

Re: Ask HN: Is it worth getting into distributed systems after 12 years full stack?

#50
Short answer: Yes, but it depends.

Yes: I believe everyone would benefit from leaving their comfort zone and venture into more DS to expose themselves to some non-trivial work. Don't get me wrong, there are plenty of challenges on writing a working CRUD system from the bottom up but facing scalability, consistency and fault tolerance issues is a different word, and most software developers don't give a damn about performance. That's usually what happens at startups or small companies(I've been there several times). A small and focused team builds a working product, and suddenly they need to bring more experienced engineers to help then scale it once the cooking recipes from the internet aren't serving them well or because the leadership won't let the team engage these challenges. So my first advice goes here if your company has such problems try to expose yourself to them.

Practice and theory should walk side-by-side, you can read the entire library on distributed systems but still be mediocre when facing real problems because you've never encountered those problems in practice. Use the books and papers to give you a direction to where you should point and do your homework. Consistently paced challenges and exercises gives you volume(consistency) and helps you build experience. Build your glossary of concepts, nail your difficulties and once you understand the basics, go read and implement CRDTs in Rust by yourself :) - I'd also suggest you to try following a book on your own pace first before committing to any formal education. Try to find a mentor within your friends who can give you more advice's and peer review your work.

Now the sad part: Unfortunately when shifting expertise even within the same career, you give up on several years of your experience. You will look less appealing to recruiters and companies because you just turned yourself into a JR. Distributed systems engineer w/o previous experience, and those are pretty hard to find out there. If you can live with that(both checking our ego and financially) and be humble enough to accept your new position - I'd recommend you to embrace it.

Post reply on HN