What do reviewers read from the commit history of a take-home repository?
answer
- Optional signal, near-zero cost
- The order you attacked the problem
- Ignore file in the first commit
- Secrets stay out of the whole history
- History must agree with the README's hours
basics
~20 sCommit history shows how you work. Incremental commits with real messages let a reviewer follow your scoping decisions, while one giant dump, committed secrets or stray build artefacts quietly cost signal you did not need to lose.
solid answer
~40 sNot every reviewer opens the history, but the ones who do are looking for the same thing the code cannot show them: the order in which you made decisions. Commit in logical steps with messages that say what changed and why, so a reviewer can watch the core path come together before the polish. Keep generated files, dependency directories, local configuration and anything resembling a credential or real dataset out of the repository. Do not fabricate a tidy history after the fact - timestamps and message patterns make it visible, and it is a strange risk to take over something optional. The history also cross-checks your README: a submission claiming about six hours against nine days of scattered commits contradicts itself, and reviewers notice the contradiction more often than they notice good history.
go deeper
Add an ignore file before your first commit, keep credentials and generated files out of the repository, and write messages that say what changed rather than update or wip.
Explain what a reviewer infers from the sequence: whether you built a skeleton and deepened it, where error handling and tests arrived, and how the timestamps compare with the hours your README claims.
Show judgment about when to rewrite history for readability versus when a rewrite becomes fabrication, and how you keep the record consistent with what you tell the reviewer in writing.
Own the call on how much of your working process to expose: history that shows real iteration is honest signal, history curated into a story is a credibility risk, and the two look similar from outside.
## Why an optional signal is worth ten minutes Many take-home reviewers never look at the version-control history; some open it first. Because the cost of getting it right is close to zero and the downside of getting it wrong is concrete, it is one of the better-value habits in take-home craft. ## What good history communicates A sequence of commits is a record of the order in which you attacked the problem. A reviewer scanning a submission for a remote-first scale-up's data brief - ingest, deduplicate, aggregate - can see whether you built a skeleton and deepened it, or thrashed. Roughly a dozen commits across a six-hour build, each with a message naming a behaviour rather than a file, reads as an engineer who works in steps. Messages that only say update, fix or wip forfeit that entirely. It also carries the decisions the README summarises. When a commit message says that deduplication now keys on a composite identifier because raw event ids repeat across files, the reviewer sees a reasoned choice at the moment it was made. ## The things that actually cost you **Secrets and real data.** A committed key, token, connection string or extract of real personal data is the one take-home mistake that can end a process on its own, because it is read as a judgment failure rather than a style preference. Check what you are adding before you add it, and keep an ignore file from the first commit rather than cleaning up later - removing a secret in a later commit does not remove it from the history. **Generated noise.** Dependency directories, build output, editor and OS files, local environment files. They bloat the repository and make the diff unreadable, and their presence suggests the same thing will happen in a real codebase. **One squashed commit for everything.** Legal, and sometimes required if the employer asks for an archive rather than a repository, but it discards a free signal. If the submission format forces it, say in the README how you worked. **A contradiction with your README.** This is the one that bites. A candidate who spent roughly 31 hours across nine days, built far past the brief, and then wrote about six hours in the README leaves 17 commits stretching across those nine days as evidence. The overbuild was a scoping problem; the mismatch turns it into a credibility problem, which is much worse and much harder to recover in a follow-up conversation. If you overshot, put the real number in the README and let the history agree with it. **Rewritten history to look tidy.** Rebasing to clean up a genuinely messy sequence is normal practice. Manufacturing a plausible-looking sequence of timestamps for work that happened differently is fabrication, and clustered rewrite timestamps make it detectable. The upside is tiny and the downside is your credibility. ## Practical checklist before you submit - An ignore file added in the first commit, covering dependencies, build output and local environment files. - No credentials, tokens or real datasets anywhere in the history, not just the final tree. - Messages that name behaviour: what changed and why, not which file moved. - Commits that group logically - core path, then error handling, then tests, then README - rather than one per hour or one for everything. - A final scan of the diff against an empty repository, so you see exactly what the reviewer receives. ## If the employer wants a zip file Some companies request an archive, occasionally to anonymise submissions. Include the history directory if they permit it, and if they do not, keep the same discipline anyway - the artefacts, secrets and ignore-file rules matter independently of whether anyone reads your commits.
- Is squashing a take-home into a single commit ever the right call?It is acceptable when the employer asks for an archive rather than a repository, or when your working history contains something you cannot share. It is still a lost signal, so add a README line describing how you worked - skeleton first, then error handling, then tests - to recover part of what the history would have shown.
- How much damage does a committed credential do to a take-home submission?Disproportionate damage. Reviewers treat it as a judgment failure rather than a style slip, because the same habit in a production repository is a genuine incident. Deleting it in a later commit does not help - it remains in the history - so prevent it with an ignore file from the first commit and a diff scan before you submit.
- Should the commit messages explain reasoning, or just describe the change?Both, briefly. A subject line naming the behaviour that changed, plus one sentence of why when the choice was not obvious, gives a reviewer the decision at the moment it was made. Avoid essays; anything that shaped the whole submission belongs in the README where it will actually be read.
saying these in an interview costs you the question
- Committed credentials, tokens or real personal data
- Dependency directories and build output checked in
- Every message reading update, fix or wip
- A fabricated history that contradicts when work happened
- Commit timestamps spanning nine days against a six-hour claim