andreyka26_se
606 subscribers
582 photos
66 videos
6 files
294 links
Hey, I'm software engineer at Microsoft, with 7 years of experience. Here we are talking about F(M)AANG big tech interviews: leetcode, system design and corpo life.

YouTube: @andreyka26_se
Instagram: andreyka26_se
TikTok: @andreyka26__
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🀯3
Yeah, hate it. And in the end, if real primary needs your help during the incident - he can request assistance and you are going to be woken up as well and fix shit
🀯2😁1
Be careful with signing ur contract😁
😁2
mood
😁2
Now, try find the bug/problem in this code that was about to be merged :)
πŸ€”2
andreyka26_se
Now, try find the bug/problem in this code that was about to be merged :)
I will help. For the HandleWriteErrorIfNoReplicasAsync actually we don't need Task there. It is different nit comment 😁😁

Assume this is your setup. This change can be considered as refactoring, I don't see intention of behavior change, but there is very huge behavior change that will break the latter execution of the code
πŸ€”1
andreyka26_se
Now, try find the bug/problem in this code that was about to be merged :)
Okie, So I will bring some explanation.
Here in the code we want to not continue code execution in case clients collection is empty. Because all subsequent code execution relies on this var being not empty.

Code on the left side, checks it and "returns" from the method with "failure" result.
❀3
andreyka26_se
Now, try find the bug/problem in this code that was about to be merged :)
The problem with this change is that await does not propagate return statement from the called method. So in case there is zero clients, it will not return from the method and continue code execution below, and we will get exception cause we assume clients are not empty in subsequent lines.


So to make it work, we either need to check the response from HandleWriteErrorIfNoReplicasAsync, or throw exception there and handle it outside.
❀3
We are doing Repair On Read implementation. This is one of the Replication strategies to guarantee resiliency and reliability of the storages.
The idea is that client is responsible for handling conflicts and propagate the changes. We need only "no data loss" guarantee, which is also a bit relaxed.

Any way. We have meetings weekly, and the most skilled people (except me) were assigned to make it happen: level 67, our one principal/architect, level 65, our principal, 64, our senior and me 62.
Yesterday I had the funniest moment ever, we were all in meeting room, sharing the screen on big meet room screen, and discussing, PRs, next steps, architecture, problems, etc.

At one point conversation somehow moved to "what should be the best/better" naming to some variable that represents bag of timestamps of different events that happened to some object.

Imagine: 2 principals, senior and me discussing variable name for like 15-20 mins. It was epic and high level discussion😁
😁6
this pretty much confirms "the hardest thing in software engineering is naming"
πŸ‘5
aaaaaaaaaaaand first incident that needs my assistance as a backup oncall.
For reference, this is how real fun looks like 8pm UTC
chart of server load 😁
This media is not supported in your browser
VIEW IN TELEGRAM
πŸ‘2
This media is not supported in your browser
VIEW IN TELEGRAM
πŸ”₯2❀1πŸ‘1
Lately we started using release "names" alphabetically to understand what is deployed where, cause as I told, we have bunch of clouds, and full release cycle is usually 1 month, so during this period we might have 2-3 different versions deployed at the same time.

I decided to bring a bit of Lineage Lore to the releases. Do you remember this IMBA game in 2007?
πŸ”₯3πŸ‘1