Welcome to my field notes!

Field notes are notes I leave myself as I go through my day to day work. The hope is that other people will also find these notes useful. Note that these notes are unfiltered and unverified.

Language Agnostic Data Teams

  • Containerization is a requiremement, not a bonus
  • Tradeoffs
    • (+) You are not restricted by your stack in terms of the engineering talent you can hire
      • Questions to ask:
        • How much of my domain (fintech, e-commerce, publishing, telecoms) is across languages, particularly library and open source support?
        • Do you require tight integration with minimal latencies (e.g. e-commerce, high frequency traing)? If so, it is not that easy to ensure good observability and latency across the stack.
    • (+) Inherently microservice in nature
      • Naturally avoids creating giant monoliths.
    • (-) Collaboration and key man ownership
      • Questions to ask:
        • Do you have a minimum of 2 engineers who can work with the stack? One person developing something alone (only to flounder when that person leaves) is an absolute no go. Small teams should be careful.
        • Are you sure that the engineer who is requesting X language is actually proficient in that language, or that language is most suited to the problem domain? Code speed is hardly the constraint in software development, it is mostly proficiency and library support.
    • (-) Observabilty and DevOps
      • Questions to ask:
        • Unless you have a real devops team that can handle most languages, that engineer will likely have to do their own ops, which is a risk.
        • When things go wrong, who has the responsibility to fix? In large teams, having separate language chains handle single transaction flows can cause ownership gaps.