Mr. Latte


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%.
  • async vs defer when 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 and var hoisting.
  • 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, and reduce.
  • 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 final keyword.
  • 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.com into 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 merge work — 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.
  • useEffect vs useLayoutEffect.
  • What is the Virtual DOM?
  • Callbacks vs Promises.
  • Why className instead of class.
  • useMemo vs useCallback.
  • What is Next.js?
  • React Hooks.
  • useMemo vs useCallback (again).
  • What is memoization?
  • React.memo vs useMemo.
  • Why use the key prop.
  • Prop drilling and how to solve it.
  • What is React.FC?
  • What is a pure component?
  • Class components vs functional components.
  • How does setState actually work?
  • What is React Query?
  • useEffect vs useLayoutEffect (again).
  • Redux — pros, cons, and the useReducer hook.
  • Context API vs Redux.
  • What is Recoil?
  • Next.js getStaticProps.

HTML markup

  • What is { box-sizing: border-box; } — pros and cons?
  • inline vs inline-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.