<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Home on Matthew Campbell — Hyperworks</title><link>https://hyperworks.nu/</link><description>Recent content in Home on Matthew Campbell — Hyperworks</description><generator>Hugo</generator><language>en-US</language><atom:link href="https://hyperworks.nu/index.xml" rel="self" type="application/rss+xml"/><item><title>Taking apart the G'AIM'E light gun — both halves of it</title><link>https://hyperworks.nu/blog/gaime-lightgun-reverse-engineering/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/blog/gaime-lightgun-reverse-engineering/</guid><description>&lt;p&gt;A ¥13,200 Time Crisis console turned out to ship a &lt;strong&gt;hardcoded AES key&lt;/strong&gt;, &lt;strong&gt;no secure boot of any kind&lt;/strong&gt;, and a &lt;strong&gt;licensed Namco arcade emulator&lt;/strong&gt;. The gun turned out to be a &lt;strong&gt;second Linux computer&lt;/strong&gt; with a deliberately unmarked SoC, an NPU, and a root shell on an unpopulated header.&lt;/p&gt;</description></item><item><title>Akihabara cart reader → macOS + Android: dump SNES ROMs without swapping the SD card</title><link>https://hyperworks.nu/blog/oscr-cartreader-macos-android/</link><pubDate>Mon, 27 Jul 2026 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/blog/oscr-cartreader-macos-android/</guid><description>&lt;p&gt;I bought a cartridge reader in &lt;strong&gt;Akihabara&lt;/strong&gt; so I could dump and play SNES games from physical carts. The hardware is excellent — the open-source &lt;a href="https://github.com/sanni/cartreader"&gt;OSCR&lt;/a&gt; / Open Source Cartridge Reader community project — but the stock workflow is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Dump ROM to the reader’s &lt;strong&gt;SD card&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Pull the SD card&lt;/li&gt;
&lt;li&gt;Copy files on a computer&lt;/li&gt;
&lt;li&gt;Launch an emulator&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;No native UI for &lt;strong&gt;macOS&lt;/strong&gt; or &lt;strong&gt;Android&lt;/strong&gt;. So I fixed that.&lt;/p&gt;</description></item><item><title>Hello hyperworks.nu</title><link>https://hyperworks.nu/blog/hello-hyperworks/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/blog/hello-hyperworks/</guid><description>&lt;p&gt;&lt;strong&gt;kanwisher.com&lt;/strong&gt; is becoming &lt;strong&gt;&lt;a href="https://hyperworks.nu"&gt;hyperworks.nu&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Same person (@kanwisher / Matthew Campbell). New focus:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Blog&lt;/strong&gt; — long-form technical posts, including reverse engineering hardware projects and write-ups that feed a future YouTube channel&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://hyperworks.nu/speaking/"&gt;Talks&lt;/a&gt;&lt;/strong&gt; — conference archive, videos, and booking&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Work&lt;/strong&gt; — TensorFleet and earlier chapters&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="stack"&gt;Stack&lt;/h2&gt;
&lt;p&gt;Simple on purpose:&lt;/p&gt;</description></item><item><title>How to fail at retirement</title><link>https://hyperworks.nu/talks/toastmasters-ice-breaker/</link><pubDate>Wed, 16 Aug 2023 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/toastmasters-ice-breaker/</guid><description>&lt;p&gt;&lt;strong&gt;Toastmasters Thailand · ice breaker&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Personal ice-breaker talk — the “how to fail at retirement” framing and working-with-kids/tech anecdotes from the notes deck.&lt;/p&gt;</description></item><item><title>Will the Machines take over?</title><link>https://hyperworks.nu/talks/toastmasters-machines-bangkok/</link><pubDate>Wed, 10 May 2023 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/toastmasters-machines-bangkok/</guid><description>&lt;p&gt;&lt;strong&gt;Toastmasters Bangkok · 2023&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Public speaking set on &lt;strong&gt;AI and jobs&lt;/strong&gt;: what computers and programmers are, demos with DALL·E / ChatGPT-era tools, and a call to action rather than doom.&lt;/p&gt;</description></item><item><title>WebAssembly is the future of .NET — Avalonia</title><link>https://hyperworks.nu/talks/wasm-avalonia-bangkok-2022/</link><pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/wasm-avalonia-bangkok-2022/</guid><description>&lt;p&gt;&lt;strong&gt;Bangkok meetup · 2022&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;.NET 6 + WebAssembly + Avalonia&lt;/strong&gt; for real cross-platform apps (desktop, mobile path, WASM).&lt;/p&gt;
&lt;h3 id="deck-themes"&gt;Deck themes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;WASM use cases: desktop ports, games, shared backend code, less JS&lt;/li&gt;
&lt;li&gt;.NET 6: AOT, trimming, single-file&lt;/li&gt;
&lt;li&gt;Blazor vs full UI frameworks; Avalonia vs MAUI readiness&lt;/li&gt;
&lt;li&gt;Happen Space product context&lt;/li&gt;
&lt;li&gt;Practical pain: shaders, threading, missing libraries, hiring&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Takeaway: Avalonia + .NET WASM was production-usable while MAUI still felt early.&lt;/p&gt;</description></item><item><title>How I got crabs with Python</title><link>https://hyperworks.nu/talks/crabs-bangkok-2020/</link><pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/crabs-bangkok-2020/</guid><description>&lt;p&gt;&lt;strong&gt;Bangkok meetup · ~2020&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Soft-shell crab farming × computer vision&lt;/strong&gt;: edge ML on &lt;strong&gt;Jetson Nano&lt;/strong&gt;, Fast.AI / PyTorch, YOLO, GStreamer pipelines, and why labeling is the real nightmare.&lt;/p&gt;
&lt;h3 id="takeaways-from-the-deck"&gt;Takeaways from the deck&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Automating physical infrastructure in Thailand&lt;/li&gt;
&lt;li&gt;ML is mature enough for production edge boxes&lt;/li&gt;
&lt;li&gt;Python is fine for serious IoT/CV work&lt;/li&gt;
&lt;li&gt;OctoVision project context&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Interview: Loom Network CEO</title><link>https://hyperworks.nu/talks/loom-interview-chorus-one-2019/</link><pubDate>Mon, 15 Apr 2019 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/loom-interview-chorus-one-2019/</guid><description>&lt;p&gt;&lt;strong&gt;Chorus One interview · 2019&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Conversation with Brendan Dillon about Loom Network’s approach to scalable DApps, sidechains, and the ecosystem at the time.&lt;/p&gt;</description></item><item><title>Practical Plasma: Gaming</title><link>https://hyperworks.nu/talks/plasma-gaming-upbit-korea-2018/</link><pubDate>Thu, 01 Nov 2018 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/plasma-gaming-upbit-korea-2018/</guid><description>&lt;p&gt;&lt;strong&gt;Upbit Developers Conference 2018 · Korea&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Same &lt;em&gt;Practical Plasma: Gaming&lt;/em&gt; material as Devcon 4 for a Korea developer audience — Plasma Cash, Loom SDK, and blockchain game architecture.&lt;/p&gt;
&lt;p&gt;Same deck as &lt;a href="https://hyperworks.nu/talks/plasma-gaming-devcon4-2018/"&gt;Practical Plasma: Gaming — Devcon 4&lt;/a&gt; (video there).&lt;/p&gt;</description></item><item><title>Practical Plasma: Gaming</title><link>https://hyperworks.nu/talks/plasma-gaming-devcon4-2018/</link><pubDate>Mon, 01 Oct 2018 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/plasma-gaming-devcon4-2018/</guid><description>&lt;p&gt;&lt;strong&gt;Ethereum Devcon 4 · Prague&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Practical Plasma for gaming&lt;/strong&gt;: real asset ownership, forkability, open data, and scaling NFT-heavy games beyond L1 limits.&lt;/p&gt;
&lt;h3 id="from-the-deck"&gt;From the deck&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Why games need more than ERC-721 on mainnet&lt;/li&gt;
&lt;li&gt;Plasma variants (Cash, Debit, MVP) — Cash as the practical path&lt;/li&gt;
&lt;li&gt;Loom SDK placement in the stack&lt;/li&gt;
&lt;li&gt;Sparse Merkle trees, liquidity providers&lt;/li&gt;
&lt;li&gt;CryptoZombies as onboarding; hiring/community at the time&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also: &lt;a href="https://archive.devcon.org/devcon-4/practical-plasma-gaming/"&gt;archive.devcon.org&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Blockchain Apps in Go</title><link>https://hyperworks.nu/talks/blockchain-apps-gophercon-uk-2018/</link><pubDate>Thu, 30 Aug 2018 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/blockchain-apps-gophercon-uk-2018/</guid><description>&lt;p&gt;&lt;strong&gt;GopherCon UK 2018 · London&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Blockchains as specialized databases, smart contracts, and &lt;strong&gt;Go’s role&lt;/strong&gt; (Ethereum clients, Loom, consensus libraries).&lt;/p&gt;
&lt;h3 id="topics"&gt;Topics&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Use cases: money, ledgers, game assets, tokenized equity&lt;/li&gt;
&lt;li&gt;Smart contracts: deterministic, events, no external state&lt;/li&gt;
&lt;li&gt;Why pure Go apps struggle with determinism (map order, time, goroutines)&lt;/li&gt;
&lt;li&gt;Solidity / EVM vs Go infrastructure&lt;/li&gt;
&lt;li&gt;Consensus (Raft vs BFT), Merkle trees, storage layers&lt;/li&gt;
&lt;li&gt;Loom SDK / sidechains for scalable apps (esp. games)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Build your own distributed database</title><link>https://hyperworks.nu/talks/distributed-database-gophercon-sg-2018/</link><pubDate>Sat, 05 May 2018 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/distributed-database-gophercon-sg-2018/</guid><description>&lt;p&gt;&lt;strong&gt;GopherCon Singapore 2018&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A from-scratch mental model for &lt;strong&gt;distributed databases in Go&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="deck-outline"&gt;Deck outline&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Layers: file → KV → SQLite → relational&lt;/li&gt;
&lt;li&gt;When MySQL/Postgres are not enough (custom indexes, domain query languages)&lt;/li&gt;
&lt;li&gt;Use cases: blockchains, trading, logs, metrics&lt;/li&gt;
&lt;li&gt;Go examples: Influx, Prometheus, Vulcan, Ethereum, etcd, Consul&lt;/li&gt;
&lt;li&gt;Architecture: consensus (Raft/Paxos/BFT), storage (LevelDB/Rocks/Bolt), query layer&lt;/li&gt;
&lt;li&gt;Starting points: HashiCorp Raft, etcd Raft, toy SQL parsers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For people who want to &lt;em&gt;build&lt;/em&gt; storage systems, not only use them.&lt;/p&gt;</description></item><item><title>Sponsor lightning talk: Loom Network</title><link>https://hyperworks.nu/talks/loom-lightning-gophercon-sg-2018/</link><pubDate>Sat, 05 May 2018 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/loom-lightning-gophercon-sg-2018/</guid><description>&lt;p&gt;&lt;strong&gt;GopherCon Singapore 2018&lt;/strong&gt; (sponsor lightning)&lt;/p&gt;
&lt;p&gt;Short Loom Network pitch for Go developers: sidechains / DApp tooling and how Loom fit the 2018 blockchain stack.&lt;/p&gt;</description></item><item><title>Intro to Blockchain Development</title><link>https://hyperworks.nu/talks/blockchain-python-bangkok/</link><pubDate>Thu, 16 Nov 2017 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/blockchain-python-bangkok/</guid><description>&lt;p&gt;&lt;strong&gt;Bangkok Python Meetup&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Hands-on intro for Python developers: blockchain basics, smart contracts, Solidity/EVM, TestRPC, a voting-app walkthrough, and common pitfalls — then where Python fits in the toolchain.&lt;/p&gt;</description></item><item><title>Intro to Microservices</title><link>https://hyperworks.nu/talks/microservices-gopherday-taipei-2017/</link><pubDate>Wed, 28 Jun 2017 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/microservices-gopherday-taipei-2017/</guid><description>&lt;p&gt;&lt;strong&gt;GopherDay / GopherCon Taipei 2017&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Intro to microservices with &lt;strong&gt;Go&lt;/strong&gt; bias and DigitalOcean stories.&lt;/p&gt;
&lt;h3 id="from-speaker-notes"&gt;From speaker notes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Microservice vs monolith — organizational scaling (DO: one Perl app → ~40 services / 300 engineers)&lt;/li&gt;
&lt;li&gt;RPC vs message-driven (Kafka) architectures&lt;/li&gt;
&lt;li&gt;gRPC + protobuf contracts vs ad-hoc JSON&lt;/li&gt;
&lt;li&gt;Config via environment variables&lt;/li&gt;
&lt;li&gt;Metrics, structured logging (REK-style stacks)&lt;/li&gt;
&lt;li&gt;Container deploys: Docker → Kubernetes / GKE&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example framing: tracking-pixel style services as teaching examples.&lt;/p&gt;</description></item><item><title>Distributed Scheduler Hell</title><link>https://hyperworks.nu/talks/scheduler-hell-gophercon-sg-2017/</link><pubDate>Mon, 29 May 2017 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/scheduler-hell-gophercon-sg-2017/</guid><description>&lt;p&gt;&lt;strong&gt;GopherCon Singapore 2017&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Go-flavored edition of &lt;em&gt;Distributed Scheduler Hell&lt;/em&gt;: why &lt;strong&gt;Go&lt;/strong&gt; fits container platforms (single binary, small deps), and how we ran a large timeseries pipeline on Mesos then Kubernetes.&lt;/p&gt;
&lt;h3 id="agenda-from-the-deck"&gt;Agenda from the deck&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What distributed schedulers do&lt;/li&gt;
&lt;li&gt;Why Go for container ecosystems&lt;/li&gt;
&lt;li&gt;Best practices and anti-patterns&lt;/li&gt;
&lt;li&gt;Walkthrough of Vulcan’s requirements and Mesos → Nomad → Kubernetes path&lt;/li&gt;
&lt;li&gt;gRPC in the final architecture&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also on &lt;a href="https://engineers.sg/video/distributed-scheduler-hell-gophercon-sg-2017--1749"&gt;Engineers.SG&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Distributed Scheduler Hell</title><link>https://hyperworks.nu/talks/scheduler-hell-srecon-asia-2017/</link><pubDate>Wed, 24 May 2017 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/scheduler-hell-srecon-asia-2017/</guid><description>&lt;p&gt;&lt;strong&gt;SREcon17 Asia (USENIX)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Same scheduler war stories framed for an &lt;strong&gt;SRE&lt;/strong&gt; audience: reliability under partition, operational complexity of Mesos/Marathon/Kafka/Cassandra, and the migration toward Kubernetes.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.usenix.org/conference/srecon17asia/program/presentation/campbell"&gt;Program entry&lt;/a&gt; — public video not confirmed; see the microXchg / GopherCon SG recordings for the closest full captures.&lt;/p&gt;</description></item><item><title>Distributed Timeseries Database in Go</title><link>https://hyperworks.nu/talks/timeseries-gophercon-india-2017/</link><pubDate>Fri, 24 Feb 2017 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/timeseries-gophercon-india-2017/</guid><description>&lt;p&gt;&lt;strong&gt;GopherCon India 2017&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Deep dive into &lt;strong&gt;Vulcan&lt;/strong&gt;, DigitalOcean’s Prometheus-compatible distributed timeseries database written in Go.&lt;/p&gt;
&lt;h3 id="outline-from-the-deck"&gt;Outline (from the deck)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Why Go for NoSQL/NewSQL (Prometheus, Cockroach, Influx, etcd…)&lt;/li&gt;
&lt;li&gt;Timeseries properties: write-heavy, compressible, lossy-friendly&lt;/li&gt;
&lt;li&gt;From hash-sharded Prometheus to a pipelined microservice architecture&lt;/li&gt;
&lt;li&gt;Kafka ingestion, Cassandra/chunk storage, schema evolution (V1 series → V2 chunks + index)&lt;/li&gt;
&lt;li&gt;In-memory query engine and downsampling&lt;/li&gt;
&lt;li&gt;Hard numbers we designed for: multi-Gbit/s, 100k writes/s, tens of TB&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="links"&gt;Links&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://speakerdeck.com/mattkanwisher/building-distributed-timeseries-database-in-go"&gt;Speaker Deck&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Open source context: &lt;a href="https://github.com/digitalocean/vulcan"&gt;digitalocean/vulcan&lt;/a&gt; (historical)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Distributed Scheduler Hell</title><link>https://hyperworks.nu/talks/scheduler-hell-microxchg-2017/</link><pubDate>Fri, 17 Feb 2017 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/scheduler-hell-microxchg-2017/</guid><description>&lt;p&gt;&lt;strong&gt;microXchg 2017 · Berlin&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A practical tour of &lt;strong&gt;distributed container schedulers&lt;/strong&gt; drawn from running DigitalOcean’s monitoring stack at scale.&lt;/p&gt;
&lt;h3 id="what-the-talk-covers"&gt;What the talk covers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;What a distributed scheduler actually provides vs the Linux kernel (deploy, quotas, networking, scaling)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulcan&lt;/strong&gt; — DigitalOcean’s Prometheus-compatible timeseries system — as a real workload: ~3 Gbit/s network, 100k writes/s, sub-100ms reads, tens of TB storage&lt;/li&gt;
&lt;li&gt;Deploying that workload on &lt;strong&gt;Mesos + Marathon&lt;/strong&gt;, custom Kafka schedulers, Cassandra pinning&lt;/li&gt;
&lt;li&gt;Failure modes (network partitions) and a counter-example with &lt;strong&gt;Nomad&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Moving to &lt;strong&gt;Kubernetes&lt;/strong&gt;, internal deploy tooling (Docc / kube-diff style workflows), Flannel load balancing, metrics and logging&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="takeaways"&gt;Takeaways&lt;/h3&gt;
&lt;p&gt;How to choose an abstraction for middle-size apps growing into large multi-service fleets — and when &lt;em&gt;not&lt;/em&gt; to reach for a full scheduler.&lt;/p&gt;</description></item><item><title>Intro to Microservices (Python)</title><link>https://hyperworks.nu/talks/microservices-python-bangkok/</link><pubDate>Sun, 01 Jan 2017 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/microservices-python-bangkok/</guid><description>&lt;p&gt;&lt;strong&gt;Bangkok Python Meetup&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Same microservices curriculum as the Go talks, for a &lt;strong&gt;Python&lt;/strong&gt; audience: monolith vs services, RPC vs bus, Docker, and when the complexity is worth it.&lt;/p&gt;</description></item><item><title>Cloud in your Cloud</title><link>https://hyperworks.nu/talks/cloud-in-your-cloud-golang-uk-2016/</link><pubDate>Wed, 07 Sep 2016 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/cloud-in-your-cloud-golang-uk-2016/</guid><description>&lt;p&gt;&lt;strong&gt;Golang UK Conference 2016 · London&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;How DigitalOcean uses &lt;strong&gt;Go&lt;/strong&gt; to build cloud infrastructure — control plane microservices, scale, and operational reality.&lt;/p&gt;
&lt;p&gt;Slides on &lt;a href="https://www.slideshare.net/slideshow/cloud-in-your-cloud/58600520"&gt;SlideShare&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>HashiConf</title><link>https://hyperworks.nu/talks/hashicorp-conf/</link><pubDate>Thu, 01 Sep 2016 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/hashicorp-conf/</guid><description>&lt;p&gt;&lt;strong&gt;HashiConf&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;DigitalOcean-era conference talk adjacent to Nomad, Consul, and container scheduling — the same problem space as &lt;em&gt;Distributed Scheduler Hell&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Velocity NYC 2016</title><link>https://hyperworks.nu/talks/velocity-nyc-2016/</link><pubDate>Thu, 01 Sep 2016 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/velocity-nyc-2016/</guid><description>&lt;p&gt;&lt;strong&gt;Velocity NYC 2016&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;O&amp;rsquo;Reilly Velocity conference — reliability and operations topics from the DigitalOcean era (related themes to &lt;em&gt;Chaos Monkey on my Laptop&lt;/em&gt;).&lt;/p&gt;</description></item><item><title>Scaling to a Million Machines with Prometheus</title><link>https://hyperworks.nu/talks/prometheus-promcon-2016/</link><pubDate>Thu, 25 Aug 2016 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/prometheus-promcon-2016/</guid><description>&lt;p&gt;&lt;strong&gt;PromCon 2016 · Berlin&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;How DigitalOcean ran a &lt;strong&gt;public-facing monitoring platform on Prometheus&lt;/strong&gt; toward multi-datacenter, high-cardinality load.&lt;/p&gt;
&lt;h3 id="themes"&gt;Themes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Prometheus as the customer-facing metrics plane&lt;/li&gt;
&lt;li&gt;Sharding, storage pressure, and operational reality past a few thousand machines&lt;/li&gt;
&lt;li&gt;Lessons that fed later work on Vulcan (compatible timeseries pipeline)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="links"&gt;Links&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=likpVWB5Lvo"&gt;YouTube&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Slides in &lt;a href="https://github.com/promcon/slides-2016"&gt;promcon/slides-2016&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>DigitalOcean Microservices</title><link>https://hyperworks.nu/talks/rocket-internet-microservices-2016/</link><pubDate>Wed, 01 Jun 2016 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/rocket-internet-microservices-2016/</guid><description>&lt;p&gt;&lt;strong&gt;Rocket Internet Conf 2016 · Berlin&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;DigitalOcean microservices practices for a product/engineering audience — how cloud control planes are factored and operated. SlideShare: &lt;em&gt;DigitalOcean Microservices Talk Rocket Internet Conf &amp;lsquo;16&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Slides on &lt;a href="https://www.slideshare.net/slideshow/digitalocean-microservices-talk-rock-internet-conf/66472084"&gt;SlideShare&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>O'Reilly Software Architecture Conference NYC</title><link>https://hyperworks.nu/talks/oreilly-software-architecture-nyc-2016/</link><pubDate>Fri, 01 Apr 2016 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/oreilly-software-architecture-nyc-2016/</guid><description>&lt;p&gt;&lt;strong&gt;O&amp;rsquo;Reilly Software Architecture Conference · New York 2016&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Conference session from the DigitalOcean period on microservices and cloud architecture.&lt;/p&gt;</description></item><item><title>Cloud in your Cloud — DigitalOcean</title><link>https://hyperworks.nu/talks/cloud-in-your-cloud-gophercon-india-2016/</link><pubDate>Tue, 29 Mar 2016 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/cloud-in-your-cloud-gophercon-india-2016/</guid><description>&lt;p&gt;&lt;strong&gt;GopherCon India 2016&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Go-centric cut of &lt;em&gt;Cloud in your Cloud&lt;/em&gt; — building DigitalOcean’s platform with Go microservices, multi-DC operations, and production war stories.&lt;/p&gt;
&lt;p&gt;Slides on &lt;a href="https://www.slideshare.net/slideshow/cloud-in-your-cloud/58600520"&gt;SlideShare&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>GopherCon Dubai 2016</title><link>https://hyperworks.nu/talks/gophercon-dubai-2016/</link><pubDate>Tue, 01 Mar 2016 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/gophercon-dubai-2016/</guid><description>&lt;p&gt;&lt;strong&gt;GopherCon Dubai 2016&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Conference talk for the Dubai Go community — DigitalOcean-era systems and Go topics.&lt;/p&gt;</description></item><item><title>Cloud in your Cloud — how we build DigitalOcean</title><link>https://hyperworks.nu/talks/cloud-in-your-cloud-microxchg-2016/</link><pubDate>Fri, 05 Feb 2016 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/cloud-in-your-cloud-microxchg-2016/</guid><description>&lt;p&gt;&lt;strong&gt;microXchg 2016 · Berlin&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;How DigitalOcean builds the cloud: &lt;strong&gt;Go microservices&lt;/strong&gt; across many datacenters, tens of thousands of customers, and the day-to-day of writing, monitoring, and shipping control-plane services.&lt;/p&gt;
&lt;h3 id="themes"&gt;Themes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Microservices that &lt;em&gt;are&lt;/em&gt; the cloud product&lt;/li&gt;
&lt;li&gt;Observability and deploy culture&lt;/li&gt;
&lt;li&gt;Scaling org + codebase past a single monolith (DO’s early Perl stack → dozens of services)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Same core talk also given at GopherCon India and Golang UK 2016.&lt;/p&gt;</description></item><item><title>Game Programming for Education in JavaScript</title><link>https://hyperworks.nu/talks/game-programming-jsconf-asia-2015/</link><pubDate>Wed, 09 Dec 2015 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/game-programming-jsconf-asia-2015/</guid><description>&lt;p&gt;&lt;strong&gt;JSConf.Asia 2015 · Singapore&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Using &lt;strong&gt;game programming for education&lt;/strong&gt; — including Thai typing / serious games work — and what works when teaching through play in the browser.&lt;/p&gt;
&lt;p&gt;Related deck: &lt;em&gt;Serious Gaming, Thai Typing Game&lt;/em&gt; (Speaker Deck).&lt;/p&gt;</description></item><item><title>Chaos Monkey on my Laptop</title><link>https://hyperworks.nu/talks/chaos-monkey-gothamgo-2015/</link><pubDate>Tue, 24 Nov 2015 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/chaos-monkey-gothamgo-2015/</guid><description>&lt;p&gt;&lt;strong&gt;GothamGo 2015 · New York&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Chaos engineering for apps that cannot tolerate silent netsplits — from Thomson Reuters &lt;strong&gt;Eikon Messenger&lt;/strong&gt; experience.&lt;/p&gt;
&lt;h3 id="story"&gt;Story&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Netflix Chaos Monkey randomly kills production processes; we needed the same &lt;em&gt;before&lt;/em&gt; production&lt;/li&gt;
&lt;li&gt;Spin up multi-VM / Docker topologies on a &lt;strong&gt;developer laptop&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Script NIC failures, host churn, latency between replicas (MySQL/Redis)&lt;/li&gt;
&lt;li&gt;Push the same suite into &lt;strong&gt;Jenkins&lt;/strong&gt; and cloud VMs even when prod is bare metal&lt;/li&gt;
&lt;li&gt;Cut release-cycle risk by making ops confidence automatic&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="audience-takeaways"&gt;Audience takeaways&lt;/h3&gt;
&lt;p&gt;Bulletproof middleware and microservices with integration tests that actually model datacenter failure.&lt;/p&gt;</description></item><item><title>How to keep Wall Street chatting using Go</title><link>https://hyperworks.nu/talks/wall-street-go-gophercon-india-2015/</link><pubDate>Wed, 11 Mar 2015 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/wall-street-go-gophercon-india-2015/</guid><description>&lt;p&gt;&lt;strong&gt;GopherCon India 2015&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Reliability and scale for &lt;strong&gt;financial instant messaging&lt;/strong&gt; (Thomson Reuters Eikon Messenger territory): hundreds of thousands of demanding users, multi-datacenter messaging, and why Go fit the problem.&lt;/p&gt;
&lt;p&gt;Companion slides historically on SlideShare: &lt;em&gt;Making Wallstreet talk with GO&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Intro to Go</title><link>https://hyperworks.nu/talks/intro-to-go-bangkok-2014/</link><pubDate>Wed, 01 Jan 2014 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/talks/intro-to-go-bangkok-2014/</guid><description>&lt;p&gt;&lt;strong&gt;Bangkok Launchpad 2014&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Early &lt;strong&gt;Intro to Go&lt;/strong&gt; for the Bangkok community. Slides historically on SlideShare (&lt;em&gt;Intro to GO — Bangkok Launchpad 2014&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Slides on &lt;a href="https://www.slideshare.net/slideshow/intro-to-go-bangkok-2014/30539789"&gt;SlideShare&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Handling Blocking IO in Go</title><link>https://hyperworks.nu/blog/handling-blocking-io-in-go/</link><pubDate>Thu, 19 Jul 2012 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/blog/handling-blocking-io-in-go/</guid><description>&lt;p&gt;&lt;em&gt;Originally published on kanwisher.com, July 19, 2012. Restored from the &lt;a href="https://web.archive.org/web/20120720065758/http://www.kanwisher.com/2012/07/19/handling-blocking-io-in-go/"&gt;Wayback Machine&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;One of the most frustrating things when you start with Go is that fact that &lt;strong&gt;IO is blocking&lt;/strong&gt;. So for example today I needed to spawn a process and read the stdout — easy right?&lt;/p&gt;</description></item><item><title>About</title><link>https://hyperworks.nu/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/about/</guid><description>&lt;p&gt;I&amp;rsquo;m &lt;strong&gt;Matthew Campbell&lt;/strong&gt; (@kanwisher), an American engineer based in Bangkok.&lt;/p&gt;
&lt;p&gt;I build things at the intersection of &lt;strong&gt;distributed systems&lt;/strong&gt;, &lt;strong&gt;Go&lt;/strong&gt;, and increasingly &lt;strong&gt;hardware reverse engineering&lt;/strong&gt; and &lt;strong&gt;open robotics&lt;/strong&gt;. I&amp;rsquo;m founder of &lt;a href="https://tensorfleet.net"&gt;TensorFleet&lt;/a&gt;, working on open software for drone fleets.&lt;/p&gt;
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TensorFleet&lt;/strong&gt; — open robotics / drone software (current)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Loom Network / CryptoZombies&lt;/strong&gt; — Techstars alumni; scaled blockchain education and sidechain tooling&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DigitalOcean&lt;/strong&gt; — microservices, Prometheus-scale monitoring, distributed timeseries (Vulcan)&lt;/li&gt;
&lt;li&gt;Earlier: &lt;strong&gt;Thomson Reuters&lt;/strong&gt; (Eikon Messenger), &lt;strong&gt;Bloomberg&lt;/strong&gt;, Gucci, Cartoon Network&lt;/li&gt;
&lt;li&gt;Founded &lt;strong&gt;Errplane&lt;/strong&gt; and &lt;strong&gt;Langfight&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;ve spoken at &lt;strong&gt;20+ international conferences&lt;/strong&gt; across Go, DevOps, microservices, and blockchain. Talk videos and abstracts live under &lt;a href="https://hyperworks.nu/speaking/"&gt;Talks&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Open Source</title><link>https://hyperworks.nu/open-source/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/open-source/</guid><description/></item><item><title>Speaking</title><link>https://hyperworks.nu/speaking/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/speaking/</guid><description>&lt;p&gt;&lt;strong&gt;Matthew Campbell&lt;/strong&gt; (@kanwisher) — 20+ international conferences including GopherCon, PromCon, microXchg, GothamGo, JSConf.Asia, and Devcon.&lt;/p&gt;
&lt;p&gt;This page is a short &lt;strong&gt;speaker reel&lt;/strong&gt;: talks with video first. Click any thumbnail to watch. Full abstracts, slides, and notes live on each talk page.&lt;/p&gt;</description></item><item><title>Work</title><link>https://hyperworks.nu/work/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hyperworks.nu/work/</guid><description>&lt;h2 id="tensorfleet-current"&gt;TensorFleet (current)&lt;/h2&gt;
&lt;p&gt;Open software for robotics and drone fleets — making proprietary hardware usable with open tooling, simulators, and developer experience.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Site: &lt;a href="https://tensorfleet.net"&gt;tensorfleet.net&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="loom-network--cryptozombies"&gt;Loom Network / CryptoZombies&lt;/h2&gt;
&lt;p&gt;Founder (Techstars Winter &amp;lsquo;18). CryptoZombies became one of the most popular interactive blockchain tutorials. Loom built application-specific sidechains and developer tooling for Ethereum-scale dApps.&lt;/p&gt;</description></item></channel></rss>