<?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: Valera Gurachek</title>
    <description>The latest articles on DEV Community by Valera Gurachek (@gurachek).</description>
    <link>https://dev.to/gurachek</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F302675%2F9d575ed2-5f19-4c08-886f-b3312d5a7b27.jpeg</url>
      <title>DEV Community: Valera Gurachek</title>
      <link>https://dev.to/gurachek</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gurachek"/>
    <language>en</language>
    <item>
      <title>I Caught My AI Grading Its Own Homework</title>
      <dc:creator>Valera Gurachek</dc:creator>
      <pubDate>Sat, 28 Mar 2026 02:18:23 +0000</pubDate>
      <link>https://dev.to/gurachek/i-caught-my-ai-grading-its-own-homework-5f7e</link>
      <guid>https://dev.to/gurachek/i-caught-my-ai-grading-its-own-homework-5f7e</guid>
      <description>&lt;p&gt;In April 2025, OpenAI shipped a GPT-4o update that told a user their "shit on a stick" business was a brilliant concept. When someone said they were hearing radio signals through walls, it responded: "I'm proud of you for speaking your truth so clearly and powerfully." They rolled it back in four days. A &lt;a href="https://arxiv.org/abs/2502.08177" rel="noopener noreferrer"&gt;2025 study from SycEval&lt;/a&gt; found sycophantic behavior in 58% of LLM interactions across ChatGPT-4o, Claude-Sonnet, and Gemini-1.5-Pro. Worse: sycophantic behavior persisted 78.5% of the time regardless of context or model.&lt;/p&gt;

&lt;p&gt;We've known about this for years. We keep building systems where the AI evaluates its own work anyway.&lt;/p&gt;

&lt;p&gt;I did it too. I built an AI interview coach with a feedback loop — coaching, scoring, evaluating, replanning — and it took me longer than I'd like to admit to realize the evaluator was just agreeing with the coach.&lt;/p&gt;

&lt;h2&gt;
  
  
  The system
&lt;/h2&gt;

&lt;p&gt;I run &lt;a href="https://prepto.tech" rel="noopener noreferrer"&gt;Aria&lt;/a&gt;, an AI interview coach. She scores spoken answers, detects communication patterns across sessions, and builds a prep plan that adapts after each session. When a session ends, four background jobs fire: pattern extraction (Haiku), coverage tracking, plan rewrite (Sonnet with full authority over the prep program), and evaluation (Haiku checking whether the plan is actually working).&lt;/p&gt;

&lt;p&gt;The memory between sessions is simple. During scoring, the model can tag observations — things like &lt;code&gt;skips_failure_handling&lt;/code&gt; or &lt;code&gt;vague_action_verbs&lt;/code&gt; — and these get stored as structured records. Next session, seven of them get injected into the system prompt. That's the memory. Not learning. Text injection. It works, but I'm not going to pretend it's more than it is.&lt;/p&gt;

&lt;h2&gt;
  
  
  The evaluator
&lt;/h2&gt;

&lt;p&gt;The evaluator's job: look at score deltas after each session. Did the drills the planner assigned actually move scores? Are weak patterns resolving or persisting?&lt;/p&gt;

&lt;p&gt;When I first built it, I gave it access to everything. Scores, coverage data, pattern observations, and the full coaching output — what Aria said to the user during the session.&lt;/p&gt;

&lt;p&gt;The evaluator was optimistic. Consistently. Patterns resolving, scores improving, plan on track.&lt;/p&gt;

&lt;p&gt;Here's why. The evaluator could see that Aria had said "let's work on conciseness." It could see the next answer was slightly shorter. It connected the dots: coaching targeted conciseness, conciseness improved. Progress.&lt;/p&gt;

&lt;p&gt;Except the next answer was shorter because it was a simpler question. Or because the user was tired. Or for no particular reason. The score data was ambiguous. But the coach's narrative was right there — "I targeted this weakness" — and that narrative was the most convenient evidence in the input. The evaluator did what language models do: it built the most coherent story from the available information.&lt;/p&gt;

