How are you tackling the issue? It’s not like that one can find distributed system projects easily.
How are you tackling the issue? It’s not like that one can find distributed system projects easily.
What I did, was to seek projects outside of work. In my case, I self-studied python, algorithms, and data structures. I started to implement my own projects, inspired by 12 in 12 challenge by Mackenzie Child. Somehow, I was able to get an interview with Google through the Google Foobar challenge, and I am now working at Google as a SWE.
Like what I shared, I haven't read the book yet, but if I was to apply learnings in distributed systems, I would build one using virtual machines or single thread processes with message passing via TCP, UDP, or HTTP, each representing a system for a small scale prototype. After I am comfortable with the concepts and implementation, I’ll probably scale up using one of the cloud service providers (AWS, GCloud, Azure, Digital Ocean, etc).
I work in Data Science so I have Python experience (at least for scripting) but the leap to SWE seems massive, let alone at some FAANG company.
At my previous position I was growing project management skills but felt my engineering skills was stagnating. I decided learning Python on the side. Based on HN recommendation, I started reading the CLRS algorithms book and implemented all data structures and algorithm with Python up until red-black tree. After that, due to time constraints I only implemented select algorithms from the graphs section.
After I had a better foundation on data structures and algorithms, I used leetcode and hacker rank as a test bed for my implementations. It is great, since the submission tests cover correctness, edge cases, memory and time constraints.
During this journey, I somehow triggered Google Foobar challenge with my Python and algorithm searches. This was the turning point—-I had tried to apply to Google before, but even with referrals it went nowhere due to my background not matching what G was looking for. Foobar, if you didn’t know, is a timed online programming challenge similar to leetcode. It consists of 5 levels, and Google will give you a phone interview if you completed level 3. This allowed me to bypass the HR filter!
So I started prepping for the interview in anticipation. I did the usual study routine—-cracking the coding interview and lots of leetcode. I wrote a lot of code on paper, completely filling up 2 notebooks. My goal was to be able to pick a random leetcode problem, handwrite the solution in 20 minutes, and have it pass all submission tests. Eventually I was able to do that for most problems at easy/medium difficulty.
The rest is just going through the interview process. Phone, then on-site, the nervously await the result. And you know the rest.
The whole journey took about 1.5 years, starting from learning python and reading CLRS. I know there’s a lot of dislike for the whiteboard algorithm interview, but in my case it was a way to pivot to SWE despite not having the background and experience, and I am grateful for it.