<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom">
  <title>eblog: software articles by efron licht</title>
  <id>https://eblog.fly.dev</id>
  <updated>2026-06-04T20:46:34-07:00</updated>
  <subtitle>Software articles at a level of rigor somewhere between textbook and blog. mostly systems programming &amp; backend but not limited to it.</subtitle>
  <link href="https://eblog.fly.dev"></link>
  <author>
    <name>Efron Amber Licht</name>
    <email>efron.dev@gmail.com</email>
  </author>
  <entry>
    <title>Simple Byte Hacking: A UUID Adventure</title>
    <updated>2023-01-01T09:00:00-08:00</updated>
    <id>https://eblog.fly.dev/bytehacking.html</id>
    <link href="https://eblog.fly.dev/uuid.html" rel="alternate"></link>
    <summary type="html">Using the magic technique of &#34;just kind of looking at raw bytes&#34; to solve a problem with UUIDs.</summary>
  </entry>
  <entry>
    <title>Go Quirks &amp; Tricks 01: Declaration, Control Flow, Typesystem</title>
    <updated>2023-02-01T09:00:00-08:00</updated>
    <id>https://eblog.fly.dev/quirks.html</id>
    <link href="https://eblog.fly.dev/quirks.html" rel="alternate"></link>
    <summary type="html">part 1 of a grab-bag of go quirks and tricks, covering declaration, control flow, and the typesystem.</summary>
  </entry>
  <entry>
    <title>Go Quirks &amp; Tricks 02: Concurrency, Unsafe, Reflect</title>
    <updated>2023-03-01T09:00:00-08:00</updated>
    <id>https://eblog.fly.dev/quirks2.html</id>
    <link href="https://eblog.fly.dev/quirks2.html" rel="alternate"></link>
    <summary type="html">part 2 of a grab-bag of go quirks and tricks, covering concurrency, unsafe, and reflect.</summary>
  </entry>
  <entry>
    <title>Go Quirks &amp; Tricks 03: Arrays, Validation, Build Constraints</title>
    <updated>2023-04-01T09:00:00-07:00</updated>
    <id>https://eblog.fly.dev/quirks3.html</id>
    <link href="https://eblog.fly.dev/quirks3.html" rel="alternate"></link>
    <summary type="html">part 3 of a grab-bag of go quirks and tricks, covering arrays, validation, and build constraints.</summary>
  </entry>
  <entry>
    <title>Start Fast: Booting Go Programs Quickly with `inittrace` and `nonblocking[T]`</title>
    <updated>2023-07-01T09:00:00-07:00</updated>
    <id>https://eblog.fly.dev/startfast.html</id>
    <link href="https://eblog.fly.dev/startfast.html" rel="alternate"></link>
    <summary type="html">The only thing your program does every time is start, so it should start as fast as possible.  Here&#39;s how.</summary>
  </entry>
  <entry>
    <title>Backend Basics 03: Finishing Touches: Middleware, Dependencies, &amp; Routing</title>
    <updated>2023-09-01T09:00:00-07:00</updated>
    <id>https://eblog.fly.dev/backendbasics3.html</id>
    <link href="https://eblog.fly.dev/backendbasics3.html" rel="alternate"></link>
    <summary type="html">Third part of a guide to backend development in go, covering testing, middleware, dependencies, routing, and a little bit of databases</summary>
  </entry>
  <entry>
    <title>Backend Basics 02: Practical Backend with `net/http`, `net/url`, `encoding/json`, and `context`</title>
    <updated>2023-09-01T09:00:00-07:00</updated>
    <id>https://eblog.fly.dev/backendbasics2.html</id>
    <link href="https://eblog.fly.dev/backendbasics2.html" rel="alternate"></link>
    <summary type="html">Now that we know how to build it by hand, use the go stdlib to do it the practical way</summary>
  </entry>
  <entry>
    <title>Backend Basics 01: Introduction, TCP, DNS, HTTP</title>
    <updated>2023-09-01T09:00:00-07:00</updated>
    <id>https://eblog.fly.dev/backendbasics.html</id>
    <link href="https://eblog.fly.dev/backendbasics.html" rel="alternate"></link>
    <summary type="html">First part of a guide to backend development in go, covering the basics of TCP, DNS, and HTTP</summary>
  </entry>
  <entry>
    <title>Advanced Go &amp; Gamedev: Reflection-based Debug Console</title>
    <updated>2023-09-01T09:00:00-07:00</updated>
    <id>https://eblog.fly.dev/console.html</id>
    <link href="https://eblog.fly.dev/console.html" rel="alternate"></link>
    <summary type="html">A very fancy way to make a realtime debug console like quake for your go programs</summary>
  </entry>
  <entry>
    <title>Advanced Go &amp; Gamedev: Reflection-based Debug Console: Autocomplete</title>
    <updated>2023-10-01T09:00:00-07:00</updated>
    <id>https://eblog.fly.dev/console-autocomplete.html</id>
    <link href="https://eblog.fly.dev/console-autocomplete.html" rel="alternate"></link>
    <summary type="html">Adding autocomplete to our reflection-based debug console</summary>
  </entry>
  <entry>
    <title>Faststack: Analyzing &amp; Optimizing Gin&#39;s Panic Stack Traces</title>
    <updated>2023-12-01T09:00:00-08:00</updated>
    <id>https://eblog.fly.dev/faststack.html</id>
    <link href="https://eblog.fly.dev/faststack.html" rel="alternate"></link>
    <summary type="html">An investigation into the mechanism and performance of Gin&#39;s fancy stack traces</summary>
  </entry>
  <entry>
    <title>Starting Systems Programming 01: Programmers Write Programs: Building your Tools</title>
    <updated>2025-03-01T09:00:00-08:00</updated>
    <id>https://eblog.fly.dev/startingsystems1.html</id>
    <link href="https://eblog.fly.dev/startingsystems1.html" rel="alternate"></link>
    <summary type="html">First part of a guide to systems programming, starting with building the basic tools to examine and manipulate files and binary data</summary>
  </entry>
  <entry>
    <title>Starting Systems Programming 02: Your program and the outside world</title>
    <updated>2025-12-01T09:00:00-08:00</updated>
    <id>https://eblog.fly.dev/startingsystems2.html</id>
    <link href="https://eblog.fly.dev/startingsystems2.html" rel="alternate"></link>
    <summary type="html">Second part of a guide to systems programming, covering how to interact with the outside world - syscalls, files, etc.</summary>
  </entry>
  <entry>
    <title>Gin is a very bad software library</title>
    <updated>2025-12-01T09:00:00-08:00</updated>
    <id>https://eblog.fly.dev/ginbad.html</id>
    <link href="https://eblog.fly.dev/ginbad.html" rel="alternate"></link>
    <summary type="html">Gin is a very bad software library. Way, way too much detail on why.</summary>
  </entry>
  <entry>
    <title>Software Talmud 00: Anatomy of Automation</title>
    <updated>2026-04-21T09:00:00-07:00</updated>
    <id>tag:eblog.fly.dev,2026-04-21:/swtalmud.html</id>
    <link href="https://eblog.fly.dev/swtalmud.html" rel="alternate"></link>
    <summary type="html">An attempt to communicate wisdom from the engineers and programmers of the past</summary>
  </entry>
  <entry>
    <title>Starting Systems Programming 03: Execution Counts: Software Performance &amp; Measurement</title>
    <updated>2026-04-23T09:00:00-07:00</updated>
    <id>https://eblog.fly.dev/startingsystems3.html</id>
    <link href="https://eblog.fly.dev/startingsystems3.html" rel="alternate"></link>
    <summary type="html">ALPHA: Third part of a guide to systems programming, covering performance, including computer architecture, architectural design, profiling, benchmarking, and examples of micro-optimizations.</summary>
  </entry>
  <entry>
    <title>Github and the Crime Against Software</title>
    <updated>2026-05-29T09:00:00-07:00</updated>
    <id>https://eblog.fly.dev/githubbad.html</id>
    <link href="https://eblog.fly.dev/githubbad.html" rel="alternate"></link>
    <summary type="html">An investigation into collapse of Github and how the decay of our tech infrastructure is a crime against software. Detailed comparisons of Github, Gitlab, Codeberg, and more from a distributed systems and software performance expert</summary>
  </entry>
</feed>