Insights — August 24, 2026

Twelve Hours Apart: Leading DoCheck's Engineering Team From the Other Side of the Planet

Engineering LeadershipRemote TeamsAsyncDelivery

From 2021 to 2023 I was CTO of DoCheck, a productivity SaaS with a 20+ engineering team in Indonesia. I was in Orlando, finishing an M.S. in Computer Science at the University of Central Florida on a Fulbright scholarship.

Indonesia runs roughly twelve hours ahead of Florida. My team’s afternoon was my middle of the night; their standup was my bedtime. No scheduling trick makes that go away. With a twelve-hour offset the only overlap you get is the overlap you deliberately buy, and you pay for it with somebody’s evening.

Velocity went up 30% over that period. Not because of the distance, but because the distance made it impossible to keep getting away with several things.

The time zone audits your process

A co-located team runs on ambient information. Someone overhears a decision. Someone taps a shoulder. A ticket says “fix the thing we discussed” and everyone knows which thing.

Move the lead twelve hours away and each of those shortcuts becomes a twenty-four-hour round trip. A ticket that needs one clarifying question does not lose ten minutes. It loses a day.

That is a harsh audit, and a useful one. Everything vague in our process now produced a delay we could measure, so we fixed those things in self-defense:

  • Decisions written down with the reasoning attached, not just the outcome, because the person reading could not ask me why.
  • Tickets that could be started without me. If an engineer had to wait for an answer before beginning, the ticket was not ready.
  • Agreed definitions of done, so “finished” did not need adjudicating across a day boundary.

None of that is novel. What was new was having no way to avoid it.

Spend the overlap on what only humans can do

We had a narrow band of shared waking hours, and the instinct is to fill it with status. Status is the worst possible use of overlap. It is exactly the information that survives being written down.

So status moved to writing, and live time went to the things that genuinely degrade in text: disagreements about architecture, someone stuck and not saying so, career conversations, feedback whose tone lands wrong in a message. I rebuilt our agile rituals around that split. Rituals that existed to broadcast information became documents. Rituals that existed to build shared judgment kept their synchronous slot.

Automation is a leadership tool

When you cannot be present, every manual step between commit and production becomes a step waiting on someone who might be asleep.

That is why we invested in CI/CD upgrades. The goal was not developer comfort. It was removing the human bottlenecks that a twelve-hour offset turns into day-long stalls. A pipeline that checks quality on its own does not need me awake.

The same logic drove the infrastructure work. We migrated key workloads to AWS serverless with disciplined resource governance and cut infrastructure costs by 20%. Some of that was straightforward FinOps. Some of it was serverless removing a class of operational babysitting that someone would otherwise have done at an inconvenient hour.

What the team gained that I did not plan for

Autonomy. When the lead is unreachable twelve hours a day, decisions get made without the lead. That is uncomfortable exactly once: the first time someone makes a call you would have made differently and you have to choose between reversing it and backing it.

Backing it, then fixing the guidance that made the call ambiguous, is how a team stops needing you for that class of decision. Distance forced that on me faster than proximity ever would have. By the end the team made most calls without me and escalated a much smaller, much better-chosen set.

What I kept

I have led co-located teams since. These stayed.

  1. Write the decision and the reasoning. The reasoning is what lets someone extend the decision to a case you did not anticipate.
  2. Never spend synchronous time on what a document does better.
  3. Treat every manual gate as a future stall and automate accordingly.
  4. A ticket nobody can start without asking you is not ready.
  5. Back the judgment calls your team makes in your absence, then fix the ambiguity that made them hard.

The gap did not make us faster. It removed the option of postponing the changes that did.