<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Design on Bits, Trades &amp; Systems</title>
    <link>https://blog.turboawesome.win/tags/design/</link>
    <description>Recent content in Design on Bits, Trades &amp; Systems</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 05 Jan 2022 10:08:00 +0000</lastBuildDate>
    <atom:link href="https://blog.turboawesome.win/tags/design/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Embedding in Go: Composition Over Inheritance Done Right</title>
      <link>https://blog.turboawesome.win/2022/01/embedding-in-go-composition-over-inheritance-done-right/</link>
      <pubDate>Wed, 05 Jan 2022 10:08:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2022/01/embedding-in-go-composition-over-inheritance-done-right/</guid>
      <description>Go has no inheritance, but it has embedding — a composition mechanism that promotes methods to the outer type. Understanding what embedding actually does (and what it doesn&amp;#39;t) prevents the common mistakes.</description>
    </item>
    <item>
      <title>Writing Technical RFCs That Actually Get Read</title>
      <link>https://blog.turboawesome.win/2021/02/writing-technical-rfcs-that-actually-get-read/</link>
      <pubDate>Wed, 24 Feb 2021 09:07:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2021/02/writing-technical-rfcs-that-actually-get-read/</guid>
      <description>Most technical RFCs fail at their primary purpose: creating alignment before building. The failures are almost always structural — missing context, buried decisions, or no clear ask. Here&amp;#39;s the format that worked.</description>
    </item>
    <item>
      <title>Error Handling in Go: Patterns That Actually Work at Scale</title>
      <link>https://blog.turboawesome.win/2019/09/error-handling-in-go-patterns-that-actually-work-at-scale/</link>
      <pubDate>Wed, 11 Sep 2019 11:58:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2019/09/error-handling-in-go-patterns-that-actually-work-at-scale/</guid>
      <description>Go&amp;#39;s error handling is explicit and verbose by design. At scale — hundreds of functions, multiple layers, concurrent operations — the naive patterns break down. These are the patterns that held up.</description>
    </item>
    <item>
      <title>What Big-Bank Engineering Taught Me About System Design</title>
      <link>https://blog.turboawesome.win/2018/08/what-big-bank-engineering-taught-me-about-system-design/</link>
      <pubDate>Thu, 23 Aug 2018 13:51:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2018/08/what-big-bank-engineering-taught-me-about-system-design/</guid>
      <description>Three years at a large financial institution changed how I think about failure, compliance, and the relationship between constraints and good design. Not all of the lessons are obvious.</description>
    </item>
    <item>
      <title>Threading Models in Java: Which One Does Your System Actually Need?</title>
      <link>https://blog.turboawesome.win/2016/11/threading-models-in-java-which-one-does-your-system-actually-need/</link>
      <pubDate>Wed, 09 Nov 2016 10:22:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2016/11/threading-models-in-java-which-one-does-your-system-actually-need/</guid>
      <description>Thread-per-request, event-loop, work-stealing, single-threaded with message passing — Java supports all of them, but each optimises for different things. Choosing the wrong model means fighting the runtime rather than working with it.</description>
    </item>
  </channel>
</rss>
