<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title>Stephan Bökelmann — From tape-out to TypeScript</title>
  <subtitle>Engineer, physicist, consultant. Silicon-level measurement systems, embedded development, monitoring infrastructure, and application-layer software.</subtitle>
  <link href="https://maxclerkwell.tech/feed.xml" rel="self" type="application/atom+xml"/>
  <link href="https://maxclerkwell.tech/" rel="alternate" type="text/html"/>
  <id>https://maxclerkwell.tech/</id>
  <updated>2026-08-26T09:35:55+00:00</updated>
  <author>
    <name>Stephan Bökelmann</name>
    <email>stephan@boekelmann.net</email>
    <uri>https://maxclerkwell.tech</uri>
  </author>
  <generator uri="https://jekyllrb.com/">Jekyll</generator>

  








  

  
  <entry>
    <title>Deploying Hardware Like Software: A Bitstream Pipeline for the Zynq</title>
    <link href="https://maxclerkwell.tech/posts/zynq-bitstream-deployment-concept-august-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/zynq-bitstream-deployment-concept-august-2026/</id>
    <published>2026-08-23T00:00:00+00:00</published>
    <updated>2026-08-23T00:00:00+00:00</updated>
    
    <summary>Alinx sent me an AX7020 board. Here is the plan: an open-source path from JTAG bring-up to a REST API that accepts a bitstream and loads it onto the FPGA, no vendor tools in the loop.</summary>
    
    
    <category term="fpga"/>
    
    <category term="embedded"/>
    
    <category term="linux"/>
    
    <category term="open-source"/>
    
    <content type="text">A while ago, Alinx reached out and asked whether I would like one of their boards for my content work. I said yes, and a few days later an AX7020 arrived on my desk. Full disclosure up front: the board is a sponsorship gift. Alinx has no say in what I write about it, and as you will see below, my plan involves ignoring most of the vendor-recommended workflow anyway. This article is not a tutorial. It is the concept post for a small series: what I want to build, why I want to build it that way, and where I expect things to get uncomfortable. The follow-up articles will document each stage as it actually happens, including the parts that fail. The Board The AX7020 is built around a Xilinx Zynq-7020, which is a curious kind of chip. Half of it is an ordinary computer: two ARM Cortex-A9 cor...</content>
  </entry>
  
  <entry>
    <title>Why Does Copper Conduct? A Tour for Non-Physicists</title>
    <link href="https://maxclerkwell.tech/posts/orbitals-to-bands-august-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/orbitals-to-bands-august-2026/</id>
    <published>2026-08-21T00:00:00+00:00</published>
    <updated>2026-08-21T00:00:00+00:00</updated>
    
    <summary>Copper conducts, diamond doesn&apos;t, yet both are packed with electrons. A walk from single atoms to energy bands that explains why, ending with a back-of-the-envelope number that lands within ten percent of the measured conductivity of copper.</summary>
    
    
    <category term="physics"/>
    
    <category term="education"/>
    
    <content type="text">I recently finished a small paper that derives the electronic structure of solids step by step, aimed at first-year physics students. This post is the version without the mathematics: the story you can follow on a train ride. If you want the full derivations, the paper is linked at the end. A Question That Sounds Trivial Why does copper conduct electricity and diamond doesn’t? The answer you probably learned in school, “metals have free electrons”, is not wrong, but it quietly dodges the real question. A gram of diamond contains roughly as many electrons as a gram of copper. Nobody nailed them down. So why are the electrons in copper “free” and the ones in diamond not? What, physically, is the difference? It turns out the answer has nothing to do with electrons being loose or stuck. It ...</content>
  </entry>
  
  <entry>
    <title>Digital Communication: Getting a Thought Out of One Head and Into Another</title>
    <link href="https://maxclerkwell.tech/posts/digital-communication-august-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/digital-communication-august-2026/</id>
    <published>2026-08-21T00:00:00+00:00</published>
    <updated>2026-08-21T00:00:00+00:00</updated>
    
    <summary>Communication has one job: move the internal state of one system into another. This is a walk from a thought in your head to a wave on a wire, through the four sides of a message, a water canal, a push-pull driver, Shannon&apos;s channel, and the eye diagram that measures it all.</summary>
    
    
    <category term="electronics"/>
    
    <category term="embedded"/>
    
    <category term="information-theory"/>
    
    <category term="education"/>
    
    <content type="text">Communication has exactly one job. Everything else about it, the words, the wires, the protocols, the noise, is machinery in service of that one job. The Mandate You have a model in your head. It has no clean shape. It is made of pictures, feelings, memories, half-formed intentions, a smell from last summer, a plan for tomorrow. It is entirely yours, and as long as it stays inside you it is useless to anyone else. The moment you want to cooperate, that changes. Cooperation means two systems acting on a shared understanding, and a shared understanding requires that the model in your head somehow also come to exist in someone else’s. If we rule out telepathy for the moment, the only thing you can do is take that internal, shapeless state and push it out through whatever channels you have ...</content>
  </entry>
  
  <entry>
    <title>Dual Uplink, Part Two: From Failover to Load Balancing (and the Two Bugs That Broke It)</title>
    <link href="https://maxclerkwell.tech/posts/dual-uplink-load-balancing-july-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/dual-uplink-load-balancing-july-2026/</id>
    <published>2026-07-12T00:00:00+00:00</published>
    <updated>2026-07-12T00:00:00+00:00</updated>
    
    <summary>The follow-up to our dual-uplink failover setup: weighted multipath load balancing, source-based policy routing, pinning a host to one link, and the two persistence bugs that silently killed it on every reboot.</summary>
    
    
    <category term="networking"/>
    
    <category term="linux"/>
    
    <content type="text">Back in February, Philipp and I put a second uplink into the office and built dual-uplink failover on AI-heimdall: two default routes in the main table, separated by metric, DSL preferred and Starlink as a hot standby. That article ended on a promise. Two named routing tables, starlink (200) and dsl (201), were already registered in /etc/iproute2/rt_tables, sitting there unused, “as preparation for proper policy routing.” This is the article where they get used. The move from failover to load balancing sounds like a small config change. It is not. Failover is one route winning; load balancing is every layer of the stack agreeing on which uplink a given packet leaves through. And getting it to survive a reboot turned out to hinge on two bugs that had nothing to do with routing at all. Fa...</content>
  </entry>
  
  <entry>
    <title>From Bitstream to Idea: An Inverse Guide to FPGAs</title>
    <link href="https://maxclerkwell.tech/posts/from-bitstream-to-idea-inverse-fpga-guide-july-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/from-bitstream-to-idea-inverse-fpga-guide-july-2026/</id>
    <published>2026-07-08T00:00:00+00:00</published>
    <updated>2026-07-08T00:00:00+00:00</updated>
    
    <summary>The ghdl-yosys-nextpnr toolchain for an iCE40, walked backward: starting from a blinking LED and tracing every transformation back to the idea that caused it.</summary>
    
    
    <category term="fpga"/>
    
    <category term="open-source"/>
    
    <content type="text">Most FPGA tutorials, including my own, go forward: idea, block diagram, VHDL, simulate, synthesize, place and route, flash, done. That order makes sense for building something. It makes less sense for understanding the toolchain, because forward explanations tend to gloss over exactly the step you are standing on. You are told “now run synthesis” and you run it, and the tool produces a file, and you move to the next command. This post goes the other direction. I want to start at the thing you can actually observe, an LED blinking on a Lattice iCEstick, and walk backward through every transformation until we arrive at the idea that caused it. Every program in this chain is a transformer: it takes a dataset and a configuration, and it produces a different dataset. Nothing in the chain doe...</content>
  </entry>
  
  <entry>
    <title>Correlation, Causation, and the Overton Window That Only Shrinks</title>
    <link href="https://maxclerkwell.tech/posts/correlation-causation-overton-window-july-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/correlation-causation-overton-window-july-2026/</id>
    <published>2026-07-06T00:00:00+00:00</published>
    <updated>2026-07-06T00:00:00+00:00</updated>
    
    <summary>Everyone knows the first half of the aphorism. The second half is where the actual thinking happens, and I think the reflex to stop at the first half is doing something worse than being lazy.</summary>
    
    
    <category term="philosophy"/>
    
    <category term="personal"/>
    
    <content type="text">If you spend enough time around superficially intellectual people, you will have heard the phrase. Someone points at a pattern, someone else says “correlation doesn’t imply causation,” and the conversation ends there, usually with a small, satisfied smile. When I picture the moment, there is a specific face attached to it: the smug pseudo-scientist, chin slightly raised, having just deployed the one piece of statistics they remember from a first-year course as a conversation-ending device rather than a conversation-starting one. What bothers me is not the sentence. The sentence is true. What bothers me is that people only ever remember the first half of it, and that this is not an isolated case. It happens to aphorisms constantly, and it is almost never innocent. “The customer is always...</content>
  </entry>
  
  <entry>
    <title>What AI Actually Is</title>
    <link href="https://maxclerkwell.tech/posts/what-ai-actually-is-july-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/what-ai-actually-is-july-2026/</id>
    <published>2026-07-03T00:00:00+00:00</published>
    <updated>2026-07-03T00:00:00+00:00</updated>
    
    <summary>Running a chat model is not AI. The training process is. Everything else follows from that distinction, including where the human niche survives.</summary>
    
    
    <category term="ai"/>
    
    <category term="philosophy"/>
    
    <category term="education"/>
    
    <content type="text">The previous two articles built up a chain. The first ran from Aristotle’s two-valued logic through Leibniz, Boole, Gauss, and Shannon to the bit as a unit of information. The second ran from Hilbert’s decision problem through Turing, the Universal Approximation Theorem, and Banach’s convergence guarantee to the modern neural network. This article asks what to make of all of it: what is the thing we are actually calling AI, and where does it leave the human? I want to start with something I find useful to keep in front of me, because it clarifies almost every confused conversation about AI I have ever had. Blackboxes and the Manual Way Think of a real-world function as a black box. Something goes in, something comes out, according to some rule. The box does not care what you think is in...</content>
  </entry>
  
  <entry>
    <title>From the UAT to the Modern Neural Network</title>
    <link href="https://maxclerkwell.tech/posts/from-the-uat-to-the-modern-neural-network-july-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/from-the-uat-to-the-modern-neural-network-july-2026/</id>
    <published>2026-07-03T00:00:00+00:00</published>
    <updated>2026-07-03T00:00:00+00:00</updated>
    
    <summary>We have the bit. Now the question is what we can compute with it, and whether a machine can learn to compute things nobody explicitly programmed. The answer runs from Hilbert through Turing to a theorem most engineers have never heard of.</summary>
    
    
    <category term="ai"/>
    
    <category term="information-theory"/>
    
    <category term="history"/>
    
    <category term="education"/>
    
    <content type="text">The previous article ended with a precise unit: the bit, as Shannon defined it, measures how much uncertainty a message resolves. We have a way to represent information. We have a way to build logical operations from switches. We know, from Gauss and Weber, that a wire can carry two distinguishable states. The question this article asks is the next one in the chain: what can we actually compute with all of this, and is there a limit? That question turns out to be older than the computer. It starts with a mathematician who wanted to mechanise all of mathematics, runs through a logician who showed that was impossible, and ends with a computer scientist who redefined what “mechanical” even means. Hilbert’s Question: Can a Machine Decide Everything? In 1928, David Hilbert posed what he call...</content>
  </entry>
  
  <entry>
    <title>From Aristotle to the Bit</title>
    <link href="https://maxclerkwell.tech/posts/from-aristotle-to-the-bit-july-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/from-aristotle-to-the-bit-july-2026/</id>
    <published>2026-07-03T00:00:00+00:00</published>
    <updated>2026-07-03T00:00:00+00:00</updated>
    
    <summary>The bit did not fall from the sky in 1948. It is the last step in a chain that starts with a Greek philosopher arguing about sea battles and ends with Claude Shannon measuring surprise.</summary>
    
    
    <category term="information-theory"/>
    
    <category term="philosophy"/>
    
    <category term="history"/>
    
    <category term="education"/>
    
    <content type="text">I want to tell you about a chain of ideas that took roughly 2300 years to complete. It starts with Aristotle sitting in Athens arguing about whether a statement like “there will be a sea battle tomorrow” is true or false right now. It ends with Claude Shannon (Fig. 1), in a small office at Bell Labs in 1948, writing down a formula that tells you exactly how much information is contained in a message. The distance between those two moments is the distance between informal common sense and a mathematically precise engineering tool. Understanding that distance, how each step in the chain was necessary and what each step actually contributed, is one of the most clarifying things you can do if you are trying to understand how digital technology actually works at its root. So let me walk thro...</content>
  </entry>
  
  <entry>
    <title>How Monolatry Shapes My Worldview</title>
    <link href="https://maxclerkwell.tech/posts/how-monolatry-shapes-my-worldview-june-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/how-monolatry-shapes-my-worldview-june-2026/</id>
    <published>2026-06-21T00:00:00+00:00</published>
    <updated>2026-06-21T00:00:00+00:00</updated>
    
    <summary>From polytheism as a map of the inner life, through the slow emergence of the individual voice, to the moment one god is raised above the rest, and what that means for how I actually live.</summary>
    
    
    <category term="philosophy"/>
    
    <category term="history"/>
    
    <category term="personal"/>
    
    <content type="text">A few weeks ago I had a long conversation with an AI about Calvinism. It started as a question about TULIP (the five points: predestination, limited atonement, and the rest) and ended somewhere I had not expected: in a place where I was trying to articulate, clearly and out loud, what I actually believe about God, religion, and what the whole arc of Western theology is pointing toward. This article is my attempt to write that down more carefully. I want to approach it from an unusual angle. Not starting with doctrine, but with psychology. Not with the question of what is true, but with the prior question of what gods actually are, and what the human encounter with them reveals about the structure of the mind doing the encountering. Let me be precise about that framing: I do not think hu...</content>
  </entry>
  
  <entry>
    <title>Post the Wrong Answer. You&apos;ll Learn More.</title>
    <link href="https://maxclerkwell.tech/posts/cunninghams-law-june-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/cunninghams-law-june-2026/</id>
    <published>2026-06-19T00:00:00+00:00</published>
    <updated>2026-06-19T00:00:00+00:00</updated>
    
    <summary>Cunningham&apos;s Law says the fastest way to get the right answer online is to post the wrong one. I&apos;ve been doing this accidentally for years, and I think there&apos;s something serious underneath the joke.</summary>
    
    
    <category term="philosophy"/>
    
    <category term="personal"/>
    
    <content type="text">Someone on Quora asked: “Murphy’s Law states that the best way to get the right answer on the internet is not to ask a question, it’s to post the wrong answer. What are some examples where you applied this law?” The first reply: “This is Cunningham’s Law and not Murphy’s Law.” The correction proves the law. Whoever posted that question, intentionally or not, ran the most elegant demonstration possible. What Cunningham’s Law Actually Says Ward Cunningham, the programmer who invented the wiki, is credited with the observation: the best way to get the right answer on the internet is not to ask a question but to post the wrong answer. It works because of a deep asymmetry in human motivation. Watching someone be wrong activates something in most people that a politely phrased question does n...</content>
  </entry>
  
  <entry>
    <title>Zero to One: Python Libraries, Environments, and Working Like You Mean It</title>
    <link href="https://maxclerkwell.tech/posts/zero-to-one-python-libraries-environments-june-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/zero-to-one-python-libraries-environments-june-2026/</id>
    <published>2026-06-16T00:00:00+00:00</published>
    <updated>2026-06-16T00:00:00+00:00</updated>
    
    <summary>You do not have to write everything from scratch. Python has thousands of libraries. But the way you pull them in matters, and most introductions get that part wrong.</summary>
    
    
    <category term="python"/>
    
    <category term="education"/>
    
    <category term="zero-to-one"/>
    
    <content type="text">Python and the Python logo are trademarks of the Python Software Foundation. You have heard of Python. Maybe someone mentioned it in passing, maybe you saw a snippet online and thought it looked approachable. You are not sure where to start. This article is for you. The goal is not to teach you the language. It is to show you the three things that matter before you write a single function: how to explore interactively, where to find code that already exists, and how to manage dependencies without making a mess of your machine. By the end, you will have a working Python script, a proper project structure, and an understanding of why each piece is there. One thing before we start: this article assumes Linux. If you are serious about programming and you are not on Linux yet, fix that first...</content>
  </entry>
  
  <entry>
    <title>WTF are FPGAs: A Beginner&apos;s Overview of Field-Programmable Gate Arrays</title>
    <link href="https://maxclerkwell.tech/posts/wtf-are-fpgas-june-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/wtf-are-fpgas-june-2026/</id>
    <published>2026-06-15T00:00:00+00:00</published>
    <updated>2026-06-15T00:00:00+00:00</updated>
    
    <summary>FPGAs are not microcontrollers with more pins. They are a fundamentally different category of IC, and understanding what lives inside one changes how you think about digital hardware entirely.</summary>
    
    
    <category term="fpga"/>
    
    <category term="electronics"/>
    
    <category term="education"/>
    
    <content type="text">📺 Companion video: If you hang around electronics forums long enough, someone will eventually ask whether they should use a microcontroller or an FPGA for their project. The question itself reveals a misunderstanding. FPGAs do not compete with microcontrollers. They occupy a different region of the design space entirely, and conflating them obscures what makes each tool genuinely useful. This article is a ground-up introduction to what FPGAs actually are, where they come from, what lives inside them, and what it takes to put one to work. A Brief History: From 74-Series to Field-Programmable When I started building digital circuits in the mid-nineties, the standard approach was to wire up 74-series logic ICs on a breadboard. These are small, cheap packages, each containing a handful of l...</content>
  </entry>
  
  <entry>
    <title>A Hill I Am Willing to Die On: HDL for PCB Netlists</title>
    <link href="https://maxclerkwell.tech/posts/hdl-for-netlists-june-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/hdl-for-netlists-june-2026/</id>
    <published>2026-06-08T00:00:00+00:00</published>
    <updated>2026-06-08T00:00:00+00:00</updated>
    
    <summary>Schematics are not where PCB design should start. Netlists should be generated from a structured hardware description language, and that changes everything about how AI fits into the picture.</summary>
    
    
    <category term="pcb"/>
    
    <category term="engineering"/>
    
    <category term="ai"/>
    
    <content type="text">This afternoon someone replied to one of my posts on X. The reply was from @blind_via and made the point that what I was describing already exists as a netlist, that schematics come from human creativity, and that removing humans from the loop leads to the same place as vibe coding. Fair points, all of them. But they did not change my mind. What pushed me to write this out properly is something I keep hearing from people at university: AI will take a very long time to solve PCB design. Routing is too hard. Schematics require real engineering intuition. The problem is fundamentally different from software. I disagree. Not because I think AI is magic, but because I think the problem is being misidentified. Schematics Are Not the Ground Truth I have written before about why PCB design shou...</content>
  </entry>
  
  <entry>
    <title>Physics Doesn&apos;t Explain Anything. And That&apos;s the Point.</title>
    <link href="https://maxclerkwell.tech/posts/physics-description-not-explanation-june-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/physics-description-not-explanation-june-2026/</id>
    <published>2026-06-04T00:00:00+00:00</published>
    <updated>2026-06-04T00:00:00+00:00</updated>
    
    <summary>My high school teacher told me physics explains the world. Years later I think that&apos;s completely wrong, and understanding why changes everything about how you approach the subject.</summary>
    
    
    <category term="physics"/>
    
    <category term="philosophy"/>
    
    <category term="education"/>
    
    <content type="text">When I was in school, my physics teacher told me that physics explains the world. I believed that for years. It sounded profound. It gave the subject a kind of grandeur, as if sitting through enough lectures about pendulums and ideal gases would eventually unlock some deep understanding of why reality is the way it is. Today I think that framing is completely wrong. Not slightly off, not a useful simplification: wrong in a way that actively misleads people about what physics is and what it is for. And I think this misunderstanding is one of the main reasons students either develop an inflated reverence for the subject or walk away from it feeling like they missed something fundamental. Physics does not explain the world. Physics describes it. That is a small grammatical shift with enorm...</content>
  </entry>
  
  <entry>
    <title>Autonomous Will, Heteronomous Will, and the Work of Becoming Yourself</title>
    <link href="https://maxclerkwell.tech/posts/autonomous-will-kant-june-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/autonomous-will-kant-june-2026/</id>
    <published>2026-06-03T00:00:00+00:00</published>
    <updated>2026-06-03T00:00:00+00:00</updated>
    
    <summary>Kant draws a sharp line between acting from your own reason and acting from external pressure. But where does your reason actually come from? An exploration of autonomy, heteronomy, archetypes, and the slow work of building a self you can stand behind.</summary>
    
    
    <category term="philosophy"/>
    
    <category term="personal"/>
    
    <content type="text">This morning I sat in the waiting area outside a courtroom at the Bochum district court. I was there as a witness. The room was empty. The court had placed reading material on the chairs (phones are more or less prohibited in that part of the building), and one of the items was a copy of Kant’s Groundwork of the Metaphysics of Morals. I had not picked up Kant since highschool. Back then it was homework. Now, sitting alone in that silent corridor, I opened it and felt something I had not expected: the book hit differently. Not because the words had changed. Because I had. This post is an attempt to write down what I have been thinking about the whole day. What Kant Actually Means by Autonomous Will Kant draws one of the sharpest distinctions in all of moral philosophy: the difference bet...</content>
  </entry>
  
  <entry>
    <title>Physics, Math, or Engineering? How do you decide</title>
    <link href="https://maxclerkwell.tech/posts/physics-math-or-engineering-how-do-you-decide/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/physics-math-or-engineering-how-do-you-decide/</id>
    <published>2026-06-01T00:00:00+00:00</published>
    <updated>2026-06-01T00:00:00+00:00</updated>
    
    <summary>What is the real difference between physics, mathematics, and engineering — and how do you choose the right degree? A personal account from someone who studied all three.</summary>
    
    
    <category term="physics"/>
    
    <category term="engineering"/>
    
    <category term="education"/>
    
    <category term="personal"/>
    
    <content type="text">When I was a child, I spent a lot of time in industrial halls and at trade fairs instead of sitting in classrooms. My father studied electrical engineering first and then mechanical engineering. He worked on differential dosing scales early in his career and later moved to Degussa, where he designed complete process engineering plants. By his forties he was responsible for planning and realizing large industrial facilities, both in Germany and in China. One of the things that always impressed me was that he started building plants in Shanghai already in 1979. When he showed me the old photographs, the China in those pictures looked almost unrecognizable compared to today. He witnessed and helped shape that transformation over more than two decades. I could feel how much pride and respon...</content>
  </entry>
  
  <entry>
    <title>PDSC4K 2026: Everything, Everywhere, All at Once</title>
    <link href="https://maxclerkwell.tech/posts/pdsc4k-may-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/pdsc4k-may-2026/</id>
    <published>2026-05-23T00:00:00+00:00</published>
    <updated>2026-05-23T00:00:00+00:00</updated>
    
    <summary>The Practical Data Science Congress (PDSC4K) in Bochum proved that small, deliberately compact events can deliver more signal than most large conferences — especially when the real topic is the messy reality of getting data from the physical world into models that don&apos;t lie to you.</summary>
    
    
    <category term="conferences"/>
    
    <content type="text">On 22 May 2026 the **Practical Data Science Congress 4000** — PDSC4K for short — took place at the ZESS in Bochum. The goal was explicit: show data science as a practical tool for real problems, not as a buzzword. With roughly twenty participants from industry, research, and academia, the format was kept intentionally small. That constraint created the conditions for something rarer than most conferences manage: actual conversation instead of performance. I opened the day with the keynote — &quot;Everything, Everywhere, All at Once&quot;. ![Delivering the keynote at PDSC4K – four zones, one responsibility per box](/posts/pdsc4k-may-2026/assets/keynote-me-on-stage.jpg) ## The Keynote: Everything, Everywhere, All at Once The talk was built around a simple diagram that splits the data journey into f...</content>
  </entry>
  
  <entry>
    <title>Zero to One: Fun with SWD</title>
    <link href="https://maxclerkwell.tech/posts/swd-openocd-blinky-may-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/swd-openocd-blinky-may-2026/</id>
    <published>2026-05-20T00:00:00+00:00</published>
    <updated>2026-05-20T00:00:00+00:00</updated>
    
    <summary>You do not need to write a single line of C to talk to a microcontroller. With OpenOCD and a telnet connection you can toggle GPIO pins directly from your terminal — and that is exactly how we build a blinky on an STM32F303K8 Nucleo-32.</summary>
    
    
    <category term="embedded"/>
    
    <category term="zero-to-one"/>
    
    <content type="text">Most embedded tutorials start the same way: install the toolchain, write a `main.c`, fight the linker script, flash the binary, and then — finally — a LED blinks. That is a perfectly valid path. But there is a shorter one, and it teaches you something the longer path tends to skip: registers are just memory. You can read and write them directly, from your laptop, without compiling anything. This post shows how to do exactly that on an [**STM32F303K8 Nucleo-32**](https://www.mouser.de/ProductDetail/STMicroelectronics/NUCLEO-F303K8?qs=kWQV1gtkNndPxYr6NNfTBw%3D%3D) using **OpenOCD** and a plain **telnet** session. ![STM32F303K8 Nucleo-32 on the desk](/posts/swd-openocd-blinky-may-2026/assets/Title.jpg) --- ## What Is SWD? Serial Wire Debug Explained **Serial Wire Debug** (SWD) is a two-wir...</content>
  </entry>
  
  <entry>
    <title>Simulating Antiproton Energy Loss in an HV-MAPS Silicon Sensor with Geant4</title>
    <link href="https://maxclerkwell.tech/posts/hv-maps-energy-loss-simulation-may-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/hv-maps-energy-loss-simulation-may-2026/</id>
    <published>2026-05-18T00:00:00+00:00</published>
    <updated>2026-05-18T00:00:00+00:00</updated>
    
    <summary>A first-principles walkthrough of using Geant4 to simulate how much energy an antiproton deposits in a thin HV-MAPS silicon sensor — including a hand-worked Bethe-Bloch example, the Landau distribution, and why this matters for detector design before you ever see a beam.</summary>
    
    
    <category term="physics"/>
    
    <content type="text">![Stephan Bökelmann a.k.a MaxClerkwell and another researcher from RUB standing in a supermarket parking lot on Corfu — the store sign reads &quot;PROTON&quot;. Stephan holds his thumb down, because he is firmly on Team Antiproton.](/posts/hv-maps-energy-loss-simulation-may-2026/assets/me-being-anti-proton.jpg) Three years ago, a colleague and I stumbled across a supermarket on Corfu called **PROTON**. I am holding my thumb down in the photo. Team Antiproton does not endorse protons. That same commitment to antimatter is also why I spent a recent weekend setting up Geant4 to answer a very concrete question: how much energy does an antiproton actually deposit in a silicon pixel sensor as thin as the ones we work with? --- ## What Is HV-MAPS? High Voltage Monolithic Active Pixel Sensors A conventio...</content>
  </entry>
  
  <entry>
    <title>Zero to One: VHDL and a Lattice iCEstick</title>
    <link href="https://maxclerkwell.tech/posts/fpga-blinky-vhdl-icestick-may-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/fpga-blinky-vhdl-icestick-may-2026/</id>
    <published>2026-05-14T00:00:00+00:00</published>
    <updated>2026-05-14T00:00:00+00:00</updated>
    
    <summary>A complete walkthrough of writing VHDL, simulating it with GHDL, and flashing a blinking LED onto a Lattice iCEstick — from zero assumptions to a physical result.</summary>
    
    
    <category term="fpga"/>
    
    <category term="zero-to-one"/>
    
    <content type="text">![iCEstick leaning against a Ruhr-Universität Bochum physics department mug, mixer and monitor in the background](/posts/fpga-blinky-vhdl-icestick-may-2026/assets/titlepic.jpg) This post is the first in a series on FPGA development with open-source tools. By the end you will have blinked an LED on real hardware, and you will understand every step between writing the VHDL source and the moment the LED actually blinks. No prior HDL experience is assumed. If you know what a for-loop is, you have enough background. --- ## What Is an FPGA and Why Does It Matter? A microcontroller runs a program. An FPGA does something fundamentally different: you describe a circuit, and the chip reconfigures its internal wiring to *become* that circuit. There is no instruction fetch, no program counter, no i...</content>
  </entry>
  
  <entry>
    <title>Viewing Plots from My Homelab Over SSH X11 Forwarding</title>
    <link href="https://maxclerkwell.tech/posts/x11-forwarding-bastion-may-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/x11-forwarding-bastion-may-2026/</id>
    <published>2026-05-13T00:00:00+00:00</published>
    <updated>2026-05-13T00:00:00+00:00</updated>
    
    <summary>How to forward X11 through a bastion server to display images and plots from a home machine on a university workstation, without copying files.</summary>
    
    
    <category term="linux"/>
    
    <category term="networking"/>
    
    <content type="text">Sometimes I am in a terminal on my home machine, a Python or C++ script runs through, it produces a plot, and I want to look at it. The problem: I am sitting at my university workstation. Switching to another terminal, running `scp`, opening the file locally, then switching back — that is enough friction to be genuinely annoying when you are in the middle of iterating on something. SSH X11 forwarding solves this. The image renders on the remote machine and the window appears locally, as if the application were running here. Getting it to work through a bastion server took a few steps worth writing down. ## The Setup My homelab sits behind a router with no public IP. Between it and the outside world is Heimdall — a rented server with a public IP address. Heimdall is a **bastion server**:...</content>
  </entry>
  
  <entry>
    <title>How Two Teenagers, a Printer Plug, and a Forum Post Built a Company</title>
    <link href="https://maxclerkwell.tech/posts/auto-intern-obd-vcds-may-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/auto-intern-obd-vcds-may-2026/</id>
    <published>2026-05-06T00:00:00+00:00</published>
    <updated>2026-05-06T00:00:00+00:00</updated>
    
    <summary>Auto-Intern GmbH turns 25. This is the story of how it started: two kids in a bedroom, a GTI, an RS-232 adapter, and the accidental invention of a market.</summary>
    
    
    <category term="automotive"/>
    
    <category term="personal"/>
    
    <content type="text">I joined Auto-Intern in 2014, when the company acquired my workshop, Kfz-Technik Bökelmann. By then, Auto-Intern was already an institution in the German-speaking automotive world — the go-to address for VCDS diagnostic interfaces. But the story of how it got there is one I have spent the last decade slowly piecing together from the people who lived it. This year, Auto-Intern turns 25. It feels like the right moment to write it down. A GTI, a Radio, and a Wild Idea In 2001, Benjamin Menküc — everyone calls him Benne — and Odin Holmes were still in school. Odin was an American citizen, in Germany on a student exchange program. The two met as classmates. Benne had a Golf GTI. He also had the very specific frustration of anyone who drives on the Autobahn: at high speed, road noise drowns o...</content>
  </entry>
  
  <entry>
    <title>Are Machines Conscious? A Snapshot</title>
    <link href="https://maxclerkwell.tech/posts/machine-consciousness-may-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/machine-consciousness-may-2026/</id>
    <published>2026-05-05T00:00:00+00:00</published>
    <updated>2026-05-05T00:00:00+00:00</updated>
    
    <summary>What does consciousness mean — and where on that spectrum do beetles, dogs, humans, and language models sit? No final answers, but an honest attempt to think the question through.</summary>
    
    
    <category term="ai"/>
    
    <category term="philosophy"/>
    
    <content type="text">![Are Machines Conscious?](/posts/machine-consciousness-may-2026/assets/title1.png) *What follows is not a finished argument and not a manifesto. It is a snapshot — an attempt to sort out thoughts that have been occupying me for a while. I explicitly reserve the right to think differently tomorrow.* --- ## The Bird and the Airplane Yesterday, in a conversation with Tabea, she made a remark that stuck with me. We were talking about AI and consciousness, and she said something along the lines of: a plane flies too, but it is not a bird. It turns out this intuition has a precise formulation. Steven Pinker writes in *How the Mind Works* (1997): &gt; &quot;To explain how birds fly, we invoke principles of lift and drag and fluid mechanics that also explain how airplanes fly. That does not commit us ...</content>
  </entry>
  
  <entry>
    <title>The Game of Life and the Limits of Prediction</title>
    <link href="https://maxclerkwell.tech/posts/game-of-life-may-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/game-of-life-may-2026/</id>
    <published>2026-05-04T00:00:00+00:00</published>
    <updated>2026-05-04T00:00:00+00:00</updated>
    
    <summary>A colleague called it &apos;useless math but super fun.&apos; I objected. Conway&apos;s Game of Life connects self-replicating machines, Wolfram&apos;s computational irreducibility, and the unsettling possibility that entropy is not just disorder — it is the universe refusing to be calculated.</summary>
    
    
    <category term="philosophy"/>
    
    <category term="physics"/>
    
    <content type="text">A friend sent me a link to a simulation running in a browser tab: [oimo.io/works/life](https://oimo.io/works/life/). She had heard of it — two colleagues from the physics department had mentioned it. One of them called it &quot;useless math but super fun.&quot; I objected. It is the complete opposite of useless math. It is one of the most significant discoveries in science. That conviction is what this post is about. ![Conway&apos;s Game of Life — structures evolving on a grid](/posts/game-of-life-may-2026/assets/GoL-Opener.png) ## Where Conway&apos;s Game of Life Comes From In the late 1940s and early 1950s, Stanisław Ulam and John von Neumann were close friends and colleagues at Los Alamos, but they were circling the same idea from different angles. Ulam was studying how crystals grow: the way a regular ...</content>
  </entry>
  
  <entry>
    <title>Zero to One: A Personal Journal Bot with Telegram and Gemini</title>
    <link href="https://maxclerkwell.tech/posts/telegram-journal-bot-may-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/telegram-journal-bot-may-2026/</id>
    <published>2026-05-03T00:00:00+00:00</published>
    <updated>2026-05-03T00:00:00+00:00</updated>
    
    <summary>I spent a day building a Dockerized Telegram bot that turns voice messages and scattered thoughts into a structured journal, Obsidian topic notes, and a compiled LaTeX memoir — and what I learned about LLM APIs along the way.</summary>
    
    
    <category term="python"/>
    
    <category term="ai"/>
    
    <category term="zero-to-one"/>
    
    <content type="text">I have been meaning to journal consistently for years. The friction has never been motivation — it has always been the blank page. Opening a text editor, deciding on a format, remembering what happened, structuring it. By the time I have done all of that, the thought I wanted to capture has either sharpened itself into something obvious or dissolved entirely. So I built a bot that does the structuring for me. ## What the Telegram Journal Bot Does You send a message to a Telegram bot. The bot asks you one follow-up question. You answer. It might ask another. After two or three exchanges it writes a journal entry, extracts a topic note in Obsidian-compatible markdown, and commits both to a private git repository. Voice messages get transcribed. Photos get analysed — Gemini looks at the im...</content>
  </entry>
  
  <entry>
    <title>Enclosureless Cases: When the PCB Is the Enclosure</title>
    <link href="https://maxclerkwell.tech/posts/enclosureless-cases-april-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/enclosureless-cases-april-2026/</id>
    <published>2026-04-29T00:00:00+00:00</published>
    <updated>2026-04-29T00:00:00+00:00</updated>
    
    <summary>Enclosureless Cases: a patented approach to PCB housing where three stacked PCBs form a sealed, EMC-shielded enclosure using a perimeter solder joint — no injection moulding, no tooling, no separate supply chain.</summary>
    
    
    <category term="pcb"/>
    
    <category term="electronics"/>
    
    <category term="open-source"/>
    
    <content type="text">Five years ago Odin Holmes and I filed a utility model at the German Patent and Trade Mark Office. The registration number is DE202020106111U1, the official title is Leiterplattengehäusevorrichtung mit wenigstens drei gehäusebildenden Leiterplattenelementen — which is how you have to phrase things for the authorities — and the idea behind it is this: you do not need a separate enclosure if the PCB stack itself is the enclosure. We call it Enclosureless Cases. The Problem with Conventional Sensor Enclosures Sensors are cheap. A BME280 humidity and temperature chip costs well under a euro. A simple microcontroller to go with it costs similarly little. You can put together a capable sensing node for five or six euros in components. Then you need to put it somewhere. A plastic injection-mou...</content>
  </entry>
  
  <entry>
    <title>A Database Is Not an API</title>
    <link href="https://maxclerkwell.tech/posts/databases-behind-an-api/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/databases-behind-an-api/</id>
    <published>2026-04-24T00:00:00+00:00</published>
    <updated>2026-04-24T00:00:00+00:00</updated>
    
    <summary>Why we never expose a database directly — how to layer FastAPI, Keycloak, and PostgreSQL for clean access control, testable endpoints, and a stable client interface.</summary>
    
    
    <category term="databases"/>
    
    <category term="engineering"/>
    
    <category term="python"/>
    
    <content type="text">When we set up databases for clients at [nerd_force1](https://nerd-force1.com), one rule holds without exception: the database is never the outermost layer. This post explains why, and what we put in front of it instead. ## Why Exposing a Database Directly Is a Mistake Every relational database ships with access control. MySQL has users and privileges. PostgreSQL has roles and schemas. You can, technically, hand a client a connection string and call it done. The problem is that a database&apos;s built-in access model is designed for database administrators, not for application users. It answers questions like &quot;can this user read this table?&quot; — but not &quot;can this user read *their own* rows in this table, filtered by their organization, with rate limiting, and with that action logged?&quot; For anyt...</content>
  </entry>
  
  <entry>
    <title>The Recursion Problem in Relational Algebra</title>
    <link href="https://maxclerkwell.tech/posts/relational-algebra-recursion-problem/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/relational-algebra-recursion-problem/</id>
    <published>2026-04-24T00:00:00+00:00</published>
    <updated>2026-04-24T00:00:00+00:00</updated>
    
    <summary>Relational algebra cannot express recursive queries — here is why transitive closure is outside the algebra&apos;s scope, and what SQL&apos;s WITH RECURSIVE actually means.</summary>
    
    
    <category term="databases"/>
    
    <category term="education"/>
    
    <content type="text">Relational algebra is the theoretical backbone of every query you will ever write against a relational database. Selection, projection, join, union — five or six operations, and you can express almost any query imaginable. Almost. There is one class of problem it cannot touch, and understanding why is one of the more instructive moments in database theory. ## What Relational Algebra Is Good At A relational algebra expression takes one or more relations (tables) as input and produces a new relation as output. The expression is finite: a fixed number of operations, applied once, returning a result. This is a feature, not a bug — it makes queries predictable, optimizable, and mathematically well-behaved. Consider a simple employee table with columns `id`, `name`, and `manager_id`. Finding ...</content>
  </entry>
  
  <entry>
    <title>Zero to One: Why a Filesystem Is Not a Database</title>
    <link href="https://maxclerkwell.tech/posts/dbms-01-why-files-are-not-enough/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/dbms-01-why-files-are-not-enough/</id>
    <published>2026-04-23T00:00:00+00:00</published>
    <updated>2026-04-23T00:00:00+00:00</updated>
    
    <summary>Why relational databases exist — a teaching practicum that makes students feel the pain of querying 120 CSV files with shell tools before showing them SQL. Imperative vs. declarative, made concrete.</summary>
    
    
    <category term="databases"/>
    
    <category term="education"/>
    
    <content type="text">Yes, I&apos;m aware: nobody in production actually stores sensor data as 120 CSV files in a flat directory. At least I hope not. But that&apos;s precisely why this works as a teaching exercise — it&apos;s artificial enough to be harmless, and realistic enough to sting. The first practicum I built for the DBMS course at THGA Bochum ([DBMS_01](https://github.com/MaxClerkwell/DBMS_01)) doesn&apos;t teach students how SQL works. It teaches them why SQL exists. ## The Setup Students generate synthetic sensor data: temperature readings from four sensors, three times a day, over thirty days. That&apos;s 120 CSV files and 360 rows total. Nothing exotic. Exactly the kind of mess that accumulates when a small team decides &quot;we&apos;ll figure out the storage later.&quot; Then they solve three tasks: 1. Filter and sort readings from ...</content>
  </entry>
  
  <entry>
    <title>If We Can Measure It, You Can Improve It</title>
    <link href="https://maxclerkwell.tech/posts/ai-gruppe-manifesto/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/ai-gruppe-manifesto/</id>
    <published>2026-04-20T00:00:00+00:00</published>
    <updated>2026-04-20T00:00:00+00:00</updated>
    
    <summary>Why we build monitoring systems — the case for industrial automation as human liberation, retrofit over greenfield, and why the sensor is the critical missing link between AI and the physical world.</summary>
    
    
    <category term="ai"/>
    
    <category term="monitoring"/>
    
    <category term="philosophy"/>
    
    <content type="text">Robotics gives machines hands. AI gives machines judgment. Monitoring gives machines senses. Without the senses, the hands are blind and the judgment is deaf. The Apple on the Tree Ten years ago, as a student, I asked myself a simple question: why does this apple cost money? The apple growing on the branch costs nothing. The apple in the store costs something. The difference is human labor — hands that picked it, trucks that moved it, systems that tracked it. Every euro in the price tag is a unit of human time that had to be spent. If that is true, then the path to making humanity genuinely richer is not to work more. It is to need fewer human hours per unit of civilization. This is why we build what we build. The Uncomfortable Truth About Automation and Jobs Most people fear automation...</content>
  </entry>
  
  <entry>
    <title>Travelling to China with a Peli Case Full of Electronics</title>
    <link href="https://maxclerkwell.tech/posts/ata-carnet-china-travel/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/ata-carnet-china-travel/</id>
    <published>2026-04-09T00:00:00+00:00</published>
    <updated>2026-04-09T00:00:00+00:00</updated>
    
    <summary>Practical guide for engineers flying to China with professional electronics — ATA Carnet process, Frankfurt customs, Guangzhou departure, apps to install, and a full pre-trip checklist.</summary>
    
    
    <category term="electronics"/>
    
    <category term="conferences"/>
    
    <content type="text">When I went to Dongguan for EMC testing in March, I brought a Peli case full of custom electronics as checked luggage. This post is the logistics companion to that trip — everything I learned about ATA Carnets, airport customs, and travelling with hardware that looks suspicious to anyone who doesn’t build it. Why Not Ship Electronics to China Instead? Shipping electronics to China for testing and back is a customs nightmare. Import duties, VAT, potential seizure, weeks of waiting. The cleaner solution for temporary export of commercial goods is an ATA Carnet — essentially a passport for your equipment. You declare that you are taking specific items out of your home country, into a foreign country, and bringing them back. No duties, no VAT, as long as everything returns. How to Get an AT...</content>
  </entry>
  
  <entry>
    <title>EMC in Dongguan: 2.5 Years of Work, 4 Days in a Test Chamber</title>
    <link href="https://maxclerkwell.tech/posts/dongguan-emc-march-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/dongguan-emc-march-2026/</id>
    <published>2026-04-01T00:00:00+00:00</published>
    <updated>2026-04-01T00:00:00+00:00</updated>
    
    <summary>CE, FCC, and CCC certification in Dongguan — four days at NTC test lab with a PoE-based reflow oven monitoring system after 2.5 years of development. What we tested, what we found, and what the anodized housing almost cost us.</summary>
    
    
    <category term="electronics"/>
    
    <category term="monitoring"/>
    
    <content type="text">In March I flew to Dongguan, China for four days of EMC testing. It was the last major milestone before our reflow oven monitoring system goes into production. After two and a half years of development, the question was simple: does this thing radiate, and can it take a hit? It passed. But the story is more interesting than that. The Project: Reflow Oven Monitoring for Kurtz Ersa The system was commissioned by GlobalPoint GmbH, now part of Kurtz Ersa GmbH &amp;amp; Co. KG, one of the leading manufacturers of reflow soldering equipment. The brief: build a monitoring system that attaches to Ersa’s reflow ovens and gives operators real-time insight into what is actually happening inside the machine — not what the oven thinks is happening, but what the physics says. The development was handled ...</content>
  </entry>
  
  <entry>
    <title>Ten Years of Conferences: What They&apos;re Actually For</title>
    <link href="https://maxclerkwell.tech/posts/why-conferences-march-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/why-conferences-march-2026/</id>
    <published>2026-03-15T00:00:00+00:00</published>
    <updated>2026-03-15T00:00:00+00:00</updated>
    
    <summary>Ten years of attending and organising technical conferences — what they&apos;re actually for, why the hallway track beats the programme, and how emBO++ grew from four people to 250. Lessons from Meeting C++, KiCon, GSI, and ISO C++.</summary>
    
    
    <category term="conferences"/>
    
    <category term="personal"/>
    
    <category term="open-source"/>
    
    <content type="text">In 2015 I went to my first real conference. I came back a different engineer. That sounds dramatic, but it&apos;s accurate, and it took me a while to understand why. This post is an attempt to write that down — both for myself, after ten years, and for the companies, universities, and open-source projects that keep asking us at [Open Skunkforce e.V.](https://skunkforce.org) how we think about this. ## How Meeting C++ 2015 Changed How I Think About Engineering I went to **Meeting C++ 2015** with my colleague [Odin Holmes](https://x.com/odinthenerd). At that point I thought I was a reasonably competent programmer. I was wrong — not in the way that&apos;s demoralising, but in the way that only becomes visible when you&apos;re suddenly in a room full of people who have been thinking deeply about problems ...</content>
  </entry>
  
  <entry>
    <title>Dual Uplink for 15 People: Starlink, Heimdall, and Linux Routing</title>
    <link href="https://maxclerkwell.tech/posts/dual-uplink-feb-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/dual-uplink-feb-2026/</id>
    <published>2026-02-27T00:00:00+00:00</published>
    <updated>2026-02-27T00:00:00+00:00</updated>
    
    <summary>How to set up dual uplink failover for an office network using Linux routing, Starlink, and metric-based default routes — with a Python dashboard to monitor both links in real time.</summary>
    
    
    <category term="networking"/>
    
    <category term="linux"/>
    
    <content type="text">At some point, one internet connection isn’t enough. We hit that point when 15 people were working in the office simultaneously and the line was noticeably sluggish — video calls, git pushes, remote access, all sharing a single uplink. Philipp and I tackled it in February. Philipp is our server administrator — still working on his bachelor’s degree, but already operating at a level that leaves many professional admins behind. Together we’ve set up mesh backhauls, VPNs, intranets, a Kubernetes cluster, Ceph storage, Keycloak for all our internal services — and quite a bit more. If a service runs in our office, Philipp either built it or knows every corner of it. The network upgrade in February was one more chapter in a long list. The Problem: One Uplink for 15 People Our existing network...</content>
  </entry>
  
  <entry>
    <title>Ten Years of PowerSense: Blood, Sweat, and Ferrite Cores</title>
    <link href="https://maxclerkwell.tech/posts/skainet-powersense-jan-2026/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/skainet-powersense-jan-2026/</id>
    <published>2026-01-15T00:00:00+00:00</published>
    <updated>2026-01-15T00:00:00+00:00</updated>
    
    <summary>How we built a non-contact PoE power monitor for DB Netz railway switching stations — ten years of E-field sensing, embedded ferrite cores, EMC certification, and the hardware lessons that shaped everything since.</summary>
    
    
    <category term="electronics"/>
    
    <category term="monitoring"/>
    
    <category term="engineering"/>
    
    <content type="text">January 2016. A call came in through a mutual contact — [Steffen Scholle](https://eximentor.de/en/home/), at the time an Ex-inspector at DEKRA and today a respected Ex-consultant — connecting us with DB Netz AG. They had a problem: they needed a smarter way to monitor the power supply of their railway switching systems. Three-phase, 16A lines, 1.5mm² cross-section. And they needed it non-intrusively, clip-on, retrofit. No rewiring. No outages. No excuses. All the pieces already existed internally — E-field sensing, Hall probes, PoE prototypes — and the moment we heard the requirement, we knew exactly what to assemble. January 2016 was the moment it became real. A customer with a real problem, a real network, and real consequences if the measurements were wrong. Ten years later, that cal...</content>
  </entry>
  
  <entry>
    <title>PCB Design Starts With a README</title>
    <link href="https://maxclerkwell.tech/posts/pcb-block-diagrams-december-2025/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/pcb-block-diagrams-december-2025/</id>
    <published>2025-12-10T00:00:00+00:00</published>
    <updated>2025-12-10T00:00:00+00:00</updated>
    
    <summary>Before opening KiCad, create a README and let an LLM generate a PlantUML block diagram. Why writing design intent first prevents costly PCB mistakes — with a worked STM32F7 example.</summary>
    
    
    <category term="pcb"/>
    
    <category term="engineering"/>
    
    <category term="ai"/>
    
    <content type="text">The most expensive mistake you can make in PCB design is building the wrong board. The second most expensive is building a board whose purpose nobody on the team agrees on, because you never wrote it down. Both mistakes are preventable with the same tool: a plain text file in a version-controlled repository, written before any schematic work begins. ## PCB Design Workflow: README Before Schematic The process is simple enough to describe in a few steps, but the discipline behind it takes some practice. **Step 1 — Create a new repository.** A fresh repo on GitHub, cloned locally. This is where the design intent lives, separate from any KiCad project or firmware repo. The design intent should be version controlled on its own terms. **Step 2 — Write a README.** Not notes. Not bullet points ...</content>
  </entry>
  
  <entry>
    <title>Biofilms in Rivers: EIS at the Clark Fork</title>
    <link href="https://maxclerkwell.tech/posts/msu-eis-2024/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/msu-eis-2024/</id>
    <published>2025-11-28T00:00:00+00:00</published>
    <updated>2025-11-28T00:00:00+00:00</updated>
    
    <summary>How a governor&apos;s reception in Montana led to a year of instrument development with Montana State University — building a portable EIS datalogger for biofilm detection and deploying it in the Clark Fork River.</summary>
    
    
    <category term="electronics"/>
    
    <category term="monitoring"/>
    
    <content type="text">In the summer of 2023, Tabea, Odin Holmes, and I were in Montana for a series of meetings. We had been introduced to the state&apos;s network by **Frederick van den Abbeel**, who had arranged conversations with **Scott Osterman** and — unexpectedly — with **Governor Greg Gianforte**. We were even invited to the reception of the Governor&apos;s golf cup in Kalispell. None of us had anticipated that a research instrument would come out of any of this. Those conversations pointed us toward **Montana State University in Bozeman**, and through MSU to **Prof. Stephan Warnat** — an electrical engineer from Schleswig-Holstein who had ended up teaching in Montana, which is not the most obvious career trajectory for someone from the German-Danish borderland. We visited his lab that summer. ## What Is Elect...</content>
  </entry>
  
  <entry>
    <title>KiCon Asia 2025: Speaking on Wire Bonding in Shenzhen</title>
    <link href="https://maxclerkwell.tech/posts/kicon-asia-2025/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/kicon-asia-2025/</id>
    <published>2025-11-15T00:00:00+00:00</published>
    <updated>2025-11-15T00:00:00+00:00</updated>
    
    <summary>Talk at KiCon Asia 2025 in Shenzhen on wire bonding CLICpix and MuPix detector chips — two years of hands-on bonding with a Delvotec, condensed into 25 minutes. Slides and video included.</summary>
    
    
    <category term="pcb"/>
    
    <category term="conferences"/>
    
    <category term="physics"/>
    
    <content type="text">**KiCon Asia 2025** took place in Shenzhen on November 13–15, co-organised by the KiCad project and [Huaqiu PCB](https://www.huaqiu.com). I was there as a speaker — and spent the rest of the time walking around one of the most interesting manufacturing cities in the world. ![KiCon 2025 Asia conference programme banner](/posts/kicon-asia-2025/assets/photo_1_2026-04-15_13-23-32.jpg) ## The Talk: A Poor Man&apos;s Intro to Wire Bonding My talk was called **&quot;A poor man&apos;s intro to wire bonding&quot;** — and that title is exactly right. This wasn&apos;t a talk about having the right equipment and a controlled process. It was about what you actually learn when you try to bond real detector chips onto PCBs over two years, with limited resources, and have to figure out most of it by doing. The chips involved w...</content>
  </entry>
  
  <entry>
    <title>OmnAIScope: A USB Oscilloscope for Automotive Diagnostics</title>
    <link href="https://maxclerkwell.tech/posts/omnaiscope-august-2025/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/omnaiscope-august-2025/</id>
    <published>2025-08-28T00:00:00+00:00</published>
    <updated>2025-08-28T00:00:00+00:00</updated>
    
    <summary>OmnAIScope is an open-access USB oscilloscope for automotive diagnostics, built on RP2040 with multi-channel USB synchronisation — no hardware trigger needed. How it works, the server architecture, and where to get it.</summary>
    
    
    <category term="pcb"/>
    
    <category term="electronics"/>
    
    <category term="automotive"/>
    
    <category term="open-source"/>
    
    <content type="text">The **OmnAIScope** is a single-channel USB oscilloscope designed for automotive diagnostics. It started as a prototype within the [autowerkstatt4null](https://github.com/nabla-B/paper_aw4null-overview) project — a three-year, federally funded initiative to bring AI-driven diagnostics to independent car workshops. This post covers what it is, how the synchronisation works, and where it&apos;s going. ![Four OmnAIScope prototypes — BNC input on top, USB-C on the bottom](/posts/omnaiscope-august-2025/assets/early_prototype.jpg) ## OmnAIScope Hardware: RP2040, BNC, and Waterproof Aluminium Housing The current prototype is built around an **RP2040** microcontroller. The specs are deliberately modest: - **500 kSa/s**, single channel - **Anodised aluminium housing**, epoxy-sealed after assembly — fu...</content>
  </entry>
  
  <entry>
    <title>Getting Started: From Tape-Out to TypeScript</title>
    <link href="https://maxclerkwell.tech/posts/getting-started/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/getting-started/</id>
    <published>2025-08-14T00:00:00+00:00</published>
    <updated>2025-08-14T00:00:00+00:00</updated>
    
    <summary>Stephan Bökelmann writes about monitoring systems, embedded engineering, ASIC development, and university-level programming — from silicon to frontend. First post: what this blog covers and why.</summary>
    
    
    <category term="personal"/>
    
    <category term="engineering"/>
    
    <content type="text">This is the first post on this blog. It won&apos;t be the most technically dense — that comes later. ![Stephan Bökelmann at CERN, Geneva — accelerator pipe reading &quot;Accelerating Science&quot;](/posts/getting-started/assets/title.jpg) ## Why a blog? Every platform I post on is rented ground. Algorithms change. Accounts get suspended. Platforms rise and fall. This blog is the one place I own outright. The plan: one longform post per week. Everything else — threads on X, LinkedIn posts, YouTube videos, Instagram carousels — is derived from what&apos;s written here first. The blog is the source of truth. ## What this blog covers: monitoring, hardware, and university lectures Three pillars, based on where I actually spend my time: **Monitoring systems in production.** I&apos;ve been building and running measure...</content>
  </entry>
  
  <entry>
    <title>KiCon Europe 2024: Bochum Goes International</title>
    <link href="https://maxclerkwell.tech/posts/kicon-europe-2024/" rel="alternate" type="text/html"/>
    <id>https://maxclerkwell.tech/posts/kicon-europe-2024/</id>
    <published>2024-09-20T00:00:00+00:00</published>
    <updated>2024-09-20T00:00:00+00:00</updated>
    
    <summary>KiCon Europe 2024 in Bochum — 150 engineers and designers, KiCad lead developers Wayne Stambaugh and Seth Hilbrand on stage, talks on open hardware, PCB design, and KiCad development. Full recap and YouTube playlist.</summary>
    
    
    <category term="pcb"/>
    
    <category term="conferences"/>
    
    <category term="open-source"/>
    
    <content type="text">**KiCon Europe 2024** took place on September 19–20 in the [Rotunde Bochum](https://rotunde-bochum.de), organised by [**Open Skunkforce e.V.**](https://skunkforce.org) together with the KiCad project. Around 150 people came — designers, engineers, developers, hobbyists — from across Europe and beyond. It was the largest KiCon we had run in Bochum. ## From KiCon Germany to KiCon Europe The conference didn&apos;t appear out of nowhere. In 2020, I organised the first **KiCon Germany** — a small, informal gathering of KiCad users in Bochum. We ran it four more times, each edition a little bigger, a little more polished. In 2024 we made the leap to a proper European edition: new venue, full two-day programme, workshops, international speakers. ![Pre-conference social the evening before — group di...</content>
  </entry>
  

</feed>
