CYF Docs

Technical Interviews

All applicants will be expected to do any necessary research in these areas before applying. They are examples of questions that you should be able to answer in a technical interview with us. During the interview, we will not be looking for ‘perfect’ answers but we need to see that you have spent some time considering the areas below and are able to successfully drive your own research.

Coding Basics

  • What does it mean to write clean code?
  • What does ‘separation of concerns’ mean to you?
  • What are some of the most important debugging techniques?
  • What is the role of Git in software development, can you give us some best practices working with Git?
  • What is refactoring and why would you want to do it?


  • Describe the Javascript closure/scope system.
  • Describe the Javascript array reduce function and demonstrate using it to solve a problem.
  • What is a Javascript ‘runtime environment’?
  • Describe recursion in Javascript.
  • What is the Javascript Type System? How many types are there?


  • What is the role of a Component in React?
  • What does it mean to ‘build’ a React app (for example, by running npm run build)?
  • What are some good practices when deciding how to structure a large React application?
  • Describe the React Hooks lifecycle. What are some common Hooks?
  • How would you debug a slow React application?


  • Describe the role of npm, node_modules, package.json and package-lock? How do they work together? What value do they provide?
  • What is a REST API and what are some important considerations to keep in mind when deciding which endpoints to build?
  • What is the purpose of documentation, what does ‘good documentation’ mean to you?
  • At a high level, describe the difference between ‘front end’ Javascript and ‘back end’ Javascript?


  • Why is testing important?
  • What tools might you use to test different types of application?
  • What is the difference between unit testing, integration testing and end-to-end testing?
  • What is the role of QA on a product team?
  • What is ‘code coverage’ in testing?


  • Talk a little bit about the separation of data and code in an application?
  • What is a ‘data format’, can you give us some examples?
  • What is a database?
  • What is the difference between SQL and MongoDB?
  • How would you provision a new database from scratch?

Agile & Proactivity

  • What is a ‘product team’ and how is it usually structured?
  • What is a ‘ticket’ in a product team?
  • How do you know when a feature you are working on is ‘done’?
  • If you were stuck on a ticket, what are some good ways to ask for help?
  • Describe a time you were stuck on something, what did you do to unblock yourself?

Security & Infrastructure

<aside> ❗ We do not touch on this area much during the course, this area especially will require you to carry out independent research.
  • What does it mean to ‘deploy’ your application?
  • Describe the difference between local and non-local environments.
  • What is a Deployment Pipeline?
  • What is Docker? When might you use it?
  • How do environment variables work and what is an .env file?