Currently in my final year, trying to apply for backend roles in the industry. I frequently come across this listing from Google for the role of SWE, Backend where they demand experience in either of these domains. I've mostly done full stack work but practiced a bit of system design so my guess is by 'Scalable Applications' they mean exp. with system design including the low-level data structures and algo details. But can someone elaborate on the 'Server Backend Distributed and Parallel Systems' part? What type of work is usually involved in this category in a company like Google (in the context of a google product) and possible roadmap of topics to understand more about this. Thnx!
#Need help understanding the difference between these roles and possible work involved in both.
20 messages · Page 1 of 1 (latest)
I'm not sure there's any engineering work at Google that isn't scalable and distributed
Essentially all web systems of more than very small size are distributed systems. Do you have the possibility of two requests happening simultaneously and both reading from / writing from the same database? That's a core problem of the space
What they mean here is that they want someone who understands that this is a thing that happens and needs to be addressed, versus someone who just writes some code in a single-instance single-thread mindset and assumes it'll work (this is what most university projects are like)
I'll note that this is not a new grad role, and that Google does have new grad roles
Google job ads are kinda fake news
They put them out solely to copy other companies, to not confuse external candidates.
But when you apply for a position it's not like other companies where you apply for a particular job
They do something called team match and it's a complete song and dance.
Essentially, if you want to know what they do, look up what they do for system design interview.
If you want to know the fanciest stuff in distributed systems, read DDIA and papers on Paxos.
However, they don't care about junior engineers having experience in those areas.
Only senior/mid.
Ok yeah I figured by distributed systems they must refer to these concepts. Thing is I am a physics grad (will be soon) looking for software roles. I've done a lot of CUDA and GPU related stuff, and when I heard this 'parallel systems' term I thought there must be some resemblance.
Also just one thing related to the system design, how often do ppl have to code up things from scratch. I've seen a few questions on interview bit, like how would you design a key-value caching system like redis using all the low lvl data structures like linkedlist and hashmaps. Of course if someone wants to use these components like redis or some database to create a scalable app, she/he has to know the internals, but how frequently do ppl working in all these top tech companies demanding experience with scalable systems actually code up from the underlying data structure level?
I see. I dunno about the distributed part, although if I remember correctly I've heard these terms in one of my HPC courses. But I do know a thing or two about exploiting cores using CUDA, running some sort of simulations. Now I know I can't expect the exact same type of role in Google or other companies, but do you think someone from my background could fit in one of the teams there. A few of my friends and profs mentioned it will be useful in teams working on tensorflow etc. (you know just some superficial stuff), but I also need some advice from those actually working in the industry.
And lastly, how should I go around applying for such roles. Like @dull stream mentioned, in google there's the entire team matching and all. So maybe just apply for the general swe, backend posting at google (yes there was a different one for new grads, but it more or less mentioned this same thing) and then see how it works out after initial interviews or some other way?
@reef lantern do you know what positions like these that say one prog lang experience like java, python c#, mean? Will they train you on something later on?