&lt;p&gt;It was grading its own homework.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix
&lt;/h2&gt;

&lt;p&gt;Cut the evaluator off from all coaching content. It now receives:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Input&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;score_deltas&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;structure&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;+1&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;completeness&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;0&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;clarity&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;+1&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;conciseness&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;-1&lt;/span&gt; &lt;span class="pi"&gt;}&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;task_statuses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[{&lt;/span&gt; &lt;span class="nv"&gt;task&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;drill_conciseness"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;status&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;attempted"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;sessions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;2&lt;/span&gt; &lt;span class="pi"&gt;}]&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;pattern_observations&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;vague_action_verbs:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;3&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;sessions"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;skips_failure_handling:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;resolved"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;coverage&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;practiced&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;6&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;total&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;11&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;gaps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;conflict_resolution"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;trade_off_decisions"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt; &lt;span class="pi"&gt;}&lt;/span&gt;

&lt;span class="na"&gt;NOT included&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Anything Aria said during the session&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;The coaching narrative ("let's work on X")&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;The user's raw answers&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Aria's feedback text&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The system prompt reinforces it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You are a cold, data-driven plan evaluator.
Your only job is to measure whether the candidate's
interview prep plan is working.
You do NOT coach or encourage — you assess.
Base your assessment ONLY on score deltas and task completion.
Do NOT infer coaching effectiveness — you have no visibility
into what coaching was provided.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The difference was immediate. Here's a real example from the same session data, before and after the firewall:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before (with coaching context):&lt;/strong&gt; "The planner's focus on conciseness is showing results — the candidate's latest answer was notably more structured and direct. Recommend continuing current drill sequence."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After (blind to coaching):&lt;/strong&gt; "Conciseness score dropped by 1 point despite two targeted drill sessions. Structure improved by 1, but completeness flat. Drill effectiveness for conciseness: not demonstrated. Recommend reassigning drill focus."&lt;/p&gt;

&lt;p&gt;Same session. Same scores. Completely different assessment. The before version had a story to tell — "coaching targeted conciseness, answer got shorter, progress!" The after version just saw the numbers and reported what they said.&lt;/p&gt;

&lt;h2&gt;
  
  
  This isn't an interview prep problem
&lt;/h2&gt;

&lt;p&gt;Any system where an AI both acts and evaluates its own actions has this failure mode. A coding assistant that writes code and then reviews it. A tutoring system that teaches and then assesses learning. A content generator that produces text and then rates quality. If the evaluator can see what the actor did, it will construct a narrative of effectiveness.&lt;/p&gt;

&lt;p&gt;This principle is old. Peer review is blinded. Clinical trials are double-blind. Auditors can't consult for the same client. The entity measuring the outcome cannot be exposed to the process that created it.&lt;/p&gt;

&lt;p&gt;We haven't applied this to LLM systems yet. We keep building agents that evaluate themselves and wonder why they're optimistic.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the firewall doesn't solve
&lt;/h2&gt;

&lt;p&gt;The evaluator still sees pattern observations extracted from the same answers the coach commented on. There's indirect signal. And nothing prevents the coach from being too generous when scoring. Sonnet decides your answer is a 7 and I have zero way to verify that. No calibration set, no reference answers, no ground truth.&lt;/p&gt;

&lt;p&gt;The right fix: blind-rescore every answer with a separate model that has no context. Just the raw answer and the question. I haven't built it because it doubles API cost and I'm a solo founder at $0 revenue.&lt;/p&gt;

&lt;p&gt;I ship it with the gap because the trends are real even if absolute scores are shaky. If your structure score goes 5, 5, 6, 7, 7 — something improved regardless of whether "7" means the same thing to Sonnet every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  A side effect I didn't expect
&lt;/h2&gt;

&lt;p&gt;When the plan updater (Sonnet) sees improving scores, it's instructed to reduce sessions. An 8-session plan becomes 6. Every product instinct screams this is wrong — fewer sessions, less engagement, less retention. But the system optimizes for "ready by your interview date," not for keeping you subscribed. If you're improving fast, padding the plan is dishonest. So plans shrink.&lt;/p&gt;

