<?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: Jacob Zhang</title>
    <description>The latest articles on DEV Community by Jacob Zhang (@zx12345).</description>
    <link>https://dev.to/zx12345</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%2F4151491%2F5f9ce5a0-29f8-499d-938e-7d5f25002600.jpeg</url>
      <title>DEV Community: Jacob Zhang</title>
      <link>https://dev.to/zx12345</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zx12345"/>
    <language>en</language>
    <item>
      <title>Your ranking model can be perfect offline and still fail the interview</title>
      <dc:creator>Jacob Zhang</dc:creator>
      <pubDate>Sun, 25 Oct 2026 00:03:19 +0000</pubDate>
      <link>https://dev.to/zx12345/your-ranking-model-can-be-perfect-offline-and-still-fail-the-interview-49fm</link>
      <guid>https://dev.to/zx12345/your-ranking-model-can-be-perfect-offline-and-still-fail-the-interview-49fm</guid>
      <description>&lt;p&gt;Your ranking model can be perfect offline and still fail the interview. The interview isn't testing your model. It's testing your judgment about it.&lt;/p&gt;

&lt;p&gt;Design an ads ranking system, and the structure interviewers want to hear is boring on purpose — four stages, no magic:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Candidate generation first, ranking second. You can't score a billion ads. Retrieval (two-tower embeddings, ANN index) cuts billions to hundreds. If you start with the ranker, you've already failed the scale question.&lt;/li&gt;
&lt;li&gt;Ranking in two passes. A light model scores hundreds, a heavy model re-ranks tens. Say why: latency budget. A 100ms p99 budget decides your model size more than accuracy does.&lt;/li&gt;
&lt;li&gt;Features in three buckets. User, item, context — and one cross feature that actually matters (user-item interaction history). Listing 30 features is worse than defending 5.&lt;/li&gt;
&lt;li&gt;Metrics that disagree. Offline AUC/NDCG up, online revenue flat — that happens, and the interviewer wants your diagnosis: selection bias in training data, position bias in clicks, or a delayed feedback loop. Pick one, explain the fix, don't just say "run an A/B test."&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The skeleton never changes: retrieval → light rank → heavy rank → calibration. What changes is which trade-off you defend.&lt;/p&gt;

&lt;p&gt;The full walkthrough of this question and hundreds more like it are in the DeepOffer question bank.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>systemdesign</category>
      <category>interview</category>
      <category>career</category>
    </item>
    <item>
      <title>Muse invite code DYGM1I: 7 questions every new user asks, answered</title>
      <dc:creator>Jacob Zhang</dc:creator>
      <pubDate>Fri, 23 Oct 2026 18:54:57 +0000</pubDate>
      <link>https://dev.to/zx12345/muse-invite-code-dygm1i-7-questions-every-new-user-asks-answered-47hb</link>
      <guid>https://dev.to/zx12345/muse-invite-code-dygm1i-7-questions-every-new-user-asks-answered-47hb</guid>
      <description>&lt;p&gt;1 billion free AI tokens. No credit card. No catch. Two minutes to claim.&lt;/p&gt;

&lt;p&gt;Muse is the #1 Productivity app on the US App Store — 4.9 stars from 300,000+ ratings.&lt;/p&gt;

&lt;p&gt;I have been answering the same questions about the Muse invite program all week, so here are the seven I hear most:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. What is Muse?&lt;/strong&gt;&lt;br&gt;
Meta's personal AI agent — chat, voice, and task help in one app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. What does the invite code do?&lt;/strong&gt;&lt;br&gt;
New users who enter a code within 48 hours of signing up get 1 billion Muse tokens, and the inviter gets the same. The tokens never expire.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Do I need a credit card?&lt;/strong&gt;&lt;br&gt;
No. During age verification you get three options — linking Facebook is the fastest and skips the $1 card pre-authorization entirely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Why does signup say my region is unavailable?&lt;/strong&gt;&lt;br&gt;
Muse registration currently only accepts US and Canada IPs, and it is picky: datacenter IPs get rejected. Use a US residential IP and it goes through. Sign up at muse.ai/join.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Where exactly do I enter the code?&lt;/strong&gt;&lt;br&gt;
Settings → Redeem invite code. Type DYGM1I. It must be within 48 hours of creating your account — after that the field is gone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. What is your code?&lt;/strong&gt;&lt;br&gt;
DYGM1I. Use it if you need one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. What happens after I redeem?&lt;/strong&gt;&lt;br&gt;
Your own invite code appears under the Invite button, and you can start sharing it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Meta's Muse AI gives new users 1 billion free tokens — the 2-minute setup</title>
      <dc:creator>Jacob Zhang</dc:creator>
      <pubDate>Fri, 23 Oct 2026 06:48:35 +0000</pubDate>
      <link>https://dev.to/zx12345/metas-muse-ai-gives-new-users-1-billion-free-tokens-the-2-minute-setup-43l2</link>
      <guid>https://dev.to/zx12345/metas-muse-ai-gives-new-users-1-billion-free-tokens-the-2-minute-setup-43l2</guid>
      <description>&lt;p&gt;Almost nobody knows this yet: a new AI app is handing out 1 billion free tokens to new users.&lt;/p&gt;

