---
title: "Interviewer Notes - 1"
description: "A practical front-end interviewer's notebook covering warm-up questions, technical topics (Session/Cookie, performance, SEO, testing, DevOps), and JavaScript/CSS/Vue coding challenges — useful whether you're preparing to interview or conducting one."
canonical_url: "https://blog.markkulab.net/en/post/front-end-interview"
author: "Mark Ku"
author_url: "https://blog.markkulab.net/en/author/mark-ku"
site: "Mark Ku's Tech Notes"
date_published: "2020-07-24 15:01:35 +0300"
category: "Frontend"
tags: ["interview", "frontend", "javascript", "vue", "css", "devops"]
language: "en"
license: "CC BY 4.0"
license_url: "https://creativecommons.org/licenses/by/4.0/"
attribution: "when reusing or quoting, credit the author and link back to the original"
---

# Interviewer Notes - 1

## Front-end-interview

## Opening
- Please introduce yourself from a technical perspective — walk me through what you've worked on over the past few years. Keep it within five minutes.

## Warm-up
- Interviewer self-introduction: role overview, responsibilities, and what we're looking for in this position
- Ask the candidate to highlight relevant experience based on what was just described
- What was your role at your last job? Can you walk me through a project you're most proud of?
- What are your expectations? What's the one thing you most want to learn this year?
- Have you been following any new technologies lately? Any takeaways? Have you tried them out? Any open-source work to share?
- Do you enjoy writing code? What aspect of coding do you find most interesting?
- Whiteboard: write a string reversal function
- What did you learn from your previous job?
- Have you been reading any programming-related books recently?

## What to observe
- Attitude
- Genuine interest in front-end development
- Willingness to learn new things
- Culture and communication fit with the team
- Whether foundational skills are solid enough

## Technical Questions (target: 2+ years of experience)

### Session / Cookie
- After a user logs in on one page, how does the next page know they're authenticated?
- Where do you typically store frequently used user data?

### Performance
- Have you implemented caching before? When should caching be used?
- How do you optimize a website's static assets? How do you bundle them — into how many files, and how do you decide? How do you debug after bundling?
- If a static file is cached and a new version is released, how do you force an update? Version numbers in filenames? Any other approaches?
- Have you used a CDN before?
- Walk me through a few techniques you've used to speed up page load times.
- An article-listing website needs to frequently query 50+ posts for the homepage — how would you handle that?
- Have you ever dealt with complaints about slow page loading? What was the situation and how did you resolve it? Where do you look first?
- You have around 500 records to display paginated on a web page — how would you approach it? What about 50,000 records?
- When do you populate an in-memory cache? If it sacrifices startup time and slows down development, how do you handle that?
- When there are multiple application servers, how do you handle caching? If the cache lives in a database, who is responsible for updating it?
- Have you ever encountered slow database queries in production? How would you investigate? How do you determine whether the bottleneck is network, query, or something else?

### SEO
- How does fetching data via Ajax affect SEO?
- What are the key factors in SEO? What optimizations have you implemented? What tools have you used?  
  Meta tags, keywords, title, responsive design, content quality, server-side rendering, routing, URL rewrite, canonical URL, user experience, robots.txt
- When a site is under maintenance, crawlers may still visit — how do you handle that?

### Testing
- What languages/frameworks have you written tests in?
- If the function you're testing calls `updateDB`, how do you handle that in your test?
- What is TDD? Does it make a practical difference compared to writing tests after the code?
- Have you used any design patterns specifically to support TDD?
- What about BDD?
- What end-to-end testing tools have you used?

### Data Analysis
- What is the purpose of using GA? Have you collected custom events with GA? How?
- Have you used the ELK Stack?

### Design
- If you needed to log the input and output of every request, how would you implement that?
- When would you use an interface?

### DevOps
- What is DevOps?
- Have you used any CI/CD tools? What are the benefits?
- Have you used cloud services? What are the advantages?

