andreyka26_se
1.13K subscribers
1.08K photos
142 videos
7 files
607 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
One q, about networks.
If you have private network and you deployed there your app. App is generally sends GET requests to google.com

Assume there is no firewall at google side, as well as no firewall on the machine that forbids external requests.
2
andreyka26_se
Answer is no, let me explain you in the next post.
No worries, I also got caught by that. Just for all my 7 years of exp (not that huge, but still) I never thought about IP of the client in terms of TCP/IP stack, however I knew this info.

That's due to at Snow right now we are doing pretty low stuff related to Networking, I guess this is not my first finding XD
🔥4
andreyka26_se
Answer is no, let me explain you in the next post. No worries, I also got caught by that. Just for all my 7 years of exp (not that huge, but still) I never thought about IP of the client in terms of TCP/IP stack, however I knew this info. That's due to at…
Explanation:

Let's recall TCP/IP stack that is used for HTTP request.
We have 4 layers:
- application layer (HTTP). Only has http related data (text)
- transport layer (TCP / UDP). Adds source/destination ports + other stuff for delivery guarantees.
- internet protocol layer (IP) - IMPORTANT! Source IP, Destination IP + other information.
- physical layer (Ethernet/wifi) - bits.


Critical point here, that IP layer needs BOTH source/destination ips.

Why it works, when you just access google.com from the laptop? it is connected to Wifi or Mobile network, and both of them work as NAT (network address translation).

How it works (wifi has public IP assigned by ISP, provider that gives you an internet basically). When you send request to google.com wifi intercepts your private ip 192.168.X.X and translates to assigned dynamic IP). Google receives your wifi's dynamically assigned IP. The response later is translated back to your private ip on router lvl

#network
👍51
andreyka26_se
Explanation: Let's recall TCP/IP stack that is used for HTTP request. We have 4 layers: - application layer (HTTP). Only has http related data (text) - transport layer (TCP / UDP). Adds source/destination ports + other stuff for delivery guarantees. - internet…
Short answer, without NAT - you cannot receive the response, cause your Source IP in IP packet will have your private address which will be discarded by router completely. Even if not -> then router won't know which private ip in iptable is yours to send the response back
👍3
andreyka26_se
Short answer, without NAT - you cannot receive the response, cause your Source IP in IP packet will have your private address which will be discarded by router completely. Even if not -> then router won't know which private ip in iptable is yours to send the…
At some point I was listening to one presentation, where in case you have multiple servers with deployed apps with public Ips (let's say you pay for public ip in cloud provider) each -> you can save money by putting them to private network.
Then you can use single NAT for external HTTP traffic thus paying only for single public ip on NAT, but not on the servers.

Then I was like: wait a moment, why you need NAT, what is NAT? why can't you just MAKE the requests?? And then I recalled tcp/ip stack, and got the idea by googling it a bit deeper
👍4
I had interview for Production Engineer in Meta half a year ago.
One of the most intriguing and interesting interviews: Troubleshooting.

You are getting some “situation”. E.g. “at 2AM webservice stopped responding. Just timeouts. You are given ssh access and need to find out a root cause, fix, and perform preventive actions.

The interview process is the following:
You are telling an interviewer linux command - he gives you an output from that.

All my life I was deploying to VMs using docker ofc, it was never a raw process.
So my first statement was: “I am running docker ps”

He tells me: “docker is not recognised as a command”
😁14🔥6
tomorrow's daily💀💀💀
I have seen in discussions for yesterday's (which is the same problem but relaxed constraints) segment tree.

You know, I'm simple man, I see segment tree - I go to "solutions" tab
🤯5
Daily (186 day streak)

I'll be honest, segment tree is pretty advanced stuff. I propose instead of this hard - try out simpler problem for segment tree (I also don't know the solution for it)

https://leetcode.com/problems/longest-balanced-subarray-ii/description/?envType=daily-question&envId=2026-02-11

#daily #hard
👍5
Today or tomorrow will post about Segment tree: how to understand it with visualisation. Note: I know one engineer who asked it once on the interview.
🔥12
andreyka26_se
Today or tomorrow will post about Segment tree: how to understand it with visualisation. Note: I know one engineer who asked it once on the interview.
As promised. Segment tree. I have heard some problems were asked about segment tree: one I mentioned already, it was asked by my former colleague at MS, second one I guess was asked at databricks, so it is good to at least have some understanding.

Segment tree is special case of binary tree that stores "ranges" or "aggregated" values, such as sum, min, max. It is needed to answer range queries for mutated source with log(n) complexity

In our sample leetcode problem, ideally simple to learn segment tree we are going to do SUM SEGMENT TREE: https://leetcode.com/problems/range-sum-query-mutable/description/

If the array is not mutated (cannot change element by index) - then it is easy preffix sum problem.
BUT, if you can change the element under index to make prefix sum work you would need to either rebuild prefix sum O(n) or calculate range sum on the fly O(n)

Segment tree on the other hand allows you to do mutation and querying in O(log n)
👍42🔥1
Every single node in segment tree is storing sum of some range/interval (left ... right).

Root in that case stores sum of whole array.
Left child handles left part of a whole array
Right child handles right part of a whole array

Important thing to remember that left node handles n/2 + 1 and right node handles n/2, in case of odd number of elements. If the number of elements is even - both handle equal part of the subrange.

Building the tree.
Pretty easy, resemble BST

Querying.
This part is the most confusing for me. I left the visual representation that shows where queried range (interval{left/right}) is VS where the node's range. It is not so complicated.
If queried range is completely OUTSIDE of what node handles -> skip
If queried range is fully INSIDE of what node handles -> just return node's sum, this sum is partial response that will be merged later
If queried range is intersecting at some point - then we aggregate in children and merge the response
🔥6👍21
Updating.
You might notice that leaves - are individual element of the original array. Update happens by just going down to the leaf, update the value -> then update the parents all the way up, as all the sums are different now
👍62
For leetcode nerds like me. Daily is easy - just bruteforce it, go and collect the coin. I will post later evening, as don’t have access to telegram from laptop
🔥5
Daily (187 day streak)

Don't waste your time probably for finding optimal solution, it is O(n^2), however in my opinion therefore it should be easy, not mid

https://leetcode.com/problems/longest-balanced-substring-i/description/?envType=daily-question&envId=2026-02-12

#daily #medium
👍3
Daily (188 day streak)

IMO, it should be hard, as extremely hard to get with intuition. I wasn't able to solve and was hard to understand the solution tbh

https://leetcode.com/problems/longest-balanced-substring-ii/description/?envType=daily-question&envId=2026-02-13

#daily #medium
👍4