What Working Across Five Countries Taught Me About Engineering Collaboration

软件 工程师 都柏林

软件 工程师 都柏林

工程师 精心 打造 可扩展

超越 代码 本身

他们 怎么说

一起 构建

消息 已收到

隐私 政策

使用 条款

Cookie 政策

免责声明

最新 动态

精选 作品

作品 展示

我们 提供 什么

服务 的行业

屏幕 之外

共同 构建

View View
Nben Malla
Nben Malla

Software Engineer

A software engineer who builds systems that scale, modernizes platforms that matter and ships code that holds up long after the project ends.

Based in Dublin, Ireland, with a presence across Bristol, Groningen and Kathmandu, the work spans FinTech platforms, SaaS products and open source contributions, collaborating with engineering teams across Nepal, Ireland, the Netherlands, New Zealand and the United States.

From leading legacy modernization for global banking clients to architecting microservices in Go, Java and Python, the focus has always been the same. Understand the problem deeply, build it right and make sure the people depending on it never have to think about it failing.

  • 阅读文章 阅读文章

    Blogs 9 mins

    What Working Across Five Countries Taught Me About Engineering Collaboration

    Nben M. 20 Jun, 2025 9 mins

    What Working Across Five Countries Taught Me About Engineering Collaboration

    I did not plan to work across five countries. It happened incrementally, one project and one timezone at a time. A FinTech engagement in Dublin with offshore teams in India and the Philippines. A SaaS product built with engineers across Nepal and the UK. A legacy migration with stakeholders in three continents running in parallel.

    By the time I stepped back and counted, I had shipped production software with teams spread across Ireland, India, Nepal, the Philippines and the United Kingdom. No two setups were the same. The timezone gaps ranged from negligible to brutal. The communication styles ranged from highly explicit to almost entirely implicit. The tooling, the working hours, the expectations around documentation and the definition of "done" were different in every context.

    What I took from that experience was not a framework. It was a set of hard-won instincts about where distributed engineering actually breaks down and what it takes to prevent it.

    Communication Style Is an Engineering Variable

    Most engineers treat communication style as a soft skill, adjacent to the real work. Working across cultures made it clear that communication style is an engineering variable with direct consequences for output quality and delivery speed.

    In some teams, saying "that might be difficult" means "no, and we need to talk about scope." In others, it means "I have not thought about it yet." In others still, it means "yes, but I need more time and I am too polite to say that directly." Misreading that signal costs you a sprint. Misreading it consistently costs you the project.

    I learned to make ambiguity explicit rather than assuming shared interpretation. When a requirement felt unclear to me, I documented my interpretation in writing before building. When an agreement was reached in a call, I followed up with a written summary. Not because the other engineers were unreliable, but because verbal agreement in a cross-cultural context carries far less shared context than it appears to in the moment.

    Explicit Over Implicit, Always

    The instinct to be brief in written communication is a liability in distributed teams. A Slack message that reads "sounds good, let's go with that" is fine between two people in the same room who share context. Across timezones, it creates a gap between what each person understood "that" to mean.

    I shifted toward longer, more explicit written communication than I would use with a co-located team. Not verbose for the sake of it, but precise. "Let's go with option B, the read-through cache with a 30-second TTL, and revisit if we see stale reads in staging" is slower to write and dramatically faster to act on.

    Timezone Gaps Are a Design Constraint, Not a Logistics Problem

    The standard response to timezone gaps is to find the overlap window and schedule meetings there. That treats the gap as a scheduling inconvenience. It is actually a design constraint that should shape how you structure work.

    What Working Across Five Countries Taught Me About Engineering Collaboration
    What Working Across Five Countries Taught Me About Engineering Collaboration

    When I was working with a team in Manila while based in Dublin, the overlap was two hours in the late afternoon Dublin time. Treating that window as the only time work could move forward meant that every blocker that appeared outside it sat until the next day at minimum. One blocker per day was a slow week.

    The better model was to design work so that each side of the timezone gap could operate independently for the majority of their day. That meant more upfront design work, more detailed task specifications, and a strict norm around documenting decisions as they were made rather than carrying them in someone's head.

    markdown
    Bad handoff:
    "Can you pick up the auth service changes? I left some notes in the PR."
    
    Good handoff:
    "Auth service PR is open. It handles token refresh for the case where the 
    access token expires mid-session. The edge case I did not cover is concurrent 
    refresh requests from the same client. Left a comment on line 84. If you hit 
    issues with the Redis TTL, check the config in staging, it is set lower than 
    prod for test purposes."

    The second handoff costs three extra minutes to write. It saves two hours of back-and-forth the next morning.

    Async as a First-Class Mode

    Teams that treat async communication as a fallback when meetings are not possible operate at a structural disadvantage in distributed contexts. Async has to be a first-class mode, not a compromise.

    That means documentation written to be read without context, decisions recorded where they happened rather than in a separate wiki, and a shared norm that a question asked in a channel deserves a thorough written answer even if a call would be faster. The call is faster once. The written answer is faster every time someone has the same question afterward.

    Ownership Models Break Down Differently Across Cultures

    In co-located teams, ownership is often informal. Everyone knows who to ask about the payments service. The knowledge is ambient. In distributed teams, that ambient knowledge does not travel across timezones, and the cost of not knowing who owns something is a blocked engineer waiting for a reply.

    Explicit ownership was one of the most consistently underinvested areas I saw across distributed engagements. Services had authors but not owners. Runbooks existed but were not maintained. Incident response required someone to know who to wake up, and that knowledge sat in one person's head on one side of the world.

    I pushed hard for written ownership wherever I worked. Not just a name in a README but a defined scope: what does this person own, what decisions can they make without escalating, and who covers when they are unavailable. That structure feels bureaucratic until the first incident at 2am when you need to know exactly who to call.

    Process Disagreement Is Usually Values Disagreement

    When a distributed team argues about process, the argument is almost never actually about process. It is about values: what the team believes matters, what "quality" means, what the right tradeoff is between speed and correctness.

    I sat in a retrospective once where a Dublin-based senior engineer and a Bangalore-based tech lead had a sustained disagreement about whether every PR required a design document for changes above a certain size. The Dublin engineer thought it slowed delivery. The Bangalore engineer thought skipping it created risk. They were both right within their own frame, and neither frame was wrong.

    Process Disagreement Is Usually Values Disagreement
    Process Disagreement Is Usually Values Disagreement

    The resolution was not to pick a side but to make the underlying values explicit. We agreed that the goal was to catch design problems before code was written, and then we designed a process that served that goal with less overhead: a structured PR description template that required the author to articulate the tradeoffs, rather than a separate document. Both engineers could live with it because it addressed the concern rather than winning the argument.

    Standardize the Interface, Not the Workflow

    One of the most durable lessons from distributed engineering is that you cannot standardize how people work, but you can standardize what they produce. Trying to enforce identical workflows across teams in different countries with different working cultures generates resistance and rarely succeeds.

    What you can enforce is the interface: the shape of a PR, the contents of a deploy runbook, the fields in an incident report. If every PR has the same structure, it does not matter whether the author wrote it at 9am or midnight, or whether they prefer long planning sessions or rapid iteration. The output is consistent and reviewable regardless.

    Trust Is Built Through Reliability, Not Familiarity

    Co-located teams build trust through proximity. Shared lunches, hallway conversations, overhearing someone debug a hard problem. That signal of competence and character accumulates passively. In a distributed team, none of that happens. Trust has to be built through a different signal: reliability.

    Reliability in a distributed context means doing what you said you would do, by when you said you would do it, and communicating early when that is not going to happen. It sounds obvious. It is consistently the thing that breaks down first when teams are under pressure.

    I worked with an engineer in Kathmandu who I had never met in person and had spoken to on video call maybe four times. He was the most trusted person on that team within six months, not because of his seniority or output volume but because he had a perfect record of either delivering what he committed to or flagging blockers within hours of knowing about them. Everyone on the team knew that a task assigned to him would either be done or explained. That kind of predictability is rare and worth more than any amount of raw technical ability.

    Conclusion

    Working across five countries did not teach me that collaboration is hard. I already knew that. It taught me that most collaboration failures are caused by assumptions: that the other person shares your context, your communication style, your definition of a word, your sense of what counts as a blocker. Those assumptions are invisible when everyone is in the same room. They become load-bearing when they break at a distance.

    The teams that worked well across borders were not the ones with the best tools or the most meetings. They were the ones that had developed the discipline to make implicit things explicit: ownership, decisions, expectations, blockers. That discipline is harder to build than any technical skill and more transferable than any specific architecture pattern.

    If you get the opportunity to work in a genuinely distributed, cross-cultural engineering team, take it. Ship something hard with people you have never met in person, across a timezone gap that makes synchronous communication expensive. You will come back a more precise thinker, a better writer and a significantly more effective engineer.