### Debugging
- If a user's order data disappeared on the frontend, where would you start looking?
- How would you query logs across 10 servers?

### Advanced
- Three clients — a website, a mobile browser, and a mobile app — all consume the same API. The mobile app gets a new version that requires a different data format for one field. How do you handle this without breaking the others?
- Have you built a real-time application? If a backend service needs to push a message to a specific user, Andy, how would you route it? How do you know which connection ID maps to Andy? If the mapping is stored per-server and there are multiple servers, how do you resolve the mapping?

### Coding

#### JavaScript
- What is the difference between placing `<script>` in the `<head>` vs. at the end of `<body>`? What about `<link rel="stylesheet">`?
- What is the difference between `<script async>` and `<script defer>`?
- Implement: `duplicate([1,2,3,4,5])` → result: `[1,2,3,4,5,1,2,3,4,5]`
- `==` vs. `===`
- How do you make a cross-origin AJAX request from client A to domain B?
- Explain closures
- Front-end frameworks: React — state vs. props; Angular — directives
- Node.js / Express: how does Express handle errors, requests, responses, and `next`?
- Deferred / Promise: what are `resolve` and `reject`? Where have you used Promises?
- Explain JavaScript hoisting
- Primitive types vs. reference types
- List the differences between regular functions and arrow functions
- Walk me through what happens when you type "google.com" into the browser address bar and press Enter
- Why is `setInterval` not precise with timing?
- What is the difference between `var` and `let`?

#### CSS
- ID selectors vs. class selectors
- How do you debug CSS issues?
- Which CSS frameworks have you used?
- How does responsive web design (RWD) work?
- CSS sprites
- Icon fonts
- List and describe the CSS `display` property values you know

#### Vue
- What is your understanding of single-page applications (SPA)? What are their advantages and disadvantages?
- What is the difference between `v-show` and `v-if`?
- How do you dynamically bind `class` and `style`?
- What is the difference between `computed` and `watch`? When would you use each?
- How do you understand the Vue component lifecycle?
- What are the different ways components can communicate in Vue?
- How do you implement inheritance in Vue?
- What is the difference between `Vue.extend` and mixins?
- If a Vue observed object is mutated but the view doesn't update, what would you do?

### Reference
https://github.com/h5bp/Front-end-Developer-Interview-Questions
https://github.com/Asing1001/front-end-interview
https://juejin.cn/post/6844903918753808398

---

## About this article and its author

Originally published on [Mark Ku's Tech Notes](https://blog.markkulab.net/en/post/front-end-interview)

License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) — when reusing or quoting, credit the author and link back to the original

### About the author