&lt;p&gt;Muse is the #1 Productivity app on the US App Store — 4.9 stars from 300,000+ ratings.&lt;/p&gt;

&lt;p&gt;Here's the exact 2-minute setup, including the two places people get stuck:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 — Sign up at &lt;a href="https://muse.ai/join" rel="noopener noreferrer"&gt;muse.ai/join&lt;/a&gt; with a US residential IP.&lt;/strong&gt;&lt;br&gt;
The region check only looks at your exit IP. Datacenter IPs get "region unavailable"; a residential connection works. Signup is currently open to US/Canada IPs only.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 — Age verification: link Facebook.&lt;/strong&gt;&lt;br&gt;
You get three options. Linking Facebook is the fastest and skips the $1 card pre-authorization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3 — Redeem within 48 hours (the step everyone forgets).&lt;/strong&gt;&lt;br&gt;
Go to &lt;strong&gt;Settings → Redeem invite code&lt;/strong&gt; and enter &lt;strong&gt;DYGM1I&lt;/strong&gt;. Both of us get 1 billion Muse tokens that never expire. After 48 hours the window closes, so do it right away.&lt;/p&gt;

&lt;p&gt;Once redeemed, your own invite code shows up under the Invite button — share it and keep the chain going.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Don't throw away 1 billion free Muse tokens: 5 sign-up mistakes to avoid</title>
      <dc:creator>Jacob Zhang</dc:creator>
      <pubDate>Thu, 22 Oct 2026 19:23:13 +0000</pubDate>
      <link>https://dev.to/zx12345/dont-throw-away-1-billion-free-muse-tokens-5-sign-up-mistakes-to-avoid-g51</link>
      <guid>https://dev.to/zx12345/dont-throw-away-1-billion-free-muse-tokens-5-sign-up-mistakes-to-avoid-g51</guid>
      <description>&lt;p&gt;Muse is the #1 Productivity app on the US App Store — 4.9 stars from 300,000+ ratings.&lt;/p&gt;

