Key Evaluation Criteria for Software Engineer Interviews
Fundamentals
Engineering skill
- Can the candidate clearly explain the foundations of computer science — algorithms, data structures, and related core concepts?
- Can they clearly explain the purpose and importance of the features they owned on their projects?
- Can they clearly explain how the technologies they used work and how to apply them?
- Do they have the reasoning and problem-solving skills to work through hard problems?
- Can they explain the process they used to solve a hard problem in a way another person can easily follow?
Growth potential
- Can they clearly explain their outcomes on past projects and how they got there?
- Can they clearly explain their strengths and weaknesses as a collaborator?
- Do they have meaningful experience solving problems on their own initiative when things went wrong on a project?
- Do they understand the nature and daily work of the role they’re applying for?
- Did they prepare for the interview — self-introduction, likely questions, etc.?
Work attitude
- Do they have a concrete plan and direction for becoming a better developer?
- Do they have the habits required to keep growing — studying, writing things down, and so on?
- Do they have the persistence to push through hard problems?
- Do they have the fundamentals and habits to learn new technology quickly?
Technical topics
Language
- Explain stack and queue. Explain other data structures.
- Password hashing algorithms.
- Difference between a class and an instance.
- What is TDD? Unit test vs integration test.
- What is OOP? Four main characteristics / core concepts.
- Functional programming.
- What is an abstract class?
- What is an interface?
- Overloading vs overriding — difference and explanation.
- Compilation vs interpretation — difference and explanation.
- What is a buffer?
- Explain design patterns, and the singleton pattern.
OS
- Process vs thread — difference and explanation.
- Data types on a 32-bit CPU, including how many bytes an int is and why.
- Methods of inter-process and inter-thread communication.
- Synchronization problems.
- What is deadlock, and how do you resolve it?
- Race condition, need for synchronization, and critical section.
- What is starvation?
- What is stack overflow?
- What is heap overflow?
Network
- What is HTTP?
- HTTP verbs, their uses, and idempotency.
- PUT vs PATCH.
- Response codes, their uses, and differences.
- HTTP vs HTTPS.
- SSL/TLS handshake.
- Differences across HTTP versions.
- HTTP headers.
- What is a WebSocket?
- TCP vs UDP, and how reliability is guaranteed.
- 3-Way and 4-Way Handshake.
- What is caching?
- URL vs URI.
- What is a proxy?
HTML, CSS
- Difference between div and span.
- What is flexbox layout? Difference vs table, position, etc.
- 100vh vs 100%.
asyncvsdeferwhen including a script in HTML.- px, em, rem differences as size units.
- vw vs vh.
- Browsers’ default font size (16px).
- rem units — what happens if you set 8em?
- What does px really mean? Problems with using px, and when to use it for sizing.
- Semantic markup.
- HTML document structure.
- What is the DOM, and how do you traverse it?
- CSS selector specificity.
- What is flexbox?
Javascript
- Sync vs async, blocking vs non-blocking.
- Data types.
- undefined vs null.
- What is a Promise — then, catch, finally.
- What is an IIFE (Immediately Invoked Function Expression)?
- Explain closures and where they’re used.
- Benefits of
const, and thread safety. var,let,const— differences andvarhoisting.- ES5 vs ES6.
- Chaining.
- localStorage vs sessionStorage.
- Event bubbling vs capturing.
- One-way vs two-way binding.
- What is
this? call,apply,bind.- What is a callback function, why use it, and how to escape callback hell.
- How to convert an async function into sync behavior.
- What is AJAX?
- Explain
map,forEach, andreduce. - What are the call stack and heap?
- What is JWT? What is a refresh token?
- Threads in JavaScript.
- Event loop and task queue.
- Prototype and prototype chain.
==vs===.- Arrow functions.
Typescript
- Overall overview and how it differs from JavaScript.
- Generics.
- Access modifiers — public, private, protected — and usage.
- What is
static?
Java
- Overloading vs overriding.
- Interface vs abstract class.
static.- Access modifiers — private, public.
- Getters and setters.
- Dependency inversion principle.
- map vs set in data structures.
- Hashtable vs HashMap.
- Spring Boot vs Spring.
- Is Java sync or async? Blocking or non-blocking? How do you use Future to write async code?
- The
finalkeyword. - equals and hashCode usage.
- Reference types vs primitive types.
- What is dependency injection?
- What is IoC (Inversion of Control)?
Database
- What is an index? Why does an index make search fast?
- Clustered vs non-clustered indexes.
- Binary search.
- Can you explain common sorting approaches?
- Inner join vs outer join.
- Primary key, foreign key, compound key.
- What is a transaction, and why do you need transaction processing?
- RDB vs NoSQL.
- Difference between a view and a table, and when to use each.
Maintenance
- What is Redis used for as a cache server?
- What should you watch out for with Redis — single-threaded nature?
- Message queue (MSMQ).
- How do you ensure sequential processing when a high volume of jobs comes in?
- How do you handle logging?
- For heavy traffic across multiple servers, what software or hardware would you use?
Version Control
- Why use Git?
- commit, push, merge, rebase — differences.
- Why do conflicts happen, and how do you resolve them?
- Do you use Git Flow? Describe a branching workflow you’ve used.
Know-how, misc
- Microservice architecture — have you built one?
- How would you migrate an existing monolith to microservices?
- When you type
estgames.cominto a browser, walk through what happens to render the page. - How would you handle a page under heavy load?
Algorithms
- Fastest way to shuffle numbers from 1 to 10,000.
- An algorithm to check whether many running services are healthy.
- Call by value vs call by reference.
- BFS vs DFS — explanation and difference.
- Dynamic programming.
- How does
git mergework — or how would you implement merging? - Time complexity of quicksort.
React
- React pros and cons — why use it?
- React component lifecycle.
- Flux pattern, and how MVVM differs from Flux.
useEffectvsuseLayoutEffect.- What is the Virtual DOM?
- Callbacks vs Promises.
- Why
classNameinstead ofclass. useMemovsuseCallback.- What is Next.js?
- React Hooks.
useMemovsuseCallback(again).- What is memoization?
React.memovsuseMemo.- Why use the
keyprop. - Prop drilling and how to solve it.
- What is
React.FC? - What is a pure component?
- Class components vs functional components.
- How does
setStateactually work? - What is React Query?
useEffectvsuseLayoutEffect(again).- Redux — pros, cons, and the
useReducerhook. - Context API vs Redux.
- What is Recoil?
- Next.js
getStaticProps.
HTML markup
- What is
{ box-sizing: border-box; }— pros and cons? inlinevsinline-block.relative,fixed,absolute,static— differences.- What CSS framework have you used locally or in production, and what would you improve?
- Have you used modern CSS Flexbox or Grid specs? Explain.
- Responsive vs adaptive design.
- Have you done retina graphics? If so, when and using what techniques?
- What is
srcset? - What is SVG?
- Why use
translate()instead of absolute positioning — and vice versa? - IE11 compatibility techniques.
Back-end
- HTTP response codes 200, 404, etc.
- Apache vs Tomcat.
- Cookies vs sessions.
- JWT — cookie vs session vs JWT as authentication; refresh token.
- Authentication vs authorization.
- Best practices for authentication and password management.
- Managing code that must not run concurrently.
- What is a preflight request?
- What is OAuth?
- Token-based authentication — Basic, Bearer.
Front-end
- From a network perspective, what happens in order when you access a website?
- Explain the browser’s rendering pipeline.
- How does a browser work?
- Webpack, Babel, polyfills.
- CSR vs SSR.
- SEO basics.
- CORS — explanation.
- Cookies vs sessions (front-end angle).
- XSS attacks.
- Local Storage vs Session Storage vs cookies.
- Token-based authentication.
- Cross-browser compatibility.
- WebSockets.
- Website performance optimization.
- How to measure website performance.
- How to reduce bundle size.
- What is code splitting?
- HTTP (HyperText Transfer Protocol).
- What are web standards?
- Reflow and repaint.
- What is Storybook?
- Buffering — when does it happen?
- V8 engine — inline caching, TurboFan.
- MVC vs MVVM.
- Web server vs WAS (web application server).
- What is NestJS, and what makes it distinct?
- Promise vs callback.
- GraphQL vs REST API.
- What is a UUID?
Need a freelance expert to plan and build your product?
Available to founders, teams, and businesses from product framing through launch.