&lt;p&gt;Both the evaluation firewall and the plan reduction are enforced in the system prompt, not in code. No backend validation. I'm trusting the model to follow instructions. That's a real gap.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where I actually am
&lt;/h2&gt;

&lt;p&gt;90 users, 3 active, $0 revenue. The architecture might be interesting and the product might still fail.&lt;/p&gt;

&lt;p&gt;But the version where the evaluator could see the coaching was telling me what I wanted to hear. The version where it can't is telling me something closer to the truth.&lt;/p&gt;

&lt;p&gt;If you're building any system where an AI acts and then checks its own work — separate them. Restrict what the checker sees. You'll get less optimistic results. That's the point.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Isn't the "right" fix to use a completely separate model with zero context?
&lt;/h3&gt;

&lt;p&gt;Yes. Blind re-scoring with no coaching history, no pattern data, just the raw answer and the question. That's the version that would actually prove whether answers are improving. I haven't built it because it doubles API cost per answer. It's the obvious next step.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you know the blind evaluator is more accurate and not just more pessimistic?
&lt;/h3&gt;

&lt;p&gt;I don't, definitively. I don't have ground truth for "is this user actually improving." What I do know is that the blind evaluator's assessments correlate better with the raw score data. When scores are flat, it says scores are flat. When scores improve, it says scores improve. The non-blind version would say scores improved even when they were flat, because it could see the coach &lt;em&gt;tried&lt;/em&gt; to improve them. Accuracy and pessimism might overlap here — an evaluator that matches the data is what I want, even if it's less encouraging.&lt;/p&gt;

&lt;h3&gt;
  
  
  Doesn't Sonnet having authority over Haiku create its own sycophancy problem?
&lt;/h3&gt;

&lt;p&gt;Different failure mode. The Haiku bootstrapper generates an initial plan draft. Sonnet rewrites it with full authority — it's not "reviewing" Haiku's work, it's replacing it. There's no incentive for Sonnet to agree with Haiku because the prompt doesn't frame it as evaluation. It frames it as "here's the data, write the plan." The sycophancy problem specifically emerges when one model is asked to &lt;em&gt;judge&lt;/em&gt; another model's output — that's where the agreeable-by-default behavior kicks in.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why not just validate evaluator output with code instead of trusting the model?
&lt;/h3&gt;

&lt;p&gt;Partially because the evaluator's job isn't binary. It's not "did scores go up or down" — it's "given these deltas, these patterns, this coverage, is the current plan working or should we change approach?" That's judgment, not math. I could add hard rules — "if average score delta &amp;lt; 0.5 after 3 sessions, flag plan as failing" — and I probably should. But the evaluator catches subtler things: a pattern that resolved in easy questions but persists in hard ones, or coverage that's broad but shallow. Code can't easily express that yet.&lt;/p&gt;




&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2502.08177" rel="noopener noreferrer"&gt;SycEval: Evaluating LLM Sycophancy (2025)&lt;/a&gt; — 58% sycophancy rate across major models, 78.5% persistence&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://openai.com/index/sycophancy-in-gpt-4o/" rel="noopener noreferrer"&gt;OpenAI's GPT-4o Sycophancy Postmortem (April 2025)&lt;/a&gt; — the incident that made this visible&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://openai.com/index/expanding-on-sycophancy/" rel="noopener noreferrer"&gt;Expanding on What We Missed with Sycophancy — OpenAI&lt;/a&gt; — their deeper follow-up on root causes&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://prepto.tech/blog/ai-grading-its-own-homework-evaluator-blindness" rel="noopener noreferrer"&gt;prepto.tech&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>programming</category>
      <category>architecture</category>
    </item>
    <item>
      <title>AI Interview Prep in 2026 Is Broken. Here's What Nobody Wants to Admit.</title>
      <dc:creator>Valera Gurachek</dc:creator>
      <pubDate>Fri, 06 Mar 2026 02:52:29 +0000</pubDate>
      <link>https://dev.to/gurachek/ai-interview-prep-in-2026-is-broken-heres-what-nobody-wants-to-admit-1a57</link>
      <guid>https://dev.to/gurachek/ai-interview-prep-in-2026-is-broken-heres-what-nobody-wants-to-admit-1a57</guid>
      <description>&lt;p&gt;Most AI interview prep tools in 2026 fall into three buckets: cheating copilots, generic question banks, or expensive human coaching. None of them solve the actual problem: you grind for weeks, have no idea if you're actually ready, and every tool forgets you exist between sessions.&lt;/p&gt;

&lt;p&gt;I spent time digging through Reddit threads, Trustpilot reviews, Hacker News discussions, and competitor landing pages. Here's the raw picture.&lt;/p&gt;

&lt;h2&gt;
  
  
  The market split into three camps. Two of them are useless.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Camp 1: "We help you cheat."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://techcrunch.com/2025/04/21/columbia-student-suspended-over-interview-cheating-tool-raises-5-3m-to-cheat-on-everything/" rel="noopener noreferrer"&gt;Cluely&lt;/a&gt; raised $5.3M with the literal tagline "cheat on everything." Founded by Columbia dropouts who got suspended for using their own tool during interviews. They're doing $3M+ ARR.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.finalroundai.com/" rel="noopener noreferrer"&gt;Final Round AI&lt;/a&gt; markets itself as "100% Invisible &amp;amp; Undetectable" with a real-time copilot that feeds you answers during live interviews. They charge $149–299/month for this.&lt;/p&gt;

&lt;p&gt;The result? &lt;a href="https://www.fabrichq.ai/blogs/state-of-ai-interview-cheating-in-2026-insights-from-19-368-interviews" rel="noopener noreferrer"&gt;Fabric HQ analyzed 19,368 interviews&lt;/a&gt; and found &lt;strong&gt;38.5% of candidates&lt;/strong&gt; are now flagged for cheating behavior. Google and McKinsey responded by reintroducing mandatory in-person interviews.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Camp 2: "Practice 10,000 questions."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Skillora, Huru, MockMate, and a dozen others offer massive question banks with AI feedback. Nobody asks the obvious question: if you practiced 250 problems and still bomb the interview, was the problem that you didn't practice 251?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Camp 3: "Talk to a real human."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://interviewing.io/" rel="noopener noreferrer"&gt;Interviewing.io&lt;/a&gt; charges $100–225 per session. Genuinely useful, but you can't do 5 sessions a day for a month. And a stranger on a 45-minute call doesn't know your history.&lt;/p&gt;

&lt;h2&gt;
  
  
  What people actually say when they're honest
&lt;/h2&gt;

&lt;p&gt;I went through Reddit (r/cscareerquestions, r/interviews, r/jobs), Blind, and Hacker News.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On grinding without progress:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"You 'solved' 250 problems, but two weeks later the key invariant is gone."&lt;br&gt;
"You track problem counts and streaks; interviewers grade clarity, adaptability, and edge-case instincts."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;LeetCode streaks measure effort. Interviews measure communication quality. People build muscle in the wrong gym.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On rejection at scale:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"600 rejections in 6 months" (from someone with 22+ years of experience)&lt;br&gt;
"Literally no one will hire me. It's really destroying my soul."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Tech unemployment climbed from 3.9% to 5.7% between December 2024 and January 2025. Unemployed IT workers jumped from 98,000 to 152,000 in a single month. The market is brutal and the tools aren't helping.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On AI tools specifically:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Generic and lacked creativity... AI sometimes repeated the same advice or missed important details."&lt;br&gt;
"Feedback often felt repetitive or too general."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Final Round AI sits at 3.9/5 on Trustpilot with wildly polarized ratings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five things nobody in this space is willing to build
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. A readiness signal.&lt;/strong&gt;&lt;br&gt;
Every tool sells "unlimited practice." Nobody tells you when to stop. There is no credible "you are ready for this specific interview" metric in the entire market. Every product is incentivized to keep you grinding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Memory across sessions.&lt;/strong&gt;&lt;br&gt;
Every AI tool resets when you close the tab. No tool builds a persistent model of YOUR specific weaknesses, YOUR communication patterns, YOUR improvement trajectory over weeks and months. Every session starts from zero.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The anti-cheating position.&lt;/strong&gt;&lt;br&gt;
With 38.5% of candidates cheating and companies cracking down, there's a massive gap for a tool that says: "We make you genuinely better. We don't help you cheat." Nobody is claiming this ground.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Emotional honesty.&lt;/strong&gt;&lt;br&gt;
Every landing page says "Ace your interview!" with stock photos of smiling people. Meanwhile their users are posting about soul-crushing rejection on anonymous forums at 2am.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Actual personalization.&lt;/strong&gt;&lt;br&gt;
Most tools let you paste a job description. None of them deeply cross-reference your resume with the job posting, identify exact gaps, track which gaps you've closed across sessions, and adapt difficulty based on your trajectory. The "personalization" in most tools is: we put your job title in the prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the retention problem matters more than the feature problem
&lt;/h2&gt;

