Published on

Working as a .NET developer from Mexico: the timezone is the real constraint

Authors

Moving to Mexico changed fewer things about my work than I expected. The tools are the same. The code is the same. The people I work with are the same.

What changed is the clock. Everyone I work with is in Central Europe, and Central Europe is seven to eight hours ahead of me. That single fact reshaped my entire day, and it took me a while to get it right.

The gap

Mexico dropped daylight saving in 2022, so I sit at UTC-6 all year. Europe still shifts, which means the gap moves with the season:

MexicoCentral EuropeGap
Winter (CET)08:0015:007h
Summer (CEST)08:0016:008h

An hour does not sound like much. It is. In winter, Europe's working day ends around my 09:00. In summer it ends around my 08:00. Either way, if I want to share a working day with the people I work with, I have to start mine in the middle of the night.

So I do.

What a day actually looks like

03:00–04:00 — Start. My alarm goes off somewhere between three and four, depending on what is on the calendar. By the time I am at my desk it is late morning in Europe. This is the only window where both sides are properly at work, so everything synchronous lives here: meetings, pairing, the questions that need a back-and-forth rather than an email.

05:00–06:00 — Nap, sometimes. If it was a three o'clock start, I take a short nap once the early meetings are done. I resisted this for a long time. It turns out that fighting it costs more than it saves.

06:00 — Walk. Most mornings I go for a walk in the mountains. Europe is at lunch, nothing urgent is happening, and I get daylight and fresh air before the real work starts. This is not a productivity hack. It is the thing that makes the early starts sustainable.

08:00 onwards — Deep work. By now Europe is winding down. Their afternoon is my morning, and from here until I decide I am done, nobody is waiting on me and nobody can interrupt me. This is where the actual development happens.

End of day — Hand-off. Before I stop, I make sure the other side can continue without me. More on that below.

The sync window is roughly 03:00–08:00. Everything after that is mine.

The hand-off is the whole job

The thing the gap punishes hardest is leaving something half-finished.

If I fix something during my afternoon and just push it, the people I work with arrive in the morning to find a change they did not see coming, with no context and no one to ask for eight hours. That is a wasted day on their side, caused by me.

So the last part of my day is always a hand-off. Whatever we agreed on in the morning, I make sure it is in a state where they can pick it up and continue. That means:

  • End-of-day message. A short written update: what got done, what did not, what I need from them. This is not a status report for the sake of it. It is the thing that replaces the conversation we cannot have.
  • Instructions to continue. If I changed something that affects their work, they get the steps to carry on, not just a commit. Where to look, what to run, what to expect.
  • Recorded walkthroughs when a message is not enough. A few minutes of screen recording beats a meeting that would have to wait until tomorrow's window.
  • Questions sent before I need the answers. Anything I will be blocked on tomorrow gets asked today. By the time I am back at my desk, the answer is usually there.
  • Pull requests that explain themselves. PRs are async by nature, but the gap raises the price of a thin description. A reviewer who cannot ask me anything needs what changed, why, and how to verify it. A PR that answers those gets merged while I sleep. One that does not costs a full day.

None of this is complicated. It is just discipline about never leaving the other side stuck.

Decisions without a meeting

Sometimes a decision comes up at 14:00 my time, and the people who would normally be in the room are asleep.

I do not have a clever system for this. What I do is prepare as much as I can in the morning window, so fewer decisions get stranded in the afternoon. When one does, I work around it: pick the option that is easiest to reverse, write down why, and keep going. Tomorrow's window is for confirming or changing course, not for being stuck.

What I got wrong

For a long time I tried to be present for Europe's entire day.

That meant not sleeping. Their morning starts around midnight for me, so I would be online from then and stay online until their day ended. Then, at eight or nine in the morning, I would go to bed. My whole day was their day, and my sleep was whatever was left over. I told myself it was what they needed: someone who was always there.

It wore me down. Slowly at first, then not slowly. And the thing is, what I delivered got worse. The whole point of being present was to deliver well, and I was undermining exactly that.

The fix was accepting that I cannot be available for their whole day, and that I do not need to be. A solid overlap window, a clean hand-off, and a rested developer beats a tired one who is always online.

The upside nobody mentions

Here is the part I did not expect.

Once Europe goes home, I get something most developers never get: hours of uninterrupted deep work, every single day. No meetings can be scheduled. No messages arrive that need answering now. The notification count stops climbing.

From 08:00 until I decide I am done, it is just me and the problem. I get more actual development done in that stretch than I used to get in a full office day.

The timezone is a constraint. But the same constraint that forces me up at three also hands me the best working conditions I have ever had. I would not trade it.