Skip to content

Take-home interview assignment used in our interview process

License

Notifications You must be signed in to change notification settings

bytebase/interview

Repository files navigation

Take-home interview assignment

This is the home for Bytebase take-home interview assignment. Each subfolder contains an individual assignment. During our interview process, we will give candidate one of these assignments and let her/him work on it for a week offline. Our followup technical interview will discuss the various aspects about the solution the candidate built.

Why we choose this approach

We have conducted hundreds of technical interviews in our career, mostly in the form of whiteboard live coding. While we acknowledge the merits of live coding interview (we do find some candidates with principal eng title from BigCo can't pass trivial coding test), it has huge limitation. In particular, the skill the live coding evaluates is distantly far from the skill required in the daily work.

Whiteboard live coding requires to solve a very specific problem in a very constrained timeframe without external resources. It looks for very specific coding problem solving skill under intensive pressure..

One would argue that's the trait separating the best from the good. Probably true for drafting people for coding competitions, not so much for assembling a team to build a product. Think about how we build a feature normally, we research the domain from the open web, learn our competitors, discuss with our peers, design the UX and interaction, write code, release and refine. Coding is just part of the process, and most likely we would never encounter any coding question in our work (have you ever written dynamic programming algorithm besides interview?). Even encountered, those arcane coding questions are just one stackoverflow away.

Daily work requires solving a semi-specific problem in a semi-constrained timeframe with abundant external resources. It looks for general product/engineering problem solving skill under an open-ended environment.

Most problems do have a defined domain, but there remains many uncertainties, and some of those revealation may totally change the scope. We do have a deadline, but at least it's in days instead of in minutes. And more importantly, we are solving together with the open web, the people around us.

In whiteboard live coding, both the problem and solution are already pre-determinted. While in take-home assignment, we only define a broad scope and some requirements, it's up to the candidate to craft the solution. That's what we expect for peers at Bytebase, to de/refine the problem, own the solution, deliver enlightenment.

Why we open source

  1. The main Bytebase codebase is also open source. We believe in building in the public.
  2. Design good take-home assignments is no easy task. Open sourcing our assignments gives more chance for improvements.
  3. It's convenient for our candidate to checkout the problem.

FAQ

Q: Are you worrying about candidate preparing the problem in advance to gain an edge?

A: Not at all. One can only prepare for couple weeks, but we are evaluating candidate's years of accumulation.

Q: I have new ideas, suggestions.

A: Opening new issue, creating PR. We will respond in a timely fashion. Thanks in advance.

Q: I want to apply.

A: Checkout https://bytebase.com/jobs and mail us at hr@bytebase.com with your resume/portfolio/blog etc... (anything you feel proud)

About

Take-home interview assignment used in our interview process

Topics

Resources

License

Stars

Watchers

Forks