<?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>Systems on Bits, Trades &amp; Systems</title>
    <link>https://blog.turboawesome.win/categories/systems/</link>
    <description>Recent content in Systems on Bits, Trades &amp; Systems</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 07 May 2025 11:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.turboawesome.win/categories/systems/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Evaluating LLM-Integrated Systems: What Works and What Doesn&#39;t</title>
      <link>https://blog.turboawesome.win/2025/05/evaluating-llm-integrated-systems-what-works-and-what-doesnt/</link>
      <pubDate>Wed, 07 May 2025 11:00:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2025/05/evaluating-llm-integrated-systems-what-works-and-what-doesnt/</guid>
      <description>LLM outputs are probabilistic and context-dependent. The testing and evaluation approaches from deterministic software don&amp;#39;t transfer directly. What does work: eval datasets, LLM-as-judge, regression suites, and the practices that separate teams with confidence from teams flying blind.</description>
    </item>
    <item>
      <title>Distributed Consistency Models: What Your Service Actually Guarantees</title>
      <link>https://blog.turboawesome.win/2025/04/distributed-consistency-models-what-your-service-actually-guarantees/</link>
      <pubDate>Wed, 16 Apr 2025 13:12:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2025/04/distributed-consistency-models-what-your-service-actually-guarantees/</guid>
      <description>Linearisability, serializability, eventual consistency, causal consistency — these terms are used loosely and understood imprecisely. Knowing what your data store actually guarantees determines whether your distributed system is correct.</description>
    </item>
    <item>
      <title>Tail-Based Trace Sampling: Why Head Sampling Is Usually Wrong</title>
      <link>https://blog.turboawesome.win/2024/10/tail-based-trace-sampling-why-head-sampling-is-usually-wrong/</link>
      <pubDate>Wed, 09 Oct 2024 13:00:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2024/10/tail-based-trace-sampling-why-head-sampling-is-usually-wrong/</guid>
      <description>Head-based sampling decides whether to trace a request at the start. Tail-based sampling decides after the request completes. For finding latency outliers and errors, tail-based sampling is almost always what you want — and almost never what gets implemented.</description>
    </item>
    <item>
      <title>RAG Systems in Production: What the Tutorials Don&#39;t Cover</title>
      <link>https://blog.turboawesome.win/2024/09/rag-systems-in-production-what-the-tutorials-dont-cover/</link>
      <pubDate>Wed, 11 Sep 2024 10:44:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2024/09/rag-systems-in-production-what-the-tutorials-dont-cover/</guid>
      <description>Retrieval-Augmented Generation works well in demos and breaks in interesting ways in production. The gap between &amp;#39;it answers questions&amp;#39; and &amp;#39;it reliably answers questions correctly&amp;#39; is where most of the engineering lives.</description>
    </item>
    <item>
      <title>LLM Integration Patterns for Backend Engineers</title>
      <link>https://blog.turboawesome.win/2024/07/llm-integration-patterns-for-backend-engineers/</link>
      <pubDate>Wed, 10 Jul 2024 09:38:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2024/07/llm-integration-patterns-for-backend-engineers/</guid>
      <description>Integrating LLMs into backend systems requires engineering discipline that the AI ecosystem tutorials often skip. Structured output, function calling, retry strategy, and testing patterns from production.</description>
    </item>
    <item>
      <title>Observability at Scale: What &#39;Good&#39; Looks Like When You Have Too Much Data</title>
      <link>https://blog.turboawesome.win/2024/05/observability-at-scale-what-good-looks-like-when-you-have-too-much-data/</link>
      <pubDate>Wed, 29 May 2024 09:47:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2024/05/observability-at-scale-what-good-looks-like-when-you-have-too-much-data/</guid>
      <description>Observability problems at large scale are different from small-scale ones. Too little signal is replaced by too much signal, and the engineering challenge inverts.</description>
    </item>
    <item>
      <title>Evaluating LLM Applications: Why &#39;It Looks Good&#39; Is Not Enough</title>
      <link>https://blog.turboawesome.win/2024/05/evaluating-llm-applications-why-it-looks-good-is-not-enough/</link>
      <pubDate>Tue, 14 May 2024 14:22:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2024/05/evaluating-llm-applications-why-it-looks-good-is-not-enough/</guid>
      <description>LLM applications fail in ways that traditional software testing doesn&amp;#39;t catch. Building evaluation frameworks that give you real signal about quality — before and after deployment — is the engineering challenge that separates serious AI products from demos.</description>
    </item>
    <item>
      <title>Cache Design as a Reliability Practice, Not an Optimisation</title>
      <link>https://blog.turboawesome.win/2024/03/cache-design-as-a-reliability-practice-not-an-optimisation/</link>
      <pubDate>Wed, 27 Mar 2024 11:47:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2024/03/cache-design-as-a-reliability-practice-not-an-optimisation/</guid>
      <description>Most engineers add caches to make things faster. At scale, the more important reason to design caches carefully is reliability — a cache failure should not cascade into a system failure. The patterns that prevent that are different from the patterns that optimise for speed.</description>
    </item>
    <item>
      <title>Engineering at Enterprise Scale: What Changes When the System Is Actually Big</title>
      <link>https://blog.turboawesome.win/2024/02/engineering-at-enterprise-scale-what-changes-when-the-system-is-actually-big/</link>
      <pubDate>Wed, 14 Feb 2024 10:22:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2024/02/engineering-at-enterprise-scale-what-changes-when-the-system-is-actually-big/</guid>
      <description>After a decade in financial technology — trading firms, institutions, a startup, a European fintech — joining a large US technology company. The technical and organisational delta.</description>
    </item>
    <item>
      <title>Go&#39;s Race Detector in CI: Catching Data Races Before They Catch You</title>
      <link>https://blog.turboawesome.win/2023/10/gos-race-detector-in-ci-catching-data-races-before-they-catch-you/</link>
      <pubDate>Wed, 04 Oct 2023 09:35:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2023/10/gos-race-detector-in-ci-catching-data-races-before-they-catch-you/</guid>
      <description>Data races are among the hardest bugs to find and reproduce. Go&amp;#39;s built-in race detector finds them automatically — if you run it. Here&amp;#39;s how to integrate it into CI effectively and what to do when it fires.</description>
    </item>
    <item>
      <title>Go&#39;s net/http: Building Production HTTP Servers Without a Framework</title>
      <link>https://blog.turboawesome.win/2023/07/gos-net/http-building-production-http-servers-without-a-framework/</link>
      <pubDate>Wed, 05 Jul 2023 10:44:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2023/07/gos-net/http-building-production-http-servers-without-a-framework/</guid>
      <description>Go&amp;#39;s standard net/http package is capable enough for most production workloads without a framework. What &amp;#39;capable enough&amp;#39; means in practice, and the patterns for middleware, graceful shutdown, and observability.</description>
    </item>
    <item>
      <title>ClickHouse for Application Analytics: Fast Aggregations Without Spark</title>
      <link>https://blog.turboawesome.win/2023/05/clickhouse-for-application-analytics-fast-aggregations-without-spark/</link>
      <pubDate>Wed, 17 May 2023 14:08:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2023/05/clickhouse-for-application-analytics-fast-aggregations-without-spark/</guid>
      <description>When you need sub-second aggregations over billions of rows and don&amp;#39;t want to run a Spark cluster, ClickHouse is often the answer. Notes from a year in production.</description>
    </item>
    <item>
      <title>Database Access Patterns in Go: sqlx, pgx, and When to Use an ORM</title>
      <link>https://blog.turboawesome.win/2023/04/database-access-patterns-in-go-sqlx-pgx-and-when-to-use-an-orm/</link>
      <pubDate>Wed, 05 Apr 2023 11:22:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2023/04/database-access-patterns-in-go-sqlx-pgx-and-when-to-use-an-orm/</guid>
      <description>The Go database access landscape — database/sql, sqlx, pgx, GORM, sqlc — each makes different tradeoffs. Here&amp;#39;s what works for different use cases and why the common advice to avoid ORMs is sometimes right and sometimes not.</description>
    </item>
    <item>
      <title>Feature Flags at Scale: Beyond the On/Off Switch</title>
      <link>https://blog.turboawesome.win/2023/02/feature-flags-at-scale-beyond-the-on/off-switch/</link>
      <pubDate>Tue, 28 Feb 2023 11:02:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2023/02/feature-flags-at-scale-beyond-the-on/off-switch/</guid>
      <description>Feature flags sound simple — toggle code on or off. At scale they&amp;#39;re a deployment primitive, an experimentation platform, a kill-switch infrastructure, and a source of technical debt. Here&amp;#39;s what a mature feature flag system looks like and how to avoid the traps.</description>
    </item>
    <item>
      <title>Structured Logging in Go: slog, zerolog, and What Actually Matters</title>
      <link>https://blog.turboawesome.win/2022/11/structured-logging-in-go-slog-zerolog-and-what-actually-matters/</link>
      <pubDate>Wed, 23 Nov 2022 10:58:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2022/11/structured-logging-in-go-slog-zerolog-and-what-actually-matters/</guid>
      <description>The Go ecosystem has converged on structured logging, but the choice of library and the conventions you adopt matter more than the specific API. Here&amp;#39;s what structured logging should look like in a production Go service and why.</description>
    </item>
    <item>
      <title>Memory Layout in Go: Structs, Alignment, and Cache Performance</title>
      <link>https://blog.turboawesome.win/2022/08/memory-layout-in-go-structs-alignment-and-cache-performance/</link>
      <pubDate>Wed, 17 Aug 2022 10:03:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2022/08/memory-layout-in-go-structs-alignment-and-cache-performance/</guid>
      <description>Go&amp;#39;s struct layout follows alignment rules that affect both memory consumption and cache performance. Understanding them matters more than most Go developers realise.</description>
    </item>
    <item>
      <title>OpenTelemetry in Go: Distributed Tracing That Doesn&#39;t Get in the Way</title>
      <link>https://blog.turboawesome.win/2022/05/opentelemetry-in-go-distributed-tracing-that-doesnt-get-in-the-way/</link>
      <pubDate>Tue, 31 May 2022 10:14:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2022/05/opentelemetry-in-go-distributed-tracing-that-doesnt-get-in-the-way/</guid>
      <description>OpenTelemetry standardised distributed tracing across languages and vendors. Here&amp;#39;s what idiomatic OTel integration looks like in Go — and the parts that aren&amp;#39;t obvious from the documentation.</description>
    </item>
    <item>
      <title>Kafka at Startup Scale</title>
      <link>https://blog.turboawesome.win/2022/05/kafka-at-startup-scale/</link>
      <pubDate>Wed, 18 May 2022 14:00:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2022/05/kafka-at-startup-scale/</guid>
      <description>Running Kafka at a startup is different from running it at enterprise scale. The operational complexity is real, the defaults are wrong for small clusters, and the failure modes are different from what the documentation implies.</description>
    </item>
    <item>
      <title>Building Reliable Pipelines with Go: Retry, Circuit Breaker, and Backoff</title>
      <link>https://blog.turboawesome.win/2021/11/building-reliable-pipelines-with-go-retry-circuit-breaker-and-backoff/</link>
      <pubDate>Wed, 17 Nov 2021 11:41:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2021/11/building-reliable-pipelines-with-go-retry-circuit-breaker-and-backoff/</guid>
      <description>Every service that calls another service will eventually face failures. The patterns that contain those failures — retry with backoff, circuit breakers, bulkheads — are not optional for production Go services. Here&amp;#39;s how to implement them correctly.</description>
    </item>
    <item>
      <title>gRPC in Production: Lessons After Two Years</title>
      <link>https://blog.turboawesome.win/2021/01/grpc-in-production-lessons-after-two-years/</link>
      <pubDate>Wed, 13 Jan 2021 14:55:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2021/01/grpc-in-production-lessons-after-two-years/</guid>
      <description>gRPC is a better default than REST for internal service communication. It&amp;#39;s also a set of new problems you didn&amp;#39;t have before. Two years of production experience.</description>
    </item>
  </channel>
</rss>