&lt;p&gt;Muse (Meta's personal AI agent) hands out 1 billion free tokens to both sides of an invite — but only if you do everything right in the first 48 hours. Here are the five mistakes that cost people their tokens:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Signing up on a datacenter IP. Muse only accepts US/Canada registrations and it checks your exit IP. Most VPNs use datacenter ranges and you'll see "region unavailable". Use a US residential IP.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Skipping past the code. After registering, you have 48 hours to go to Settings → General → Redeem invite code and enter a code (mine is DYGM1I). Miss the window and the code can't be applied retroactively. Do it immediately.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Picking the wrong age-verification option. The flow asks for age verification; linking Facebook is the quickest way through and skips the $1 credit-card pre-authorization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Typing the code wrong. Codes are case-sensitive — it's DYGM1I (that's D-Y-G-M-1-I).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Waiting to "try it first". The 48-hour clock starts at sign-up, not at first use. Register, verify, redeem — then explore.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Steps: muse.ai/join (US residential IP) → age verification via Facebook → within 48h: Settings → Redeem invite code → DYGM1I → 1 billion tokens for you and the inviter, never expire.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>ai</category>
    </item>
    <item>
      <title>How to Register for Muse AI and Claim 1 Billion Free Tokens</title>
      <dc:creator>Jacob Zhang</dc:creator>
      <pubDate>Thu, 22 Oct 2026 05:53:01 +0000</pubDate>
      <link>https://dev.to/zx12345/how-to-register-for-muse-ai-and-claim-1-billion-free-tokens-40m9</link>
      <guid>https://dev.to/zx12345/how-to-register-for-muse-ai-and-claim-1-billion-free-tokens-40m9</guid>
      <description>&lt;p&gt;Meta's personal AI agent Muse is only open to US/Canada IPs right now, and registration trips a lot of people up. Two things that matter:&lt;/p&gt;

&lt;p&gt;Muse is the #1 Productivity app on the US App Store — 4.9 stars from 300,000+ ratings.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Use a residential US IP.&lt;/strong&gt; Datacenter IPs get flagged as "region unavailable". A regular VPN often fails; a residential connection works.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Age verification:&lt;/strong&gt; you get three options. Linking Facebook is the fastest way to skip the $1 card pre-authorization.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After you sign up at muse.ai/join, don't forget the time-sensitive step: within &lt;strong&gt;48 hours&lt;/strong&gt;, go to &lt;strong&gt;Settings → General → Redeem invite code&lt;/strong&gt; and enter an invite code — both you and the inviter get &lt;strong&gt;1 billion Muse tokens&lt;/strong&gt; that never expire.&lt;/p&gt;

&lt;p&gt;My code is &lt;strong&gt;DYGM1I&lt;/strong&gt; if you need one. After redeeming, your own invite code appears under the Invite button — share it and keep the chain going.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>3 Hard Lessons from Building a Voice-Based AI Mock Interviewer</title>
      <dc:creator>Jacob Zhang</dc:creator>
      <pubDate>Thu, 08 Oct 2026 04:38:30 +0000</pubDate>
      <link>https://dev.to/zx12345/i-built-an-ai-voice-mock-interviewer-for-mle-interviews-10i6</link>
      <guid>https://dev.to/zx12345/i-built-an-ai-voice-mock-interviewer-for-mle-interviews-10i6</guid>
      <description>&lt;p&gt;I spent the last few months building a voice-based mock interview tool for ML engineers. The idea sounded simple: an AI interviewer that talks to you, asks follow-ups, and scores your answers.&lt;/p&gt;

&lt;p&gt;The reality was harder than expected. Here are the three lessons that cost me the most time.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Latency is the whole product
&lt;/h2&gt;

&lt;p&gt;In text chat, users forgive a 3-second reply. In voice, a 2-second pause kills the conversation. The interview feels broken.&lt;/p&gt;

&lt;p&gt;I used the OpenAI Realtime API, which streams audio with low latency. But the API alone was not enough. I had to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start generating the reply while the user is still finishing their sentence (careful turn detection).&lt;/li&gt;
&lt;li&gt;Keep the spoken replies short. Long answers sound robotic and make the user wait.&lt;/li&gt;
&lt;li&gt;Handle interruptions. Real interviewers get interrupted. The system needs to stop talking and listen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are building anything voice-first, budget half your engineering time for latency. It is not a detail. It is the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Scoring AI answers needs guardrails, or it lies to you
&lt;/h2&gt;

&lt;p&gt;My first scoring version gave a 7/10 to a 5-second "I don't know." That is worse than no score at all — it teaches the user nothing and destroys trust.&lt;/p&gt;

&lt;p&gt;What worked:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hard gate: no score unless the user spoke substantively for at least 60 seconds.&lt;/li&gt;
&lt;li&gt;A strict rubric: 5/10 is a solid average, 8+ is genuinely excellent. The prompt explicitly forbids inflating scores for vague answers.&lt;/li&gt;
&lt;li&gt;Five separate dimensions (correctness, depth, clarity, structure, communication) instead of one number. A single score hides everything.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Honest scoring is a feature. Users can tell when they are being flattered.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Follow-up questions must come from the conversation, not a script
&lt;/h2&gt;

&lt;p&gt;A fixed list of follow-ups feels like a quiz. A real interviewer listens and probes deeper into what you just said.&lt;/p&gt;

&lt;p&gt;I generate follow-ups from the full conversation history. The interviewer tracks the candidate's reasoning and asks about the weakest point. This was the hardest part to get right — it needs enough context to be smart, but not so much that it rambles.&lt;/p&gt;

&lt;p&gt;The test I use: if you removed the AI label, would this feel like a human interviewer? If yes, ship it.&lt;/p&gt;




&lt;p&gt;These lessons come from building DeepOffer (&lt;a href="https://getdeepoffer.com" rel="noopener noreferrer"&gt;https://getdeepoffer.com&lt;/a&gt;), a voice mock interview platform for MLE interviews. If you are preparing for interviews, the free question bank is a good place to practice. And if you are building voice AI yourself, I would love to compare notes in the comments.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>ai</category>
      <category>showdev</category>
      <category>discuss</category>
    </item>
    <item>
      <title>I Collected 2026's Google Interview Reports. Here's What's Actually Getting Asked.</title>
      <dc:creator>Jacob Zhang</dc:creator>
      <pubDate>Wed, 30 Sep 2026 06:11:23 +0000</pubDate>
      <link>https://dev.to/zx12345/i-collected-2026s-google-interview-reports-heres-whats-actually-getting-asked-3g05</link>
      <guid>https://dev.to/zx12345/i-collected-2026s-google-interview-reports-heres-whats-actually-getting-asked-3g05</guid>
      <description>&lt;p&gt;Google's coding interviews have a reputation for being unpredictable. After going through publicly shared 2026 interview reports (Glassdoor, Blind, LeetCode Discuss, July–September), I'd say they're not random at all — the structure is actually pretty predictable. Here's what keeps showing up.&lt;/p&gt;

&lt;p&gt;A quick note on honesty: dated first-hand reports from the last few months are scarce. Most of what's public is pattern-level, not exact questions. Below I separate &lt;strong&gt;confirmed sightings&lt;/strong&gt; (a report explicitly named or clearly described the exact problem) from &lt;strong&gt;high-frequency patterns&lt;/strong&gt; (the report described the shape; these are Google's classic favorites under that shape). Don't trust anyone selling you "the exact 2026 question list" — including me.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Graphs are the #1 topic this year
&lt;/h2&gt;

&lt;p&gt;Island-counting problems (the LeetCode 200 family) keep appearing as round openers — but they're just the warm-up. The real test is the follow-up, where the interviewer adds dynamic constraints mid-round ("now land appears over time — track the island count as it changes").&lt;/p&gt;

&lt;p&gt;Also showing up: grid traversal where your movement depends on &lt;em&gt;where you came from&lt;/em&gt; (state is more than just coordinates), and ranking-from-pairwise-results problems, which are topological sort in disguise.&lt;/p&gt;

&lt;p&gt;If you grind one chapter, make it graphs: &lt;strong&gt;200, 695, 994, 417, 329, 207, 210, 269&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The DP → binary search arc
&lt;/h2&gt;

&lt;p&gt;The most 2026 thing I saw: you start with a DP formulation, and the interviewer keeps pushing — find the bottleneck, optimize — until you land on a binary search solution. The textbook example is the "painter's partition" problem (&lt;strong&gt;LC 410&lt;/strong&gt;): the DP is O(n²k), the expected answer is binary-search-the-answer plus a greedy check.&lt;/p&gt;

&lt;p&gt;Train this as a template, not a trick: &lt;strong&gt;410, 1011, 1482&lt;/strong&gt; are the same muscle. If your DP solution passes without a follow-up asking "can you do better," something went wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Trie + HashMap combos
&lt;/h2&gt;

&lt;p&gt;One August report described a medium-hard Trie problem combined with hash maps — and it earned a Strong Hire. The lesson: practice the two together, not in isolation. &lt;strong&gt;208&lt;/strong&gt; (implement it cold), &lt;strong&gt;212&lt;/strong&gt;, &lt;strong&gt;421&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Union-Find gets grilled on correctness
&lt;/h2&gt;

&lt;p&gt;Interviewers aren't just checking that you &lt;em&gt;use&lt;/em&gt; DSU — they're digging into path compression, union-by-rank, and whether you can argue correctness or offer alternative traversals. &lt;strong&gt;684&lt;/strong&gt; until it's muscle memory, then &lt;strong&gt;990&lt;/strong&gt;, &lt;strong&gt;128&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Streams and heaps
&lt;/h2&gt;

&lt;p&gt;Moving averages and top-K over data streams keep appearing in both SWE and MLE rounds. &lt;strong&gt;346&lt;/strong&gt; was a confirmed sighting; the two-heap median template (&lt;strong&gt;295&lt;/strong&gt;) and Kth-largest (&lt;strong&gt;703&lt;/strong&gt;, &lt;strong&gt;215&lt;/strong&gt;) round it out.&lt;/p&gt;

&lt;h2&gt;
  
  
  The confirmed-sighting shortlist
&lt;/h2&gt;

&lt;p&gt;These eight were explicitly named or clearly described in 2026 reports, so they're the safest bets if you're short on time: &lt;strong&gt;200, 416, 174, 410, 2188, 128, 346, 315&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;I turned the full research into an 81-problem checklist, ranked by 2026 frequency — every problem labeled as confirmed vs. pattern-matched, each with its source and a prep tip. It's $19 on Gumroad if you want the whole thing: &lt;a href="https://mleplaybook.gumroad.com/l/google-leetcode-interview-checklist-2026" rel="noopener noreferrer"&gt;https://mleplaybook.gumroad.com/l/google-leetcode-interview-checklist-2026&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Good luck out there. And if you've interviewed at Google recently, drop what you saw in the comments — I'll fold it into the next update.&lt;/p&gt;

</description>
      <category>leetcode</category>
      <category>interview</category>
      <category>google</category>
      <category>career</category>
    </item>
  </channel>
</rss>
