andreyka26_se
1.12K subscribers
1.1K photos
142 videos
7 files
614 links
Hey, I'm software engineer at Microsoft, with 8+ 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
andreyka26_se
https://paperdraw.dev/ Try this! This is system design diagram tool that can show you the traffic, and prove that it will handle certain rps. It is paid after 3 simulations, so I gonna vibe code it. It will be a good thing for Messenger article + I willโ€ฆ
This thing sucks. It completely misses the whole set of realtime communication components: socket servers/socket connections, propagating update to socket connections, etc.

Let me think about it, maybe I can vibe code it as well.
๐Ÿ”ฅ7
Moving this one from the comments so that more people see. I mean it generally makes sense, but I never approached vibe coding so serious, as I'm too lazy to put effort on the thing that I won't own mentally, I don't feel like it is mine and I don't have this desire to do it high quality:

Defining of MD spec files can be done through generating by Chat GPT / Claude Code / Copilot, etc.
1) Define CLAUDE.MD as PRS (Product Requirement Specification)
- PRS: Context, High Level Core Features, Project structure, Project Architecture, Tech Stack, Backend, Frontend, Infrastructure, etc.
- Out of scope: user-stories and tasks.
2) Define a user-story (WHO + WHY + WHAT, change not often) like Plan stage
- Business section like FRs: Context, Expected capabilities/outcome, Acceptance criteria, etc.
- Constraints section like NFRs (Technical, but without low-level details e.g. NO classes/functions/methods): Architecture, API, Data model, Performance, Security, etc.
3) Define tasks (HOW, may change) based on the user-story like Execute stage
- Low-level steps
- Must have testing tasks (Unit - required; Integration, E2E - optional) for verifying itself
4) Ask to implement the tasks of the user-story
๐Ÿ‘4
https://tools.andreyka26.com/system-design
one evening, zero lines of code written or reviewed even, it is first shot, so not even beta, it is shita rather, but incrementally I will make it work properly.
Paperdraw - suck my balls๐Ÿ˜†๐Ÿ˜†๐Ÿ˜†
๐Ÿ˜12๐Ÿ”ฅ4
To think about. Love the analysis from Vlad
โค2
ะะžะ’ะžะ• ะ’ะ˜ะ”ะ•ะž

https://www.youtube.com/watch?v=PMQ_3okmMaY
๐Ÿ‘7๐Ÿ˜2๐Ÿคฎ2
Daily (236/373 streak until LC cap)

Today is typical solid DP problem that you might be asked during real interview: definitely advise to solve.

https://leetcode.com/problems/maximum-amount-of-money-robot-can-earn/description/?envType=daily-question&envId=2026-04-02

#daily #medium #pattern
๐Ÿ‘4โค2
Leant bisect left/right operations in python, never used them before.

For those who need to remind themselves or learn from scratch as I did.

yes these are screens from gpt, but it is third attempt to explain it with simple visual examples (I told him I'm dumb, it helped xD)
โค4
Daily (237/373 streak until LC cap)

Pretty hard and cumbersome problem, tbh it feels pretty large to reason about and effort consuming to reason about, but definitely not bullshit problem either. Up to you whether to solve it or not

https://leetcode.com/problems/maximum-walls-destroyed-by-robots/description/?envType=daily-question&envId=2026-04-03

#daily #hard
๐Ÿ‘2
IMPRESSIVE. Claude pushed me back instead of hallucinating / bullshiting. Eventually they did it, I'm surprised in a good way.

Wondering how they did it, typically some months ago even explicit instructions to push back instead of bullshiting with temperature = 0 would still result in hallucinating rather than getting pushed back
โค4
Now legit I'm getting really annoyed and tired by this daily nonsense shit.

I started interviewing in Snowflake lately, and I see what people are getting asked. OMG for couple of times I was shadowing the interviewer for some senior positions. I cannot even explain how easy the questions they ask seem to me now after seeing this nonsense crazy bullshit daily leetcode problems.

I really don't know why other people are solving it consistently, and are there a lot of such people who don't miss single streak like me?

Leetcode really DOES have good problems, but they are all in lists, so usually they are top 500 first problems. 90% of daily - is ugly nonsense that no one would ask ever, and if so - fuck such company

===

Once I'm getting cap (4 months left) - I will be solving only exciting, interesting, applicable problems with measurable complexity (that you are able to solve in 1 hour, NOT FUCKING 1 HOUR TO ONLY UNDERSTAND THE SOLUTION)
๐Ÿ”ฅ9
BUT NOT PRESENCE INDICATOR IN TEAMS ๐Ÿ˜Ž๐Ÿšฆ๐Ÿšฆ๐Ÿšฆ๐Ÿšฆ๐Ÿšฆ
๐Ÿ˜6
Daily (238/373 streak until LC cap)

Today is not bad problem. First of all it is some real concept from computer science (I didn't know before). Second of all it is not that hard to be honest.

https://leetcode.com/problems/decode-the-slanted-ciphertext/description/?envType=daily-question&envId=2026-04-04

#daily #medium
๐Ÿ‘3
So, it is the time. Do you want to try yourself for System Design? You remember I said I don't know the good real prod solution for Messenger System Design?

It is time to shine and give your ideas, while I'm prepping the article, so that I can consider all the possible ideas and challenge them whether they are scalable or no.
๐Ÿ‘7
So, VERY SIMPLE SCENARIO:
- we have chats, and users per chat
- only users that have currently opened chat are depicted, we don't care about chat list updates
- we don't care about encryption, let's assume we send plain data, as TG does btw for nonsecret chats
โค2
In the system design diagram there are:
- 3 chats,
- every chat has 4 users.
- GW -> socket gateway server that handles client's socket.
- Chat API is separate for simplicity to not cover processing of the messages on the GW itself

You can see that if we have much larger participants count than number of GW nodes we end up every GW node handle ALL large chats, thus causing broadcast.

===

This is one of the canonical solution that I saw on the internet for Messenger: you connect user to random GW and this GW gets (somehow) the message to deliver to the users that are connected to it. The solution is actually the way it works in Telegram and other Messengers, you have only single socket connection, it does not change when you switch chat.

First screen: 2 GW, 4 users per large chat => 4 / 2 = 2 users on EACH GW for EACH large chat
Second screen: we scaled GW nodes by 2 = 4 GW nodes -> and it didn't fix the broadcast, thus non linearly scalable
๐Ÿ”ฅ5
andreyka26_se
In the system design diagram there are: - 3 chats, - every chat has 4 users. - GW -> socket gateway server that handles client's socket. - Chat API is separate for simplicity to not cover processing of the messages on the GW itself You can see that ifโ€ฆ
chat.excalidraw
165.4 KB
Please let me know about your ideas, as today-tomorrow I plan to finish the article, so that you can test your idea as well, as I gonna write bunch of simulations, calculations, POC etc.

In case someone would want to play with diagrams, attaching excalidraw for the diagrams
๐Ÿ”ฅ3