<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Technical interview - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Technical interview - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Mon, 25 May 2026 22:37:39 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/technical-interview/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to Prep for Technical Interviews – A Guide for Web Developers
 ]]>
                </title>
                <description>
                    <![CDATA[ Over the years I've participated in dozens of technical interviews. I've answered technical questions one-on-one with the CTO and in a group with the dev team. I've taken quizzes with a timer and buil ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-prep-for-technical-interviews-guide-for-web-devs/</link>
                <guid isPermaLink="false">69dd2c59217f5dfcbd261b21</guid>
                
                    <category>
                        <![CDATA[ interview ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Technical interview ]]>
                    </category>
                
                    <category>
                        <![CDATA[ jobs ]]>
                    </category>
                
                    <category>
                        <![CDATA[ job search ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Ilyas Seisov ]]>
                </dc:creator>
                <pubDate>Mon, 13 Apr 2026 17:48:09 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/uploads/covers/5e1e335a7a1d3fcc59028c64/b179e59d-bb58-41cb-8191-4e9523412933.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Over the years I've participated in dozens of technical interviews.</p>
<p>I've answered technical questions one-on-one with the CTO and in a group with the dev team. I've taken quizzes with a timer and built features into existing apps in live mode.</p>
<p>I've live coded algorithms, done take home assignments, and demonstrated my system design skills.</p>
<p>And all this has given me a lot of knowledge and experience that I want to share with you now.</p>
<p>In this guide, I'll share my top tips, recommendations, and <a href="https://www.99cards.dev/checklists">checklists</a> to help you prepare for and pass your technical interviews. These will level up your game and increase your chances of getting a job.</p>
<h3 id="heading-what-well-cover">What We'll Cover:</h3>
<ul>
<li><p><a href="#heading-introduction">Introduction</a></p>
</li>
<li><p><a href="#heading-the-secret-that-will-increase-your-interview-performance-by-53-at-least-it-did-for-me">The Secret That Will Increase Your Interview Performance By 53% (at Least It Did For Me)</a></p>
<ul>
<li><p><a href="#heading-1-big-tech-faang-level-companies">1. Big Tech / FAANG-level Companies</a></p>
</li>
<li><p><a href="#heading-2-mid-size-product-companies-saas">2. Mid-size Product Companies / SaaS</a></p>
</li>
<li><p><a href="#heading-3-startups-early-stage">3. Startups (Early-stage)</a></p>
</li>
<li><p><a href="#heading-4-design-agencies-creative-studios">4. Design Agencies / Creative Studios</a></p>
</li>
<li><p><a href="#heading-5-enterprise-corporate-companies">5. Enterprise / Corporate Companies</a></p>
</li>
<li><p><a href="#heading-6-e-commerce-amp-marketing-agencies">6. E-commerce &amp; Marketing Agencies</a></p>
</li>
<li><p><a href="#heading-7-ai-first-modern-tech-companies">7. AI-first / Modern Tech Companies</a></p>
</li>
<li><p><a href="#heading-8-freelance-indie-micro-saas">8. Freelance / Indie / Micro-SaaS</a></p>
</li>
</ul>
</li>
<li><p><a href="#heading-step-1-building-a-strong-foundation-in-core-web-development-concepts">Step 1: Building a Strong Foundation in Core Web Development Concepts</a></p>
</li>
<li><p><a href="#heading-step-2-going-deeper-into-subject-matter">Step 2: Going Deeper Into Subject Matter</a></p>
</li>
<li><p><a href="#heading-interview-preparation-guide">Interview Preparation Guide</a></p>
<ul>
<li><p><a href="#heading-1-answer-technical-questions-1-on-1-many-to-1">1. Answer Technical Questions (1-on-1 / Many-to-1)</a></p>
</li>
<li><p><a href="#heading-2-go-through-quizzes-with-a-timer">2. Go Through Quizzes with a Timer</a></p>
</li>
<li><p><a href="#heading-3-build-features-into-existing-apps-live-mode">3. Build Features into Existing Apps (Live Mode)</a></p>
</li>
<li><p><a href="#heading-4-live-code-algorithms">4. Live Code Algorithms</a></p>
</li>
<li><p><a href="#heading-5-take-home-assignments">5. Take Home Assignments</a></p>
</li>
<li><p><a href="#heading-6-system-design">6. System Design</a></p>
</li>
<li><p><a href="#heading-a-fun-story">A Fun Story</a></p>
</li>
</ul>
</li>
<li><p><a href="#heading-most-important-part">Most Important Part</a></p>
<ul>
<li><a href="#heading-pdca-framework">PDCA Framework</a></li>
</ul>
</li>
<li><p><a href="#heading-conclusion">Conclusion</a></p>
<ul>
<li><a href="#heading-ps">P.S.</a></li>
</ul>
</li>
</ul>
<h2 id="heading-introduction">Introduction</h2>
<p>The technical interview is designed to test how you think, code, and communicate. It's about both explaining your reasoning and showing what you can do. Think of it like a performance: the more you practice, the more natural and confident you’ll feel when you're actually doing it.</p>
<p>You’ll usually go through three main steps:</p>
<ul>
<li><p><strong>Technical screening:</strong> a short 15–30 minute call to check your basics and interest in the role.</p>
</li>
<li><p><strong>Coding challenge:</strong> you’ll solve problems either through a take-home project or a live coding test. This shows how you write, structure, and test your code.</p>
</li>
<li><p><strong>Whiteboard interview:</strong> you solve problems on a shared screen while explaining your thinking out loud. It’s less about being perfect and more about how you approach problems.</p>
</li>
</ul>
<p>During these stages, interviewers focus on a few key areas:</p>
<ul>
<li><p><strong>Data structures:</strong> Ways to organize data (like folders in a filing system).</p>
</li>
<li><p><strong>Algorithms:</strong> Step-by-step methods to solve problems.</p>
</li>
<li><p><strong>System design (for senior roles):</strong> Planning how large systems work, similar to designing a building that supports many users at once.</p>
</li>
</ul>
<p>Overall, they’re looking at how you think, not just what you know.</p>
<h2 id="heading-the-secret-that-will-increase-your-interview-performance-by-53-at-least-it-did-for-me">The Secret That Will Increase Your Interview Performance By 53% (at Least It Did For Me)</h2>
<p>The secret is: <strong>narrow your focus.</strong></p>
<p>Before you spend even one minute preparing, specify exactly what type of company you want to work for.</p>
<p>Why?</p>
<p>Because this choice will reveal what exactly you'll have study and practice before your technical interview.</p>
<p>Let's go over the main categories of companies so you can work on narrowing your focus.</p>
<h3 id="heading-1-big-tech-faang-level-companies">1. Big Tech / FAANG-level Companies</h3>
<p>(Google, Amazon, Meta, Apple, Microsoft)</p>
<p><strong>Core skills:</strong></p>
<ul>
<li><p>Data structures &amp; algorithms</p>
</li>
<li><p>System design (scalability, distributed systems)</p>
</li>
<li><p>Computer science fundamentals (OS, networking)</p>
</li>
</ul>
<h3 id="heading-2-mid-size-product-companies-saas">2. Mid-size Product Companies / SaaS</h3>
<p>(Shopify, Stripe, Notion)</p>
<p><strong>Core skills:</strong></p>
<ul>
<li><p>Strong stack knowledge (React, Next.js, Node.js)</p>
</li>
<li><p>API design &amp; integrations</p>
</li>
<li><p>Database design (SQL/NoSQL)</p>
</li>
</ul>
<h3 id="heading-3-startups-early-stage">3. Startups (Early-stage)</h3>
<p><strong>Core skills:</strong></p>
<ul>
<li><p>Full-stack development</p>
</li>
<li><p>Rapid prototyping</p>
</li>
<li><p>Shipping features end-to-end</p>
</li>
</ul>
<h3 id="heading-4-design-agencies-creative-studios">4. Design Agencies / Creative Studios</h3>
<p><strong>Core skills:</strong></p>
<ul>
<li><p>Advanced HTML, CSS, JavaScript</p>
</li>
<li><p>Animation (GSAP, Framer Motion)</p>
</li>
<li><p>Pixel-perfect implementation</p>
</li>
</ul>
<h3 id="heading-5-enterprise-corporate-companies">5. Enterprise / Corporate Companies</h3>
<p><strong>Core skills:</strong></p>
<ul>
<li><p>Backend development (Java, .NET, and so on)</p>
</li>
<li><p>Databases (SQL, enterprise systems)</p>
</li>
<li><p>APIs &amp; microservices</p>
</li>
</ul>
<h3 id="heading-6-e-commerce-amp-marketing-agencies">6. E-commerce &amp; Marketing Agencies</h3>
<p><strong>Core skills:</strong></p>
<ul>
<li><p>Shopify / WordPress</p>
</li>
<li><p>Frontend development</p>
</li>
<li><p>SEO &amp; performance optimization</p>
</li>
</ul>
<h3 id="heading-7-ai-first-modern-tech-companies">7. AI-first / Modern Tech Companies</h3>
<p>(OpenAI, Anthropic)</p>
<p><strong>Core skills:</strong></p>
<ul>
<li><p>AI API integration (LLMs, embeddings)</p>
</li>
<li><p>Prompt engineering</p>
</li>
<li><p>Backend &amp; data handling</p>
</li>
</ul>
<h3 id="heading-8-freelance-indie-micro-saas">8. Freelance / Indie / Micro-SaaS</h3>
<p><strong>Core skills:</strong></p>
<ul>
<li><p>Full-stack development (Next.js)</p>
</li>
<li><p>Payments &amp; authentication systems</p>
</li>
<li><p>Deployment &amp; basic marketing</p>
</li>
</ul>
<p>Keep in mind that these are just high-level recommendations. There are, of course, other skills you'll need to focus on depending on the role you're hoping to get. This is just a general guideline to get you started.</p>
<p>Also, fun fact: if you ask a top FAANG developer to code an <a href="https://www.awwwards.com/">Awwwards</a>-style landing page, they'll most likely fail. And similarly, an award-winning web designer from a top notch agency will probably perform poorly at an algorithm assignment. Why? Each field requires its own skillset. So make sure you choose and focus on yours.</p>
<h2 id="heading-step-1-building-a-strong-foundation-in-core-web-development-concepts">Step 1: Building a Strong Foundation in Core Web Development Concepts</h2>
<p>So, now I assume that you've decided on the type of company you want to work for.</p>
<p>The next step is check whether you have or need to work on the basic fundamentals. Most candidates fail not because they lack experience, but because their basics are shaky.</p>
<p>A solid foundation makes everything else easier: coding challenges, system design, and even real-world tasks.</p>
<p>Focus on learning the core building blocks:</p>
<ul>
<li><p><strong>HTML &amp; CSS</strong></p>
</li>
<li><p><strong>JavaScript fundamentals</strong></p>
</li>
<li><p><strong>One solid framework:</strong> Get really good at one stack (like React + Next.js).</p>
</li>
<li><p><strong>APIs &amp; backend basics:</strong> Learn how data flows. Understand REST APIs, authentication, and how frontend connects to backend.</p>
</li>
<li><p><strong>Databases:</strong> Know the difference between SQL and NoSQL. Be comfortable with basic queries and data modeling.</p>
</li>
<li><p><strong>Git &amp; workflows:</strong> You should be confident with version control, branching, and collaborating on code.</p>
</li>
</ul>
<p>The goal is not to know everything. The goal is to be clear, confident, and consistent in the fundamentals.</p>
<p>If your basics are strong, you’ll solve problems faster, explain your thinking better, and stand out naturally in interviews.</p>
<p>One of the most effective ways to get better at fundamentals is by practicing with flashcards. I've created a system called the <a href="https://99cards.dev/">99cards app</a> that can help with this if you want to check it out.</p>
<h2 id="heading-step-2-going-deeper-into-subject-matter">Step 2: Going Deeper Into Subject Matter</h2>
<p>By this step, you've chosen the type of company you want to work for and you're confident that you know core web development skills.</p>
<p>Next, you'll need to practice specific skills related to your company and preferred job type (for example algorithms or building features in live mode).</p>
<p>Hint: In about 80% of cases, the first step is an HR interview. This happens before the technical round. Use this opportunity to your advantage.</p>
<p>When I get invited to a technical interview, the first thing I do is ask the HR manager what I should prepare. Just a simple question – and surprisingly, I almost always get a clear answer concerning:</p>
<ul>
<li><p>What topics to focus on</p>
</li>
<li><p>What kind of tasks to expect</p>
</li>
<li><p>Sometimes even tools or formats they’ll use</p>
</li>
</ul>
<p>This gives you a huge advantage. Instead of guessing, you can prepare with intention.</p>
<h2 id="heading-interview-preparation-guide">Interview Preparation Guide</h2>
<h3 id="heading-1-answer-technical-questions-1-on-1-many-to-1">1. Answer Technical Questions (1-on-1 / Many-to-1)</h3>
<p>This is usually a conversation with a CTO or a full dev team. They'll want to understand how you think, not just what you know. Stay calm and treat it like a discussion, not an exam.</p>
<p>Keep your answers simple and structured:</p>
<ul>
<li><p>Explain your thought process step by step</p>
</li>
<li><p>Use real examples from your experience</p>
</li>
<li><p>If you don’t know something, say it and think out loud</p>
</li>
</ul>
<p>In many-to-one interviews, don’t get overwhelmed. Focus on one question at a time and engage with the person speaking.</p>
<p>For example, when I was looking to hire a web developer for my <a href="https://bettter.app/">micro SaaS</a>, I didn't care about algorithms, but I cared deeply that they have thorough Next JS skills.</p>
<p>For that, I tested candidates via flashcards in live mode.</p>
<h4 id="heading-how-to-effectively-prepare">How to effectively prepare</h4>
<p>Practice explaining concepts out loud, not just in your head. Pretend you’re teaching someone.</p>
<p>Do <a href="https://www.freecodecamp.org/news/real-world-coding-interview-for-software-engineering/">mock interviews</a> with a friend or record yourself. Focus on clarity and structure.</p>
<ul>
<li><p>Prepare stories from past projects</p>
</li>
<li><p>Review core concepts (JS, React, APIs)</p>
</li>
<li><p>Practice saying “I don’t know” confidently</p>
</li>
</ul>
<h3 id="heading-2-go-through-quizzes-with-a-timer">2. Go Through Quizzes with a Timer</h3>
<p>Timed quizzes test your speed and basics. These are often multiple-choice or short coding questions. The goal is accuracy under pressure.</p>
<p>A few tips:</p>
<ul>
<li><p>Don’t spend too long on one question. Skip and come back if needed.</p>
</li>
<li><p>Practice common patterns beforehand.</p>
</li>
</ul>
<p>Speed improves with repetition. Train like it’s a game.</p>
<h4 id="heading-how-to-effectively-prepare">How to effectively prepare</h4>
<p>Use platforms with timed tests to simulate pressure. Track your speed and accuracy.</p>
<p>Focus on common topics that appear often.</p>
<ul>
<li><p>JavaScript fundamentals</p>
</li>
<li><p>Basic algorithms</p>
</li>
<li><p>Output-based questions</p>
</li>
</ul>
<p>Practice daily in short sessions. Consistency beats long study sessions.</p>
<h3 id="heading-3-build-features-into-existing-apps-live-mode">3. Build Features into Existing Apps (Live Mode)</h3>
<p>During technical interviews, you’ll often work on a real or mock project. This tests how you read code, understand structure, and make changes safely.</p>
<p>Focus on:</p>
<ul>
<li><p>Understanding the codebase first</p>
</li>
<li><p>Asking clarifying questions</p>
</li>
<li><p>Writing clean, simple solutions</p>
</li>
</ul>
<p>Talk while you work. Explain what you’re doing and why.</p>
<h4 id="heading-how-to-effectively-prepare">How to effectively prepare</h4>
<p>Practice working with someone else's codebase (not your own). Clone open-source projects and explore them, for example.</p>
<p>Train your ability to navigate and understand code quickly.</p>
<ul>
<li><p>Read files before coding</p>
</li>
<li><p>Trace data flow</p>
</li>
<li><p>Make small, safe changes</p>
</li>
</ul>
<p>Also practice explaining your actions while coding.</p>
<h3 id="heading-4-live-code-algorithms">4. Live Code Algorithms</h3>
<p>This is where many developers struggle. You’ll solve problems in real time while explaining your thinking.</p>
<p>Don’t rush to code. First:</p>
<ul>
<li><p>Clarify the problem</p>
</li>
<li><p>Talk through your approach</p>
</li>
<li><p>Start with a simple solution, then improve it</p>
</li>
</ul>
<p>Interviewers care more about your thinking than a perfect answer.</p>
<h4 id="heading-how-to-effectively-prepare">How to effectively prepare</h4>
<p>Practice common algorithm problems regularly. Focus on patterns, not memorization.</p>
<p>Solve problems out loud, as if someone is listening.</p>
<ul>
<li><p>Arrays, strings, hash maps</p>
</li>
<li><p>Sorting and searching</p>
</li>
<li><p>Basic recursion</p>
</li>
</ul>
<p>Time yourself and review your solutions after.</p>
<h3 id="heading-5-take-home-assignments">5. Take Home Assignments</h3>
<p>These simulate real work. You get time to build something properly. This is your chance to stand out.</p>
<p>What matters most:</p>
<ul>
<li><p>Clean, readable code</p>
</li>
<li><p>Good structure and naming</p>
</li>
<li><p>Clear README with your decisions</p>
</li>
</ul>
<p>Don’t overbuild. Focus on quality, not quantity. A smaller, more focused take-home project that's done is better than an overly complex or overly ambitious one that's incomplete.</p>
<h4 id="heading-how-to-effectively-prepare">How to effectively prepare</h4>
<p>Build small projects with real-world structure. Practice finishing, not just starting.</p>
<p>Pay attention to presentation and clarity.</p>
<ul>
<li><p>Write clean commits</p>
</li>
<li><p>Add a clear README</p>
</li>
<li><p>Handle edge cases</p>
</li>
</ul>
<p>Think like you’re submitting work to a real client.</p>
<h3 id="heading-6-system-design">6. System Design</h3>
<p>This is common for mid to senior roles. You’ll design a system from scratch or improve an existing one.</p>
<p>Start simple, then expand:</p>
<ul>
<li><p>Define the requirements</p>
</li>
<li><p>Sketch a basic architecture</p>
</li>
<li><p>Discuss scaling, performance, and trade-offs</p>
</li>
</ul>
<p>Think like a builder, not just a programmer. Show how you make decisions.</p>
<h4 id="heading-how-to-effectively-prepare">How to effectively prepare</h4>
<p>Study common <a href="https://www.freecodecamp.org/news/learn-system-design-principles/">system design patterns</a> and real-world architectures. Start with simple systems.</p>
<p>Practice breaking problems into parts.</p>
<ul>
<li><p>APIs and data flow</p>
</li>
<li><p>Databases and caching</p>
</li>
<li><p>Scaling basics</p>
</li>
</ul>
<p>Watch system design interviews and practice explaining your ideas clearly.</p>
<p>For each of these interviews you can use my free <a href="https://99cards.dev/checklists">checklists</a> to prepare even more effectively.</p>
<h3 id="heading-a-fun-story">A Fun Story</h3>
<p>Once I applied to a front-end web developer job at company that focuses on building Awwwards-style websites. The tech interview was take home assignment: I had to rebuild Figma design into a modern GSAP-animated website. I failed to do that.</p>
<p>In 18 months, the same company had an open position. I applied. Can you guess what the tech assignment was? 😄</p>
<p>It was the same.</p>
<p>Draw your own conclusions.</p>
<h2 id="heading-most-important-part">Most Important Part</h2>
<p>Here's a helpful framework to keep in mind when you're going through this process:</p>
<h3 id="heading-pdca-framework">PDCA Framework</h3>
<p>P - plan<br>D - do<br>C - check<br>A- act</p>
<p>It's my go to framework for every subject I want to get better at. Let me explain how to apply this to tech interviews.</p>
<p><strong>Plan:</strong> in this stage, you plan your preparation routine and work on your interview performance game.</p>
<p><strong>Do:</strong> in this stage, you're actually trying to do what you have planned.</p>
<p><strong>Check:</strong> here, you compare your Plan and Do stages. Analyze the difference and see what you can improve.</p>
<p><strong>Act:</strong> finally, make adjustments that will help improve Plan 2.0.</p>
<p>Repeat until you get the desired result.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Technical interviews are not about being perfect. They’re about showing how you think, communicate, and solve problems under pressure. The more you practice the <em>right way</em>, the more confident and natural you’ll feel.</p>
<p>Focus on the basics, prepare for your target company, and train in real interview conditions. If you do that, you’ll already be ahead of most candidates.</p>
<h3 id="heading-ps">P.S.</h3>
<p>If you want to speed up your prep and stop guessing, I put together a complete toolkit for you.</p>
<p>It contains:</p>
<ul>
<li><p>Interview Checklists</p>
</li>
<li><p>CV Template</p>
</li>
<li><p>Cover Letter Template</p>
</li>
<li><p>List of Top 50 Remote-First Companies</p>
</li>
<li><p>Job Application Tracker Spreadsheet</p>
</li>
</ul>
<p>You can find it here: <a href="http://99cards.dev/toolkit"><strong>99cards.dev/toolkit</strong></a></p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
