<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aditya Shukla</title>
    <description>The latest articles on DEV Community by Aditya Shukla (@aditya_shukla_b8a48a7984a).</description>
    <link>https://dev.to/aditya_shukla_b8a48a7984a</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1650875%2F4c91449a-2194-4b20-8585-49f66299fd25.png</url>
      <title>DEV Community: Aditya Shukla</title>
      <link>https://dev.to/aditya_shukla_b8a48a7984a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aditya_shukla_b8a48a7984a"/>
    <language>en</language>
    <item>
      <title>How to practice system design interviews when you have nobody to practice with</title>
      <dc:creator>Aditya Shukla</dc:creator>
      <pubDate>Fri, 18 Sep 2026 13:09:21 +0000</pubDate>
      <link>https://dev.to/aditya_shukla_b8a48a7984a/how-to-practice-system-design-interviews-when-you-have-nobody-to-practice-with-41p0</link>
      <guid>https://dev.to/aditya_shukla_b8a48a7984a/how-to-practice-system-design-interviews-when-you-have-nobody-to-practice-with-41p0</guid>
      <description>&lt;p&gt;System design is the round people most often fail, and it is also the round that is close to impossible to practice alone. With DSA you at least get a green checkmark telling you that you were right. System design has no checkmark. You draw some boxes, you feel reasonably good about them, and you have no idea whether an interviewer would have shredded you in minute nine.&lt;/p&gt;

&lt;p&gt;I have been on both sides of this round, and the gap between people who practice alone and people who practice out loud is bigger here than anywhere else in the loop. Here is what actually works when you do not have a partner, and what to do about the part that genuinely needs one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why solo system design practice quietly fails
&lt;/h2&gt;

&lt;p&gt;Reading system design content feels productive. You finish an article about how Instagram handles the feed fanout, you understand it, and you file it away as knowledge. Then in the interview someone says "design a notification service" and you freeze, because understanding an explanation and generating one under time pressure are different skills that share almost nothing.&lt;/p&gt;

&lt;p&gt;The specific things that break in a real round:&lt;/p&gt;

&lt;p&gt;You do not state assumptions, because alone in your head the assumptions were obvious. The interviewer now thinks you did not consider them.&lt;/p&gt;

&lt;p&gt;You go straight to the fun part. Most people jump to the database schema or the sharding strategy, because that is the part they read about. The interviewer wanted requirements first, and quietly marked you down before you drew a single box.&lt;/p&gt;

&lt;p&gt;You cannot defend a choice. It is easy to write "use Kafka" on a diagram. It is very different to answer "why not just poll the database every five seconds" without saying "because Kafka is better."&lt;/p&gt;

&lt;p&gt;You have no sense of pacing. Forty five minutes disappears far faster than people expect. Alone, you never practice the triage of what to skip.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you can genuinely do alone
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Narrate out loud, to an empty room.&lt;/strong&gt; This feels ridiculous and it is the single highest leverage thing on this list. Set a timer for forty five minutes, pick a prompt, and talk through the whole thing as if someone is listening. If you cannot fill forty five minutes talking, you have found the gap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Record yourself and watch it back.&lt;/strong&gt; Painful, effective. You will catch the rambling, the long silences, and the moments you asserted something with no justification. You will catch things a friend would be too polite to mention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Write the requirements section before touching the design.&lt;/strong&gt; Functional requirements, non functional requirements, scale estimates. Force yourself to spend the first ten minutes there. Most people's instinct is to rush this, and in an interview it is where a lot of the signal lives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interrogate your own diagram.&lt;/strong&gt; After you finish, go back through every component and ask why it exists, what happens when it dies, and what it costs. If you cannot answer, that is exactly where the interviewer will push.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pick prompts with real constraints.&lt;/strong&gt; "Design Twitter" is too vague to be useful practice. "Design Twitter's timeline for 300 million daily users where a celebrity has 100 million followers" forces the actual tradeoff, which is the fanout problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part that genuinely needs another person
&lt;/h2&gt;

&lt;p&gt;Everything above makes you better at producing a design. None of it prepares you for the thing that actually decides the round, which is someone pushing back on you in real time.&lt;/p&gt;

&lt;p&gt;A real interviewer interrupts. They ask why you picked that datastore. They say "your service just got ten times the traffic, what breaks first." They follow the thread you were hoping they would not notice. You cannot simulate that alone, because you cannot surprise yourself, and you will never ask yourself the question you do not want to answer.&lt;/p&gt;

&lt;p&gt;Options, honestly assessed:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A friend who is also interviewing.&lt;/strong&gt; Free and underrated, with one real problem: friends are bad at being blunt. Fix it by asking for a hire or no hire verdict and three specific failures, rather than "how did I do."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paid platforms.&lt;/strong&gt; interviewing.io and similar will put you in front of experienced engineers. Genuinely good, genuinely expensive if you want volume.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Peer platforms.&lt;/strong&gt; You take turns, so you interview someone else and then get interviewed. The underrated part is that interviewing other people is itself excellent practice, because watching someone else flail teaches you what flailing looks like from the other chair.&lt;/p&gt;

