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.
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.
git clone <repo-url>
cd interview-env-check
make checkExpected runtime: under 2 minutes (first run may be slower due to Docker image pulls).
| 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 |
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.
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 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.
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.
- 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 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 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.
- 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.
Find what is using the port:
- macOS:
lsof -i :8888 - Linux:
ss -tlnp | grep 8888
Stop that process before running the interview.
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.
Run go mod download to fetch tool dependencies, then retry.
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:
- Start the service:
make start - Ask your coding assistant to add a
GET /pingendpoint tomain.gothat returns{"message": "pong"} - Rebuild and test:
make start && curl http://localhost:8888/ping - Clean up:
make stop
If your assistant can read the code, suggest changes, and help you iterate, you are all set.
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 targetsIf 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.