- Published on
Working as a .NET developer from Mexico: the timezone is the real constraint
- Authors

- Name
- Mathias Hove
- @mathias_hove
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:
| Mexico | Central Europe | Gap | |
|---|---|---|---|
| Winter (CET) | 08:00 | 15:00 | 7h |
| Summer (CEST) | 08:00 | 16:00 | 8h |
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.