&lt;p&gt;I ended up building one of these, &lt;a href="https://practick.io/" rel="noopener noreferrer"&gt;Practick&lt;/a&gt;, because the free peer option kept shrinking and I wanted it to still exist. It matches you with another engineer automatically and includes an interviewer guide on each question, since the usual failure mode of peer practice is that the person interviewing does not know what to push on. That one is mine, so discount it accordingly, but the general category matters more than which one you pick.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practice loop that works
&lt;/h2&gt;

&lt;p&gt;If I had to compress this into a weekly routine:&lt;/p&gt;

&lt;p&gt;Two solo sessions, timed and narrated out loud, recorded. Focus on requirements and pacing.&lt;/p&gt;

&lt;p&gt;One session where you are the interviewer for someone else. You will learn more than you expect.&lt;/p&gt;

&lt;p&gt;One session where you are the candidate and someone pushes back.&lt;/p&gt;

&lt;p&gt;Then, importantly, write down the specific question that broke you each time. After a month you will have a list, and that list is your actual study plan, not whatever generic topic list you started with.&lt;/p&gt;

&lt;h2&gt;
  
  
  The uncomfortable summary
&lt;/h2&gt;

&lt;p&gt;Most people preparing for system design are optimizing the part that feels like studying, because it is comfortable and measurable. The round is decided by the part that feels uncomfortable, which is talking through a design while someone questions it.&lt;/p&gt;

&lt;p&gt;You can do a surprising amount alone if you are willing to talk to an empty room and watch the recording. But at some point you need someone on the other side who is willing to ask the question you have been avoiding.&lt;/p&gt;

</description>
      <category>systemdesign</category>
      <category>interview</category>
      <category>career</category>
      <category>programming</category>
    </item>
    <item>
      <title>How interviewers actually ask Two Sum, and the four follow ups that matter more than the answer</title>
      <dc:creator>Aditya Shukla</dc:creator>
      <pubDate>Thu, 17 Sep 2026 12:05:21 +0000</pubDate>
      <link>https://dev.to/aditya_shukla_b8a48a7984a/how-interviewers-actually-ask-two-sum-and-the-four-follow-ups-that-matter-more-than-the-answer-1oc0</link>
      <guid>https://dev.to/aditya_shukla_b8a48a7984a/how-interviewers-actually-ask-two-sum-and-the-four-follow-ups-that-matter-more-than-the-answer-1oc0</guid>
      <description>&lt;p&gt;Two Sum is the first problem almost everyone learns, and most people stop preparing for it the moment they can write the hash map solution in their sleep. That is a mistake, because nobody who has actually interviewed candidates asks Two Sum to see if you know the hash map trick. They ask it because it is a five minute warm up that opens the door to four follow ups, and the follow ups are where you are actually being scored.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four follow ups
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. "What if the array is sorted?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is checking whether you default to the same tool every time or whether you actually look at the input before reaching for a hash map. A sorted array means two pointers gets you O(1) space instead of O(n), and an interviewer wants to see you notice that on your own, not after a hint.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. "What if there are duplicate values?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is checking whether your solution quietly breaks on an edge case you did not think about out loud. Walk through what happens to your hash map when the same value appears twice before you get asked, not after.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. "What if I asked you to return all pairs, not just one?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This changes the shape of the problem. Your early return solution now has to become a collection step, and the interviewer is watching whether you can adapt an existing solution instead of throwing it out and starting over.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. "Can you do it without extra space?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For an unsorted array this is often impossible in less than O(n log n) time, and the correct answer is to say so and explain the tradeoff, not to awkwardly force a bad solution. Interviewers use this one specifically to see if you will push back on a constraint that does not make sense, which matters more in a real job than getting every question right.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters more than grinding more problems
&lt;/h2&gt;

&lt;p&gt;None of these four follow ups require knowing a new algorithm. They require having sat across from someone who asks them, often enough that reacting to a follow up feels normal instead of stressful. Reading the follow up in a blog post and living through it live are different skills, and only one of them is what actually gets tested.&lt;/p&gt;

&lt;p&gt;That is the gap that solo practice cannot close, and it is why I ended up building &lt;a href="https://practick.io" rel="noopener noreferrer"&gt;Practick&lt;/a&gt;, a free peer to peer mock interview platform. You get matched with another engineer, one hour you are the candidate and one hour you are the interviewer, so you spend time on both sides of exactly this kind of exchange instead of only ever answering.&lt;/p&gt;

</description>
      <category>interview</category>
      <category>career</category>
      <category>coding</category>
    </item>
  </channel>
</rss>
