I'm from a shitty third world African country. Leetcode enabled me travel the world and make more money than I could have ever imagined. Sharing a bit of my story since many people I meet consider it to be inspiring.
I enrolled in university in 2020 in a no name university in my third world country. Could barely attend classes since there's an ongoing civil war and there's lots of school disruptions, and had to basically teach myself everything. Somehow found Reddit and eventually r/csMajors and my world view changed. So you mean to tell me that there are companies out there who hire globally, sponsor visas and pay a lot of money? All I had to do was grind leetcode, build projects and I could get in? Hell yes.
I only found out this in my sophomore year. I somehow got interviews for both Google and Meta, grinded leetcode to pass them and got offers. It's not a big deal for some, but as someone from Africa, it was crazy to get sponsored to travel to London to intern at Meta. I was making >£3000 a month, which was more than my parents life savings.
I'm about to complete my university degree, and have gotten multiple internships and jobs thanks to leetcode. I could never have imagined this. All thanks to dedicating time to doing leetcode, building projects and studying CS.
I'm on mobile and it's hard to type, so can't really write everything I have to say. Just wanted to motivate anyone who's currently in a shitty situation to keep working hard.
Edit: Apologies, the post turned out a bit longer than I thought it would. Summary at the bottom.
Yup, it sounds ridiculous, but I cracked a FAANG+ offer by studying just 30 minutes a day. I’m not talking about one of the top three giants, but a very solid, well-respected company that competes for the same talent, pays incredibly well, and runs a serious interview process. No paid courses, no LeetCode marathons, and no skipping weekends. I studied for exactly 30 minutes every single day. Not more, not less. I set a timer. When it went off, I stopped immediately, even if I was halfway through a problem or in the middle of reading something. That was the whole point. I wanted it to be something I could do no matter how busy or burned out I felt.
For six months, I never missed a day. I alternated between LeetCode and system design. One day I would do a coding problem. The next, I would read about scalable systems, sketch out architectures on paper, or watch a short system design breakdown and try to reconstruct it from memory. I treated both tracks with equal importance. It was tempting to focus only on coding, since that’s what everyone talks about, but I found that being able to speak clearly and confidently about design gave me a huge edge in interviews. Most people either cram system design last minute or avoid it entirely. I didn’t. I made it part of the process from day one.
My LeetCode sessions were slow at first. Most days, I didn’t even finish a full problem. But that didn’t bother me. I wasn’t chasing volume. I just wanted to get better, a little at a time. I made a habit of revisiting problems that confused me, breaking them down, rewriting the solutions from scratch, and thinking about what pattern was hiding underneath. Eventually, those patterns started to feel familiar. I’d see a graph problem and instantly know whether it needed BFS or DFS. I’d recognize dynamic programming problems without panicking. That recognition didn’t come from grinding out 300 problems. It came from sitting with one problem for 30 focused minutes and actually understanding it.
System design was the same. I didn’t binge five-hour YouTube videos. I took small pieces. One day I’d learn about rate limiting. Another day I’d read about consistent hashing. Sometimes I’d sketch out how I’d design a URL shortener, or a chat app, or a distributed cache, and then compare it to a reference design. I wasn’t trying to memorize diagrams. I was training myself to think in systems. By the time interviews came around, I could confidently walk through a design without freezing or falling back on buzzwords.
The 30-minute cap forced me to stop before I got tired or frustrated. It kept the habit sustainable. I didn’t dread it. It became a part of my day, like brushing my teeth. Even when I was busy, even when I was traveling, even when I had no energy left after work, I still did it. Just 30 minutes. Just show up. That mindset carried me further than any spreadsheet or master list of questions ever did.
I failed a few interviews early on. That’s normal. But I kept going, because I wasn’t sprinting. I had built a system that could last. And eventually, it worked. I got the offer, negotiated a great comp package, and honestly felt more confident in myself than I ever had before. Not just because I passed the interviews, but because I had finally found a way to grow that didn’t destroy me in the process.
If you’re feeling overwhelmed by the grind, I hope this gives you a different perspective. You don’t need to be the person doing six-hour sessions and hitting problem number 500. You can take a slow, thoughtful path and still get there. The trick is to be consistent, intentional, and patient. That’s it. That’s the post.
Here is a tl;dr summary:
I studied every single day for 30 minutes. No more, no less. I never missed a single study session.
I would alternate daily between LeetCode and System Design
I took about 6 months to feel ready, which comes out to roughly ~90 hours of studying.
I got an offer from a FAANG adjacent company that tripled my TC
I was able to keep my hobbies, keep my health, my relationships, and still live life
I am still doing the 30 minute study sessions to maintain and grow what I learned. I am now at the state where I am constantly interview ready. I feel confident applying to any company and interviewing tomorrow if needed. It requires such little effort per day.
Please take care of yourself. Don't feel guilted into studying for 10 hours a day like some people do. You don't have to do it.
Resources I used:
LeetCode - NeetCode 150 was my bread and butter. Then company tagged closer to the interviews
System Design - Jordan Has No Life youtube channel, and HelloInterview website
I’m sitting here sipping on a gin and tonic reflecting on the last 5 months and I really couldn’t feel more fulfilled.
I know a lot of ppl hate nowadays on “tech bro’s” who make grinding leetcode their life for the *chance* of cracking FAANG but the offer from Meta came through this afternoon and I literally cried real tears of relief/joy (not really sure what they were).
It's been a really rough 6 months since going through the breakup with my girlfriend of 4 years and I don’t really have anyone to share this with so sharing it here instead.
To make a long story short - my girlfriend and I met in college at a well known school in Illinois, we graduated together, lived together for 4 years, both got entry (low-paying) jobs around Chicago and after 3 years she decided she’d had enough. Citing my lack of ambition and dissimilar life goals to hers, but I suspect it was more like I wasn’t immediately able to provide the lifestyle she wanted which is fair.
It was after she moved out that I started exploring the possibility of leaving Chicago and trying to get a job in one of the big tech hubs, I was targeting Seattle or the Bay Area. I reached out to some of my friends from college, one at Amazon and one at Meta and managed to get referrals and then initial calls at both companies. That’s when I seriously locked in. I couldn’t stand being in this empty apartment that I could no longer afford and really needed one of these 2 to work out.
My job is 3 days a week in the office and on those 2 remote days for the last 6 months (as well as weekends) I basically did nothing other than interview prep. 5+ leetcode questions, scouring these subreddits as well as blind basically every day looking for insight into the interview processes, and watching every mock system design interview I could find on youtube.
My leetcode profile shows 350 questions solved which is nothing compared to some ppl on this sub but I really took the time with each one to understand it deeply and really emphasized the patterns underlying each one so that I could quickly identify the DS/A needed for a given question. Every question I did I was imagining I was sitting in front of an interviewer explaining my thoughts to them and managed to find some ppl in a discord to do mocks with.
For system design I followed a learning roadmap similar to neetcode roadmap but for system design (shout out to the EasyTree at easyclimb.tech/learning) and basically just watched a bunch of system design interviews on youtube. Didn’t really do any mocks but I was interviewing for mid level at both companies so I wasn’t too worried about blowing anyone out of the water. I just needed to make sure there were no gaps and that I didn't say anything stupid and could explain tradeoffs in design decisions.
The phone screen came around at Meta and I was asked basic calculator and one question I had never seen before, I honestly don't even remember the details of it because my heart was racing and my world was spinning due to nervousness (I think it was a take on “number of stickers” but a variation that made it into more like a medium). I managed to come up with the optimal solution for the first and something resembling an optimal solution for the second and got the call back a little over a week later that they wanted to schedule the onsite.
At this point I hadn’t heard back from the Amazon recruiter after their screen so I was full steam ahead ripping through Meta tagged, dialing in behavioral and consuming more system design content.
The onsite came fast. Four rounds. Two coding, one system design, and one behavioral. The first coding round went great (classic graph traversal, thank God). The second was rougher, a tree problem that required a twist at the end, and I barely got there in time. The system design went better than expected. I walked through designing a messaging app with read receipts and offline sync, leaned hard on consistency vs availability tradeoffs, and tried to keep it high level without overengineering anything.
The behavioral was actually the easiest, not because I’m some incredible communicator but because I had actually lived the stories I was telling. I had prepared some solid stories that were all real and relatable I think.
A week later, I got the call. We’re moving forward. Base + bonus + stock around $295k TC. I sat in my car for like 20 minutes after that call just staring at the steering wheel. It didn’t even feel real.
So yeah. My apartment’s still kinda empty/lonely but today I got the Meta offer letter and for the first time in a long time, I feel things are breaking my way.
Throwaway account, but a Googler here with a huge heads-up for anyone prepping:
Google is actively rolling out two brand-new AI Fluency rounds for SWE hiring:
AI Debugging: Dropping you into a massive, messy legacy repo to see if you can actually use AI to locate, diagnose, and patch complex bugs in real time.
AI System Design: Architecting end-to-end systems while actively using AI to evaluate trade-offs, draft interfaces, and pressure-test edge cases.
Pure DSA won't carry loops anymore. They want engineers who know how to ship with AI without hallucinating production down.
Adjust your prep accordingly.
Edit: 2 DSA rounds will still be there, and it’s for all L3-L5 roles.
Include a one sentence summary of your scope of role before your accomplishments.
Quantity of applications matters more than quality. I completed ~250.
Buy LinkedIn premium and proactively contact recruiters. If they are in your area buy them a coffee. My interviews for Block, and Gusto were a direct result of this.
Prep
DSA
System Design
Behavioral
DSA:
Grokking coding interview patterns.
Recently asked LeetCode prep. Try to answer questions asked by targets in 90 days. Not always possible. Do your best.
USE YOUR RE-ROLL. If you’re in a coding screen and you get a problem you know you can’t solve tell the interviewer that you solved it recently. You’ll probably get another.
System Design
Designing Data Intensive Systems
The Google SRE Book for Senior+
Microservice patterns
System Design insiders guide Vol 2. Vol 1 is not relevant for Senior+.
Hello Interview for practice
If you are below Senior and not cloud architect certified this is probably the best practice you can get.
Skim ALL of the docs for one relational database, one KV database, Elastic search, Redis (it’s so versatile), one message queue like Rabbit, NATS, or Kafka
Behavioral:
Write a one page narrative for every major project that may come up in STAR format. Recall as much detail as possible. Include a brief description of your team and how it fits into business at the top. Don’t memorize. Just priming your working memory.
General:
Take care of yourself. Eat well. Go do fun stuff with friends and family. Try not to take rejection personally.
Hope this is in some way helpful. Happy to double click on any of these bullet points if someone wants more info.
I've been with my gf since mid Oct. You can clearly see a correlation in the LC submission chart, that I totally lost my consistency streak. I need to increase my TC, should I dump my gf and refocus? Please, advise brothers.
Money was nice but it's all just way too fucking stressful. I work to live, not live to work.
I worked at Amazon (1.5 years), Meta (2 years) and Google (1 year) for the FAANGs. Every single one was toxic as fuck and required me to work 60+ hours per week. Google was the better one, but I was still pulling all nighters and very stressed.
I switched teams multiple times, but they were all very stressful and toxic. Coworkers looking to backstab you everywhere you go and VERY tight deadlines set by managers who are breathing down your neck and watching your every move.
I was constantly thinking about work 24/7, even on weekends and "vacations".
The 2 startups were even more stressful. I think I was working almost 80 hours a week at one of them. That's what led me to complete burnout and I ended up taking 3 months completely off after I quit.
Overall, I ended up losing relationships, damaging my family, and gaining lots of weight. My mental and physical health were extremely poor.
After quitting the last startup, taking a 3 month break, I started to look into more stable industries with good work life balance. I saw the usual answers (banking, insurance, medicine, finance).. basically non-tech companies.
I spent only 1 month applying to these types of companies, and managed to get a job at a big bank in my country. The interviews for these types of companies were mostly behavioural, no LeetCode at all.
I have been at the bank now for 1 year.. and wow. I work ~30 hours a week, very stress free and my coworkers have become my good friends. I started working out again, found an amazing girlfriend and have mostly repaired my other relationships. I am now at a healthy weight and wake up feeling happy and grateful every single day.
I took a big TC hit, it went down by about 40%. This was pretty much the only downside.
I realized that this hamster wheel of grinding LeetCode -> Joining prestigious, high paying companies -> burning out -> repeat, is just not worth it for me.
I should have switched earlier honestly. I still recommend everyone try to join a FAANG to get the name on your resume as it will help, but you really need to ask yourself if it is worth staying. For some it is, for me it was not.
I recently made a post about how I received 5 mid-level SWE offers to Box, Snap, Plaid, Stripe, and an AI startup with TC ranging from $220k-$330k with an average of $265k. (I've since deleted the post because I don't want to get doxxed because of it.)
I wanted to share my experience, background, and interview prep process, and answer any questions. It depresses and angers me that the market is so bad right now that people are switching careers that they worked hard for, involuntarily going back to school, or even leaving the country. I really hope it gets better and want to do everything I can to help, hence the post.
Feel free to skip the reading and AMA!
——
Background
I am American, graduated from a top-10 school in the US in computer science, did internships throughout college, and have 1.5 YOE doing full-stack work at a FAANGMULA. I left over a year ago to move abroad which had been my dream. I recently came back to the states for personal reasons and started looking for new roles after being out of the job market for 1.5 years. I prepped for 3.5 months (March-June) and actively applied and interviewed for roles for 2 months after that (Aug-Sep), so 5.5 months total. I am lucky in that I had no bills to pay and was in no rush.
Interview prep - DSA
I completed 2 Udemy courses to refresh on data structures and algorithms (DSA). Got them on sale for like $15 each:
I recommend them both because the first is a more traditional DSA course and the second is tailored to the context of the job search and also goes over LC paradigms. You can skip over a lot of the content in the 2nd because it's repeated so it really only took like 2 days to complete. In total, it took me about 3 weeks to complete both courses, but this could be made into 1 if you watch more frequently than I did or take less notes.
Interview prep - Leetcode
After I finished the DSA courses, I solved 281 Leetcode problems (70 easy, 172 medium, and 29 hard) mainly concentrated over the course of 3 months as you can see above. I started with the Blind 75, but that alone was not nearly enough for me to feel prepped (I'm out of practice. Might be different for you.) After that, I would randomly select problems from different areas, and do contests and dailies.
I didn't feel 100% prepped in the end. I still felt that there was only a 70% chance I could solve a random medium problem in 20 minutes, but I didn't want to delay applying any longer. Try to compute the actual opportunity cost of doing more prep and securing better offers vs applying now.
Besides getting you an offer, interview prep is important because it helps determine the compensation and leveling you get. You can increase your offer by $30k (junior) - 100k+ (senior/staff) just by doing better on the interviews which I experienced first-hand.
Interview Prep - System design
I prepped system design for about 3 weeks during the interview period. (This was dumb, but I was procrastinating. I should've studied it before starting interviews.) I read and took notes on System Design Interview – An Insider's Guide by Alex Xu, I watched/took notes on 3 Hello Interview mock interviews, and I listened to all of the episodes in the System Design podcast while driving/walking. This was not nearly enough prep and my poor system design skills costed me some interviews I believe. (And if you're senior/staff, it's not even close to enough.) Again, this may be different for you if you actively work in distributed systems, but I was starting from 0.
Interview Prep - Behavioral
An engineering manager told me that people often underestimate behavioral interviews but they are just as important as the coding interviews, if not more important. This is where a lot of the leveling information will come from. For mid-level like myself, you want to display that you have taken on tasks with ambiguity, that you have shown initiative and leadership beyond your daily responsibilities, that you know how to collaborate across functions and teams, and that you know how to prioritize and consider various solutions in your work. I didn't encounter more than 10 different behavioral questions (they’re highly reused), so it’s easy to prep all your stories in advance using the STAR method. The questions are available on blogs, Glassdoor, etc. Eg,
-Tell me about a time you had a disagreement with a colleague.
-Tell me about a time you had to quickly switch priorities in a project.
-Tell me about a piece of constructive feedback you've received.
I failed a few interviews because they probed deep into the technical details of my previous projects and I couldn't remember them because of my gap. (Eg, exactly how was content fetched from the backend and did I render it all immediately or page by page.) It is what it is. Next time I will take better notes throughout my project.
Resume
Here is my most recent resume. A family friend of mine is a tech recruiter so I was fortunate enough to get her to look through my old resume and tell me everything that was wrong. Long story short: your most recent role should take up 30-50% of the page! All others should take up less space, with the oldest roles getting the least space. Really go into detail about what you did and owned, what impact you had, and what technologies you worked with. Always quantify if you can. Get rid of college activities/clubs if you've been out of school for more than a year.
Also remember that most of the time, a non-technical person is looking at the resume so even though it seems obvious to you that Android development = Java/Kotlin and React = Javascript/Typescript, it's better to write these things out if you can.
Applications
I applied to about 180 companies (or ~400 applications) over the course of a month. I would say that half of those were done in 1 week and the rest interspersed throughout the month. I highly recommend Simplify.jobs which offers a Google Chrome extension that can automatically fill out job applications for you! This greatly increased the number of jobs I could apply for. I applied for anything and everything in my cities of interest as long as I was qualified, whether or not I was truly interested.
I didn't realize this until it was too late but it's better to A) apply to your least favorite companies first so you can use them as your practice interviews, B) apply to larger companies first because they will have slower interview processes and more flexibility around your interview and start dates, and C) apply to companies in as large of batches as possible so that your offers align.
Most of my applications were career website cold applies, but I had about 10 LinkedIn easy applies, 5 friend referrals, 20 recruiters reach out to me (typically startups), and I reached out to about 25 recruiters on LinkedIn for my favorite companies.
2 of my offers (Stripe and Snap) were from friend referrals, 1 was from the recruiter reaching out to me (startup), and 2 (Box and Plaid) were from cold applies.
Interviews - General
I had but did not pass the initial recruiter phone screen with Hopper, Palantir, Betterment, Meta, Citadel, and Amazon.
I had but did not pass the online assessment for Anthropic.
I had but did not pass the coding interview for OpenAI and a credit card startup.
I had but did not pass the behavioral interview for Quora and a telecom startup.
I had but did not pass the on-sites for Scale AI, DoorDash, and 2 smaller startups in the Bay.
I had but did not pass team match for TikTok (left in eternal team match limbo after passing all rounds).
I made it to the offer stage for 5 companies--Snap, Box, Plaid, Stripe, and an AI startup.
I stopped my interviews early for Apple, Mercury, Uber, and Anduril so I could prioritize the interviews that were more aligned with my interests.
That's all to say, I had a lot more rejections than offers. I'm trying not to compare myself to others or beat myself up for not passing some of these interviews, and you shouldn't either.
Interviews - Coding
I signed NDAs for most of the companies so I don't really feel comfortable sharing the exact interview processes or questions. But the Leetcode came in handy because 50% of the LC problems I received, I had seen and solved before and the other 50% I was able to solve anyway. There were only a couple times I was truly stumped and failed the interview because of coding. Even for the non-LC problems, the LC prep was useful because it taught me to write code and set up data structures quickly in my language of choice (Python).
(Also, even though I don't feel comfortable sharing the problems, many people will, so always look up whether interview questions are posted online for the company you're interviewing for. Many times, they were.)
Nested maps/dicts came up a lot in the less Leetcode-y, more practical interviews where you create a file storage or database for example. Another thing that came up a few times is the ability to make HTTP requests in your language of choice and decode the response. (This would be the requests and json libraries in Python respectively).
Talk, talk, talk throughout the interview. Speak slowly and calmly. Even if I was internally panicked and stumped, I tried to remain cool and positive. If you need a couple of minutes to think in silence, feel free to say so and they're always happy to give it. Before jumping into coding, explain the approach you're going to take and why, as well as other alternatives you considered. Talk through the program as you're coding. When you're done, do a final verbal run-through of the program. Then write and explain your tests. Always test unless otherwise told (print statements should be fine). Consider edge cases.
Interviews - System design
As mentioned, I was woefully underprepared. Didn't really know how to transition from the high-level design to the deep-dive without guidance from my interviewer. In most of my interviews, the interviewer guided the discussion and it was more like a Q&A. This is barely acceptable (and in some cases, was not acceptable) for a mid-level like myself and certainly not for a senior or staff.
Negotiations
You should always negotiate. Take it as a given in your job search. I negotiated all of my offer TCs up about 10% by having competing offers. My main resource was Haseeb Q's 10 Rules for Negotiating a Job Offer. I highly recommend reading and taking notes on both parts 1 and 2. But the biggest takeaways for me were to A) keep your cards a bit closer to your chest. Let your recruiter put out the first number if possible and don't reveal what other offers you have unless it works in your favor. B) Have alternatives! Whether it be other offers, on-sites, grad school, or staying in your current job. This is what actually gives you leverage in negotiations. Competing offers is the strongest leverage, but the others will do too. And C) Be excitable and personable the entire time. The second you show disinterest in the company, you've lost one of your biggest assets as a candidate which is your excitement. It's what makes them believe you have a chance of accepting and will do good work.
Misc
Don't be afraid to spend money in the process if you can afford it. Put it all in context. A $20 book, $60 course, $50 LinkedIn premium, and $130 Leetcode premium subscription doesn't seem like a lot in the end for a $300k job. Even $500-$1000 of mock interviews is well worth it. I wish I did mock interviews.
——
This is super long, but I hope this helped someone and I wish everyone the best in their job search. AMA!
Saw this on twitter today. Author was kicked out of Columbia after cheating in FAANG interviews with his now viral startup InterviewCoder. Don't know if I should celebrate or to be anxious about this. I chose to grind Leetcode because it's the only way I know to get some reassurance and control over my interview. If companies choose to remove Leetcode interviews, I no longer know what to prep for my interviews. I feel like Leetcode brings a chance for coders who are into grinding it out and memorizing solutions, putting in 400-500 problems prior to their interviews.
On the other hand, I also feel for those who are excellent engineers that got their doors shut just because of an interview question that doesn't even reflect how good they are at engineering. What are your opinions on this. If Leetcode were to be remove from interviews, what should SWE and students learn and prepare before their interviews?
I'm going to do every Leetcode problem this year or I will do whatever the top comment says 🔥🔥
I've done 2895/3832 problems so that is 937 to go with 330 days left. But I estimate around 400 problems will be added this year from contests or other releases so maybe ~4 a day?
Breakdown of questions left:
-146 Easy -464 Medium -327 Hard 🙃 -282 Database problems (SQL queries, etc) -599 Algorithm problems -28 Javascript problems
When I was working on the daily challenge the other day, my girlfriend saw my screen and asked me if I was Leetcoding. I was surprised because she is an archeology major and doesn't know anything about programming. She explained that her ex-boyfriend was into competitive programming and talked about it all the time. Apparently he is a Guardian on Leetcode and he even used to prepare contest problems for extra money. I feel extremely insecure now because I struggle with mediums most of the time and my rating is at 1500. My gf keeps assuring me that my low rating doesn't bother her, but everytime I am stuck in a problem I keep thinking how her ex would solve it in minutes. I just can't get the image of him easily solving LC Hards out of my head. Every time he submits a solution and gets that green AC on his screen he must smile and think how much of a loser his girlfriend's new boyfriend is. I am afraid that he raised the bar so much that I will never live up to his standard. My girlfriend will always compare him to me, and she will never be satisfied with my contest performance. Do you have any tips on how I can get better than this guy? Or do you think it's futile and I will always live under this guy's shadow?