Amine Elbarry

Amine

5+ years software engineer

~/AI_Chat~/projects~/experience~/blogs~/hire-me~/services
Amine Elbarry

Amine

5+ years software engineer

~/AI_Chat~/projects~/experience~/blogs~/hire-me~/services

Blog Posts

Amine Elbarry

Amine

5+ years software engineer

~/AI_Chat~/projects~/experience~/blogs~/hire-me~/services
Amine Elbarry

Amine

5+ years software engineer

~/AI_Chat~/projects~/experience~/blogs~/hire-me~/services
Back to all blogs

The Handover Checklist: What You Must Get Before the Final Payment

Jul 27, 2026•6 min read

A handover is complete when a different developer could take over without speaking to the previous one. That's the standard. Anything less and you have a product you can run but not a product you own in any practical sense.

Agree this list before the build starts, not at the end. At the end it reads as distrust; at the start it reads as professionalism, and any good developer will simply say yes. Part of how to hire a developer for your MVP.

The checklist

Code and history

1. The Git repository, in your organisation, with full commit history. Not a zip file of the current code. The history is the record of who wrote what and when, and it's the first thing technical diligence asks for during funding or acquisition. A repository with a single "initial commit" containing everything is a warning sign.

2. All branches and tags that matter, not just the main branch.

3. The code builds from a clean checkout. See the verification test below.

Running it

4. Deployment instructions written down, step by step, in the repository.

5. Infrastructure configuration. Whatever defines your servers, hosting, and services — in the repo where possible rather than living only in someone's account.

6. Environment variables documented. A list of every configuration value the app needs, what each one does, and where to obtain it. Not the secret values in a text file — the inventory, so a new developer knows what has to exist.

7. Any build or deploy pipeline in your accounts, working. If deploys currently only happen from the developer's laptop, that's not finished. My CI/CD guide is written for developers, but the short version is that a deploy nobody but one person can run is a dependency, not a process.

Data

8. Database schema and migrations. Migrations matter — they're how the database structure changes safely in future. Without them, the next developer is modifying a live database by hand.

9. A backup, and a documented backup process. Including how to restore it, which is the half people skip.

10. Any seed or reference data the app needs to function.

Design and docs

11. Design files in an editable format, in your account — not exported PNGs.

12. A README that explains how to run the project locally. This single file is the strongest signal in the whole handover. If a developer has written a clear one, they've thought about the person who comes next.

13. API documentation if the product has an API or a mobile client talking to a backend.

Access

14. Every account under your company, with you as owner. GitHub, cloud provider, domain registrar, database, email, payments, analytics, error tracking. This should already be true from day one — see who owns the source code — but verify it now.

15. Credentials transferred, or a documented process for rotating them. Best practice is that you rotate every secret at the end of an engagement anyway.

16. The signed IP assignment, if it isn't already in the main agreement.

How to verify without technical skills

You can check most of this yourself.

The clean-checkout test. Ask the developer to prove the project builds and runs from nothing but the repository plus the documented environment variables — ideally on a machine that isn't their usual one. This one test catches most incomplete handovers, because it surfaces the undocumented step that only exists on their laptop.

The someone-else test. The real standard. Pay an independent developer for two hours to clone the repo, follow the README, and get it running. If they can, your handover is real. If they can't, you've found the gap while you still have leverage — the final payment.

Two hours of an independent developer's time is the cheapest insurance in this entire process.

Check the accounts yourself. Log into GitHub, your cloud provider, and your domain registrar. Confirm you are the owner, not a collaborator. This takes ten minutes and it's the item with the highest cost of being wrong.

Open the README. You don't need to understand the commands. You can tell the difference between a page of clear instructions and an empty file.

Sequence the final payment correctly

The last milestone payment should sit after handover, not before it.

Not because developers are untrustworthy — most aren't — but because handover is the least interesting part of a project and it's the first thing that gets deprioritised when the next contract has started. A payment sitting behind it is what keeps it on the calendar.

Make it explicit in the agreement so it isn't a surprise. Framed upfront, it's normal contract structure. Introduced at the end, it feels like an accusation.

What to do straight after handover

  1. Rotate every credential. Standard hygiene, no offence implied.
  2. Review who still has access to each account and remove what's no longer needed. Consider keeping the developer's access if you're likely to need them — just make it a decision rather than an oversight.
  3. Take a backup and verify you can restore it. An untested backup is a belief, not a backup.
  4. Have an independent developer do a short review. A few hours to confirm the code is what it appears to be, that there's nothing alarming in the dependencies, and that a handover to someone new would be feasible.
  5. Write down what you learned. What you'd scope differently, where the estimate went wrong. It makes the next engagement substantially better.

If the handover is incomplete

It happens, often without bad intent — a developer moves to the next project and the documentation never gets written.

Be specific rather than general. "The handover is incomplete" starts an argument; "the README doesn't include the environment variables needed to run it locally, and the deploy currently only works from your machine" gets fixed. Reference the checklist you agreed at the start, and it's a task list rather than a dispute.

If someone has genuinely gone quiet and you own every account, you're in an inconvenient position rather than a disastrous one — a new developer can work out an undocumented codebase, it just costs money. That's precisely why owning the accounts from day one matters more than any clause.

If you want an independent review of a handover you've just received, get in touch.

Related Posts

Agency, Freelancer or Technical Co-Founder: Which Do You Need?

Four different products, not four prices for the same thing. What each option is actually good at, how each one fails, what an agency's overhead buys you, and where offshore genuinely fits.

How to Hire a Developer to Build Your MVP

Shortlisting, comparing proposals, spotting the agency that sells with seniors and delivers with juniors, and getting ownership in writing — the full hiring process, written from the side that receives the brief.

How to Vet a Developer When You Can't Code

You can't read the code, so stop trying. Judge product thinking, process, and what they refuse to build — the eight things that actually predict whether a build succeeds, and how to check each one without technical skills.