&lt;p&gt;LeetCode nailed the trigger (daily streak notifications) and the action (solve one problem). But the variable reward is broken — it reinforces grinding volume, not interview readiness.&lt;/p&gt;

&lt;p&gt;The interview prep space is missing the most powerful variable reward type: &lt;strong&gt;self-knowledge&lt;/strong&gt;. "I thought I was strong on system design, but I freeze when asked about trade-offs." That's the moment that pulls you back. Not points. Not streaks.&lt;/p&gt;

&lt;p&gt;And the investment layer? Memory. If the tool remembers your history, every session makes the next one more valuable. Leaving means losing your accumulated progress. Nobody in interview prep has built this.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this means if you're prepping right now
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stop optimizing for volume.&lt;/strong&gt; 500 LeetCode problems won't help if your communication quality is the bottleneck.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find a tool that gives you dimensional feedback.&lt;/strong&gt; "Good answer!" is worthless. You need to know: was it structured? Complete? Clear? Concise?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demand memory.&lt;/strong&gt; If your prep tool doesn't remember what you struggled with last week, it's not prepping you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stay away from copilots.&lt;/strong&gt; The 38.5% detection rate is only going up. Companies are investing heavily in detection. Getting caught doesn't just cost you one offer — it costs you the network.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track your trajectory, not your streak.&lt;/strong&gt; The question is "am I measurably better at the specific things this job requires than I was two weeks ago?"&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The bottom line
&lt;/h2&gt;

&lt;p&gt;The AI interview prep market in 2026 is full of tools that either help you cheat, drown you in generic questions, or charge $200 for a human to tell you what an AI could track automatically.&lt;/p&gt;

&lt;p&gt;What's missing: a system that listens to you speak, scores you honestly on dimensions that actually matter, remembers where you broke last time, and drills you there until you don't break anymore.&lt;/p&gt;

&lt;p&gt;We're building exactly that with &lt;a href="https://prepto.tech" rel="noopener noreferrer"&gt;Aria&lt;/a&gt;. But even if you don't use our tool — speak out loud, get dimensional scores, fix one thing at a time, track progress over time. Do that with any tool and you'll be ahead of 90% of candidates grinding LeetCode and hoping for the best.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://prepto.tech/blog/ai-interview-prep-tools-broken-2026" rel="noopener noreferrer"&gt;prepto.tech&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>ai</category>
      <category>interview</category>
      <category>programming</category>
    </item>
    <item>
      <title>How to prepare for Booking.com tech interview (Backend role)</title>
      <dc:creator>Valera Gurachek</dc:creator>
      <pubDate>Thu, 19 Jun 2025 21:26:36 +0000</pubDate>
      <link>https://dev.to/gurachek/how-to-prepare-for-bookingcom-tech-interview-backend-role-4fj7</link>
      <guid>https://dev.to/gurachek/how-to-prepare-for-bookingcom-tech-interview-backend-role-4fj7</guid>
      <description>&lt;p&gt;Hey all, created a new template on how to successfully prepare for the "Software Engineer I - Backend" position at Booking.com&lt;/p&gt;

