I wanna know about the career progression and day to day work of a distributed systems engineer.
How do I get into it? Where do I start? What's the day to day work like?
Do you think the field of electrical engineering is mistaken about its own name? As far as I know it is not common practice for people working in this field to be licensed and bonded, yet I have not heard another name for it.
Coding isn’t engineering. Neither is playing with electronics even if you manage to get a product to market. In some countries you’ll go to jail for impersonating an engineer. Used to be like that in the US but of course, that changed and now quite literally everybody is an engineer if you squint now.
That job is actually for an electronics engineer, as it would be known where I live.
Electrical engineering is more specifically about aspects related to electrical power and often involves lethal voltages and potential to kill both workers and members of the public due to failure of engineering (directly).
Not sure of the licensing arrangements there exactly, but I do know there is statutory issues around following codes/standards as an EE in all developed contries I know of, designing electronics running at 5V, not so much.
It is common for EE to work in other fields such electronics, communications, computers and so on, other way around is not common at all.
IMO if you're working on any non-trivial backend project, then you're already a "distributed systems engineer". Distributed systems problems are everywhere in the software world if you need to manage state and consistency across more than a single machine.
If you're asking how to work on interesting distributed systems, then I'd recommend trying to work at a tech company that is either large in and of itself (i.e. FAANG), or one that makes it's money solving distributed systems problems for others (i.e. Hashicorp, Snowflake, ...).
Either way, you can get a lot of value reading famous distributed systems papers, and building your own software projects that replicate the building blocks of these systems. For example: DNS, Gossip Failure Detector, Consensus (e.g. Raft), SQL Database, etc...
This seems like a pretty generic question, so I assume you're looking at it from a new grad standpoint. Distributed Systems is more of a technical/resource specialty. You will be optimizing data across multiple systems. You'll want to measure it, improve overall performance/size/cost through algorithm and heuristic optimizations. It can be a terminal career state, meaning that plenty of people have a great career ending with the title: Distributed Systems Engineer. The progression within this career is similar to other Software Engineering roles. You are taking on larger projects, more team coordination, more business critical or technical complex problems.
15 comments
[ 4.8 ms ] story [ 46.0 ms ] threadhttps://jobs.apple.com/en-us/details/200343080/electrical-en...
[1] although really, that's just me being credentialist: doing engineering is enough to justify calling oneself an engineer.
Electrical engineering is more specifically about aspects related to electrical power and often involves lethal voltages and potential to kill both workers and members of the public due to failure of engineering (directly).
Not sure of the licensing arrangements there exactly, but I do know there is statutory issues around following codes/standards as an EE in all developed contries I know of, designing electronics running at 5V, not so much.
It is common for EE to work in other fields such electronics, communications, computers and so on, other way around is not common at all.
If you're asking how to work on interesting distributed systems, then I'd recommend trying to work at a tech company that is either large in and of itself (i.e. FAANG), or one that makes it's money solving distributed systems problems for others (i.e. Hashicorp, Snowflake, ...).
Either way, you can get a lot of value reading famous distributed systems papers, and building your own software projects that replicate the building blocks of these systems. For example: DNS, Gossip Failure Detector, Consensus (e.g. Raft), SQL Database, etc...
To climb on the shoulders of giants you can dive into the work of (incomplete list, irrelevant order but these have been eye openers to me) :
- Leslie Lamport
- Maurice Herlihy
- Eli Gafni
- Rachid Guerraoui
- Michel Raynal
- Petr Kuznetsov
- Hagit Attiya
- Sergio Rajsbaum
- Nancy Lynch
It's a great survey of the basic principles and I've already found it useful in some projects I've been working on.