**[Mark Ku](https://blog.markkulab.net/en/author/mark-ku)** — Software Solution Provider

- 10+ years senior software engineer, now an AI Builder
- Focused on large-platform architecture — North-American e-commerce, AI SaaS subscription billing
- Combining AI Agents and automation to build evolvable product foundations

### Free tools built by the author

All of these are free to use:

- [Free PDF Sign Tool](https://blog.markkulab.net/en/tools/pdf-sign): Online PDF sign tool — draw, type, or upload a signature, then drag, resize, and download. Everything runs in your browser; nothing is uploaded.
- [VS Code Refactory](https://blog.markkulab.net/en/tools/refactory): Refactory is a VS Code refactoring extension: 34 actions plus a 37-rule code-smell inspection layer with a Code Health dashboard, across 18 languages, backed by 534 tests. It learns your repo's conventions: where interfaces live, where DI is registered, whether 'use client' belongs. It ranks files by git churn × complexity so you know what to fix first, and hands any smell to the Claude Code already on your machine. Free to use, and your source never leaves your computer.
- [DB-Kit Database Manager](https://blog.markkulab.net/en/tools/db-kit): DB-Kit is a lightweight, cross-platform database manager built with Tauri + Rust + React. Manage MySQL, MariaDB, PostgreSQL, SQL Server, Oracle, SQLite, MongoDB, Redis, Kafka, Elasticsearch and RabbitMQ from one consistent interface: passwords encrypted in the OS keychain, SSH tunnels, full CRUD, a visual query builder, stacked multi-statement result sets, cross-connection data transfer and compare/sync, Excel / CSV import & export, visualized execution plans, ER diagrams, scheduled backups, SQL stress testing with p50–p99 latency percentiles, a 15-rule SQL review engine, Kafka message browsing with monitoring & alerts, a bilingual UI (Traditional Chinese / English), a built-in AI assistant (natural-language SQL, AI review and tuning advice) and the dbk CLI. Free and open source (MIT), with installers for Windows, macOS and Linux.
- [VS Code Super Mermaid](https://blog.markkulab.net/en/tools/super-mermaid): Super Mermaid is a VS Code extension for beautiful Mermaid diagrams out of the box: auto-colored live preview, mouse pan & zoom, high-res PNG / SVG export, 21 templates and multiple themes. Free and open source (MIT).
- [React Super Mermaid](https://blog.markkulab.net/en/tools/react-super-mermaid): react-super-mermaid is an open-source React component library: render beautiful Mermaid diagrams with a single <MermaidViewer>, with built-in colorful / sketch themes, pan & zoom, in-diagram search, and high-res SVG / PNG export. Lightweight, SSR-safe, fully typed. Free and open source (MIT).
- [Jira / Confluence Super Mermaid](https://blog.markkulab.net/en/tools/jira-super-mermaid): An Atlassian Forge app: write Mermaid syntax directly inside a Jira issue or a Confluence page and get flowcharts, sequence diagrams, state machines and Gantt charts. 11 diagram types, SVG / PNG export, light and dark themes, full CJK support. Runs on Atlassian: your diagrams live in your own site and the app calls no third-party service. Free, coming soon to the Atlassian Marketplace.
- [Mermaid Live Preview](https://blog.markkulab.net/en/tools/mermaid-preview): Write Mermaid in your browser, see it render instantly, and share the whole diagram as a single link. No sign-up, nothing uploaded to a server, and mermaid.live share links work as-is.
- [React Intl Phone Number](https://blog.markkulab.net/en/tools/react-intl-phone-number): react-intl-phone-number is an open-source React component: framework-agnostic and antd-free, with E.164 in/out, a searchable flag / country-code dropdown, configurable validation levels (strict / mobile-strict / loose), themeable CSS, and i18n — phone logic powered by google-libphonenumber. Lightweight and fully typed. Free and open source (MIT).
- [Uptime Kuma Cluster](https://blog.markkulab.net/en/tools/uptime-kuma-cluster): Turn single-node Uptime Kuma into a highly available cluster: OpenResty + Lua smart load balancing, shared MariaDB state, health checks and automatic failover, plus cluster-management REST APIs. One Docker Compose command to start. Free and open source (MIT).
- [Special Education](https://blog.markkulab.net/en/education): Learning materials crafted for special education students

### Daily podcasts

- [Mark's Tech Insights — Daily AI News](https://blog.markkulab.net/en/category/tech-news): Daily curated AI and tech trends. Catch the latest developments via audio summaries — covering AI applications, software architecture, DevOps, and engineering practice. — RSS: https://blog.markkulab.net/feed.xml
- [AI股市蝦聊](https://blog.markkulab.net/en/category/ai-stock-chat): Every trading day, an AI-analyzed take on the Taiwan stock market, delivered as a two-host conversation covering the session and the next-day outlook. — RSS: https://blog.markkulab.net/ai-stock-chat/feed.xml
- [開源好物週報](https://blog.markkulab.net/en/category/open-source-weekly): A weekly two-host pick of free open-source tools surfaced from real Hacker News, GitHub, and Reddit buzz — what pain they solve and the fastest way to get started. — RSS: https://blog.markkulab.net/open-source-weekly/feed.xml

### Newsletter

[Subscribe to the newsletter](https://blog.markkulab.net/en/subscribe) — Be the first to know about new posts. No spam, unsubscribe anytime.
