Skip to content

kohofinancial/interview-env-check

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KOHO Interview Environment Check

Verify that your development environment has all the tools needed for the KOHO pair-programming interview. Run this before your scheduled interview to surface any issues early.

Windows Users

This project requires a Unix-like environment. If you are on Windows, please use WSL (Windows Subsystem for Linux) and run all commands from within your WSL terminal. Install Docker Desktop with the WSL 2 backend enabled.

Quick Start

git clone <repo-url>
cd interview-env-check
make check

Expected runtime: under 2 minutes (first run may be slower due to Docker image pulls).

What Gets Checked

Check What it verifies
Go Go 1.21+ is installed (1.25.x is downloaded automatically)
Docker Docker is installed and the daemon is running
Docker Compose docker compose (v2) CLI is available
Make GNU Make is installed
jq jq is installed
git git is installed
bash bash is available (used by Makefile)
gotestsum go tool gotestsum works
Port 8888 Port 8888 is free for the service
Docker build Multi-stage Alpine Docker build completes
Service startup Container starts and responds on localhost:8888
Integration tests gotestsum can run tests against the running service

If a Check Fails

Go version is wrong

You need Go 1.21 or newer. Go 1.21+ automatically downloads the exact version required by the project (1.25.8), so you do not need to install that version yourself.

Install or update Go from https://go.dev/dl/. If you use a version manager:

  • goenv: goenv install 1.25.8 && goenv local 1.25.8
  • asdf: asdf install golang 1.25.8 && asdf local golang 1.25.8
  • homebrew (macOS): brew install go

Verify: go version should show go1.21 or newer.

Docker is not installed or not running

Install Docker Desktop from https://docs.docker.com/get-docker/. Make sure the Docker daemon is running (Docker Desktop must be open on macOS/Windows).

Verify: docker info should not produce errors.

Docker Compose v2 is missing

Docker Compose v2 comes bundled with Docker Desktop. If you installed Docker Engine manually, install the Compose plugin: https://docs.docker.com/compose/install/

Verify: docker compose version should show a version.

Make is not installed

macOS includes Make via Xcode Command Line Tools:

xcode-select --install
  • Ubuntu/Debian: sudo apt-get install make
  • Fedora: sudo dnf install make

Verify: make --version should print a version.

git is not installed

  • macOS: xcode-select --install (includes git)
  • Ubuntu/Debian: sudo apt-get install git
  • Fedora: sudo dnf install git

Verify: git --version should print a version.

bash is not installed

bash is pre-installed on macOS and most Linux distributions. If missing:

  • Ubuntu/Debian: sudo apt-get install bash
  • Fedora: sudo dnf install bash

Verify: bash --version should print a version.

curl is not installed

curl is used internally by the environment check to verify the service is responding. It is pre-installed on macOS.

  • Ubuntu/Debian: sudo apt-get install curl
  • Fedora: sudo dnf install curl

Verify: curl --version should print a version.

jq is not installed

  • macOS: brew install jq
  • Ubuntu/Debian: sudo apt-get install jq
  • Fedora: sudo dnf install jq

Verify: echo '{"a":1}' | jq .a should print 1.

Port 8888 is in use

Find what is using the port:

  • macOS: lsof -i :8888
  • Linux: ss -tlnp | grep 8888

Stop that process before running the interview.

Docker build fails

Common causes:

  • Docker daemon not running
  • No internet access (needed to pull golang:1.25.8-alpine)
  • Insufficient disk space

Check docker compose logs for details.

gotestsum is not available

Run go mod download to fetch tool dependencies, then retry.

Verify Your Coding Assistant

We expect you to use a coding assistant during the interview (e.g. Claude Code, GitHub Copilot, Cursor, aider, or similar). We are agnostic about which one — use whatever you are most comfortable with.

make check cannot detect this automatically, so please verify it manually by trying this quick exercise against the repo:

  1. Start the service: make start
  2. Ask your coding assistant to add a GET /ping endpoint to main.go that returns {"message": "pong"}
  3. Rebuild and test: make start && curl http://localhost:8888/ping
  4. Clean up: make stop

If your assistant can read the code, suggest changes, and help you iterate, you are all set.

Other Make Targets

make dep     # Run go mod tidy && go mod vendor
make start   # Start the service in Docker
make test    # Run integration tests via gotestsum
make stop    # Stop the service
make clean   # Remove containers, volumes, and images
make help    # Show all targets

Questions?

If you cannot resolve an issue, please reach out to your interview contact. We are happy to help before the interview so the pairing session goes smoothly.

About

Pre-interview environment check — candidates run make check to verify all dependencies before their live pair-programming interview

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors