One thing matters
Your repo should prove this: a recruiter can clone it, run one command to build it, then start one binary.
go run is fine while coding, but it does not create the executable you submit. Use go build for the shippable path.
What to ship
A strong final repo is boring in a good way. It has a Go 1.27 module, a clear main package, typed handlers, useful errors, slices or maps, one goroutine or channel use, and proof that the API works.
Keep the shape simple. Do not hide your service behind too many folders just to look senior.
Good repo shape
This is enough for a small internship-ready backend project. Adjust names for your idea, like mess-menu-api, upi-splitter, or placement-tracker.
mess-menu-api/
go.mod
main.go
internal/
menu/
handler.go
store.go
errors.go
README.md
Makefile
.gitignoreBuild the binary
Do each one yourself, then tap it to tick it off. The ticks are only a checklist for you: they are not marked or scored.
0 of 5 done
go mod tidy
go build
./mess-menu-apiREADME that works
Your README should answer four questions fast: what it is, how to run it, how to build it, and how to test one endpoint.
Use commands that you have actually run on your laptop. If AI writes your README, check every command before committing.
# Mess Menu API
Small Go 1.27 HTTP service for storing hostel mess menu items.
## Requirements
Go 1.27 or later
## Run during development
go run .
The service listens on :8080.
## Build one binary
go mod tidy
go build
./mess-menu-api
## Try it
curl http://localhost:8080/health
curl http://localhost:8080/menuUse a Makefile
A Makefile gives reviewers short commands without making them learn your folder structure. Keep it tiny.
If you are on Windows without make, the README commands still matter. The Makefile is a helper, not the only way to run the project.
run:
go run .
build:
go mod tidy
go build
test-api:
curl http://localhost:8080/health
curl http://localhost:8080/menuCommon shipping mistakes
Do not submit only screenshots or only a deployed URL. The task is a public repository someone can inspect and run.
Do not leave your README saying go run if your project needs environment variables, a port, or seed data. Write the real steps. Also avoid copying old Go advice blindly; Go 1.27 modules may tidy require blocks differently than old tutorials show.
Do this now
Do each one yourself, then tap it to tick it off. The ticks are only a checklist for you: they are not marked or scored.
0 of 5 done