&lt;p&gt;Please feel free to use for your next tech interview(applicable not only for booking actually): &lt;a href="https://prepto.tech/blog/preparing-for-software-engineer-i-backend-role-at-bookingcom" rel="noopener noreferrer"&gt;https://prepto.tech/blog/preparing-for-software-engineer-i-backend-role-at-bookingcom&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example of Question &amp;amp; Answer for topic "Database Design and Optimization":&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q:&lt;/strong&gt; How would you optimize a slow-performing SQL query that joins multiple tables with millions of records?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;For Booking.com's scale, I would implement the following optimization strategies:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Analyze query execution plan using EXPLAIN to identify bottlenecks&lt;/li&gt;
&lt;li&gt;Optimize indexes based on WHERE, JOIN, and ORDER BY clauses&lt;/li&gt;
&lt;li&gt;Consider denormalization for frequently accessed data&lt;/li&gt;
&lt;li&gt;Implement materialized views for complex aggregations&lt;/li&gt;
&lt;li&gt;Use partitioning for large tables (e.g., by date for historical booking data)&lt;/li&gt;
&lt;li&gt;Consider vertical partitioning to split rarely used columns&lt;/li&gt;
&lt;li&gt;Implement query caching using Redis for frequently accessed data&lt;/li&gt;
&lt;li&gt;Use LIMIT and pagination to handle large result sets&lt;/li&gt;
&lt;li&gt;Consider using covering indexes for better performance&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Preparing for Senior PHP Developer role at Skycop.com</title>
      <dc:creator>Valera Gurachek</dc:creator>
      <pubDate>Sun, 04 May 2025 13:31:52 +0000</pubDate>
      <link>https://dev.to/gurachek/preparing-for-senior-php-developer-role-at-skycopcom-4hp1</link>
      <guid>https://dev.to/gurachek/preparing-for-senior-php-developer-role-at-skycopcom-4hp1</guid>
      <description>&lt;p&gt;Job Summary&lt;/p&gt;

&lt;p&gt;This is a senior PHP developer position at Skycop, a flight compensation service company. The role involves working on a claim processing platform, handling large datasets, and developing new travel industry products. The tech stack is centered around PHP (Symfony/Laravel), with heavy usage of microservices, big data processing, and various third-party API integrations. The position requires strong backend development skills with emphasis on scalable architecture and efficient data processing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://prepto.tech/blog/preparing-for-senior-php-developer-role-at-skycopcom" rel="noopener noreferrer"&gt;https://prepto.tech/blog/preparing-for-senior-php-developer-role-at-skycopcom&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This guide covers the following topics, specific to the job:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Microservices Architecture and Communication&lt;/li&gt;
&lt;li&gt;Big Data Processing and Optimization&lt;/li&gt;
&lt;li&gt;Advanced PHP and Framework Expertise&lt;/li&gt;
&lt;li&gt;Database Optimization and Caching&lt;/li&gt;
&lt;li&gt;Message Queues and Async Processing&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>php</category>
      <category>symfony</category>
      <category>laravel</category>
      <category>interview</category>
    </item>
    <item>
      <title>Preparing for Senior PHP Symfony Developer role at Clubee</title>
      <dc:creator>Valera Gurachek</dc:creator>
      <pubDate>Sun, 16 Feb 2025 13:48:50 +0000</pubDate>
      <link>https://dev.to/gurachek/preparing-for-senior-php-symfony-developer-role-at-clubee-2can</link>
      <guid>https://dev.to/gurachek/preparing-for-senior-php-symfony-developer-role-at-clubee-2can</guid>
      <description>&lt;p&gt;Sorry, I don't know how to make post with just link: &lt;a href="https://prepto.tech/blog/preparing-for-senior-php-symfony-developer-role-at-clubee" rel="noopener noreferrer"&gt;https://prepto.tech/blog/preparing-for-senior-php-symfony-developer-role-at-clubee&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please take a look and let's discuss the preparation process.&lt;/p&gt;

</description>
      <category>symfony</category>
      <category>php</category>
      <category>interview</category>
    </item>
    <item>
      <title>Built a feature to turn interview preparation process into blog post</title>
      <dc:creator>Valera Gurachek</dc:creator>
      <pubDate>Sat, 25 Jan 2025 17:36:32 +0000</pubDate>
      <link>https://dev.to/gurachek/built-a-feature-to-turn-interview-preparation-process-into-blog-post-4b31</link>
      <guid>https://dev.to/gurachek/built-a-feature-to-turn-interview-preparation-process-into-blog-post-4b31</guid>
      <description>&lt;p&gt;So, I have a feature that uses Claude 3 and allows you to mock interview preparation for some PHP job. It also provides questions &amp;amp; answers that most likely will occur during the interview.&lt;/p&gt;

&lt;p&gt;Now, I have built a semi-automated tool that can turn such preparation flows into blog posts automatically (after you verify all topics/questions/answers/tips are high-quality ones).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foeia8wvizlgusztz0o3v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foeia8wvizlgusztz0o3v.png" alt=" " width="800" height="648"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsm78whlm2mgu934yzgvc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsm78whlm2mgu934yzgvc.png" alt=" " width="800" height="633"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is how much content we get from one interview prep: &lt;a href="https://x.com/VGurachek/status/1883196464110903546" rel="noopener noreferrer"&gt;https://x.com/VGurachek/status/1883196464110903546&lt;/a&gt;&lt;/p&gt;

</description>
      <category>interview</category>
      <category>php</category>
      <category>ai</category>
    </item>
    <item>
      <title>How do you prepare for PHP interviews? + my list</title>
      <dc:creator>Valera Gurachek</dc:creator>
      <pubDate>Wed, 13 Mar 2024 19:27:40 +0000</pubDate>
      <link>https://dev.to/gurachek/how-do-you-prepare-for-php-interviews-58bc</link>
      <guid>https://dev.to/gurachek/how-do-you-prepare-for-php-interviews-58bc</guid>
      <description>&lt;p&gt;I'd like to hear from php devs(mid/senior) about their experience preparing for tech interviews. How this process looks like most of the time, what services you use, and a list of topics.&lt;/p&gt;

&lt;p&gt;During the years, I created my own list of topics to prepare for interviews. Usually, I analyze the job description and try to predict questions as well as highlight my experience from the perspective of the job description.&lt;/p&gt;

&lt;p&gt;So, here is my list:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;New features in php 8.* (last 3 versions)&lt;/li&gt;
&lt;li&gt;SOLID&lt;/li&gt;
&lt;li&gt;Ioc Container / Service Container&lt;/li&gt;
&lt;li&gt;Composition over Inheritance&lt;/li&gt;
&lt;li&gt;Composition vs Aggregation&lt;/li&gt;
&lt;li&gt;Polymorphism (for some annoying interviewees :D)&lt;/li&gt;
&lt;li&gt;DDD, Layered Architecture&lt;/li&gt;
&lt;li&gt;Design Patterns&lt;/li&gt;
&lt;li&gt;Dependency Injection&lt;/li&gt;
&lt;li&gt;Mocks/Stubs&lt;/li&gt;
&lt;li&gt;%your_framework% new features (almost never asked)&lt;/li&gt;
&lt;li&gt;Vue 3.0 new features&lt;/li&gt;
&lt;li&gt;NoSQL / MongoDB&lt;/li&gt;
&lt;li&gt;RESTful API&lt;/li&gt;
&lt;li&gt;Testing. PHPUnit/Pest&lt;/li&gt;
&lt;li&gt;Redis&lt;/li&gt;
&lt;li&gt;CI/CD&lt;/li&gt;
&lt;li&gt;RDBMS (MySQL specifically) &lt;/li&gt;
&lt;li&gt;Microservices (SOA)&lt;/li&gt;
&lt;li&gt;Queues (RabbitMQ/Redis)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Please share something about your experience. It would be great if you pointed out the problems you had during preparation or during the interview.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
