<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Matthew Castrillon-Madrigal</title><description>A knowledge garden on platform engineering, AI-native architecture, real-time UIs and calisthenics — notes that get tended, not posts that go stale.</description><link>https://matthewcm.dev/</link><language>en-gb</language><item><title>A Testing Strategy Teams Actually Adopted</title><link>https://matthewcm.dev/notes/a-testing-strategy-teams-actually-adopted/</link><guid isPermaLink="true">https://matthewcm.dev/notes/a-testing-strategy-teams-actually-adopted/</guid><description>Case study — raising coverage with network-level mocks instead of brittle ones, shipping features test-first, speeding up quality checks, and getting Playwright adopted across several teams.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>case-study</category><category>growing</category><category>frontend-craft</category><category>career-leadership</category></item><item><title>AJAX Polling</title><link>https://matthewcm.dev/notes/ajax-polling/</link><guid isPermaLink="true">https://matthewcm.dev/notes/ajax-polling/</guid><description>The simplest form of &quot;real-time&quot; — ask the server every N seconds. Wasteful at scale, perfectly fine more often than people admit, and the baseline every other technique is compared against.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>realtime-ui</category></item><item><title>API Modelling</title><link>https://matthewcm.dev/notes/api-modelling/</link><guid isPermaLink="true">https://matthewcm.dev/notes/api-modelling/</guid><description>Put a layer between external APIs and your UI that parses raw responses into your own domain models, so a backend change touches one adapter instead of forty components.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>evergreen</category><category>frontend-craft</category></item><item><title>Architecture Decision Records</title><link>https://matthewcm.dev/notes/architecture-decision-records/</link><guid isPermaLink="true">https://matthewcm.dev/notes/architecture-decision-records/</guid><description>A one-page, version-controlled record of a significant decision. Context, decision, consequences. Never edited after acceptance, only superseded, so the history of &quot;why&quot; survives.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>evergreen</category><category>career-leadership</category><category>distributed-systems</category></item><item><title>Back Lever Progressions</title><link>https://matthewcm.dev/notes/back-lever-progressions/</link><guid isPermaLink="true">https://matthewcm.dev/notes/back-lever-progressions/</guid><description>The friendliest of the big statics — tuck to full back lever, with the shoulder extension prep that makes it safe. Full back lever unlocked in 2026; pullouts are next.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>skill</category><category>growing</category><category>calisthenics-lab</category></item><item><title>Balance Is a Control Loop</title><link>https://matthewcm.dev/notes/balance-is-a-control-loop/</link><guid isPermaLink="true">https://matthewcm.dev/notes/balance-is-a-control-loop/</guid><description>A handstand is a feedback loop with a sensor, a delay and an actuator. So are autoscalers, rate limiters and a real-time UI under load — and they fail the same way.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>metaphor</category><category>growing</category><category>calisthenics-lab</category><category>realtime-ui</category><category>distributed-systems</category></item><item><title>Building a Graph Component Library</title><link>https://matthewcm.dev/notes/building-a-graph-component-library/</link><guid isPermaLink="true">https://matthewcm.dev/notes/building-a-graph-component-library/</guid><description>Case study — designing and shipping a React network-graph library for several teams, and why rendering tech, API shape and Storybook mattered most.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>case-study</category><category>growing</category><category>frontend-craft</category><category>realtime-ui</category><category>career-leadership</category></item><item><title>Building a Low-Code BPMN Workflow Platform</title><link>https://matthewcm.dev/notes/building-a-low-code-bpmn-workflow-platform/</link><guid isPermaLink="true">https://matthewcm.dev/notes/building-a-low-code-bpmn-workflow-platform/</guid><description>Case study — leading the UI of a low-code network automation platform where workflows are drawn as BPMN diagrams. Model-driven editing, server-side permissions and a catalogue of reusable building blocks.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>case-study</category><category>growing</category><category>frontend-craft</category><category>platform-ai</category><category>career-leadership</category></item><item><title>Bulletproof React</title><link>https://matthewcm.dev/notes/bulletproof-react/</link><guid isPermaLink="true">https://matthewcm.dev/notes/bulletproof-react/</guid><description>Not a boilerplate but a showcase of architecture patterns — organise a React app by feature, keep data access out of components, and wire in testing, mocking and error tracking from day one.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>frontend-craft</category></item><item><title>Calisthenics Programming: Skill vs Hypertrophy Phases</title><link>https://matthewcm.dev/notes/calisthenics-programming-skill-vs-hypertrophy-phases/</link><guid isPermaLink="true">https://matthewcm.dev/notes/calisthenics-programming-skill-vs-hypertrophy-phases/</guid><description>Once the beginner routine stops working, alternate blocks that build capacity with blocks that turn it into skill, with a deload between. You can&apos;t push both at once.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>calisthenics-lab</category><category>platform-ai</category></item><item><title>CAP Theorem</title><link>https://matthewcm.dev/notes/cap-theorem/</link><guid isPermaLink="true">https://matthewcm.dev/notes/cap-theorem/</guid><description>When the network partitions, a distributed data store must choose between consistency and availability. PACELC adds the other half, that even without partitions you trade latency for consistency.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>evergreen</category><category>distributed-systems</category></item><item><title>Chairing a Cross-Team UI Guild</title><link>https://matthewcm.dev/notes/chairing-a-cross-team-ui-guild/</link><guid isPermaLink="true">https://matthewcm.dev/notes/chairing-a-cross-team-ui-guild/</guid><description>Case study — UI engineers were scattered across backend-shaped scrum teams, under-used and unaware of each other. Making the case for a UI community, then chairing it across departments.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>case-study</category><category>growing</category><category>career-leadership</category><category>frontend-craft</category></item><item><title>Communicating with Stakeholders</title><link>https://matthewcm.dev/notes/communicating-with-stakeholders/</link><guid isPermaLink="true">https://matthewcm.dev/notes/communicating-with-stakeholders/</guid><description>Keep meetings on agenda, translate engineering work into delivery language, and present roadmaps as value, not cost. Most of a lead&apos;s influence happens in these conversations.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>career-leadership</category></item><item><title>Comprehension Requires Your Own Words</title><link>https://matthewcm.dev/notes/comprehension-requires-your-own-words/</link><guid isPermaLink="true">https://matthewcm.dev/notes/comprehension-requires-your-own-words/</guid><description>If you can&apos;t explain an idea in your own words, you haven&apos;t understood it yet. You&apos;ve only followed along. Writing it down is how you find out.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>learning-systems</category></item><item><title>Convex</title><link>https://matthewcm.dev/notes/convex/</link><guid isPermaLink="true">https://matthewcm.dev/notes/convex/</guid><description>A reactive TypeScript backend where your server functions are the API, so front end and back end stay in sync. A natural fit for building with coding agents.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>seed</category><category>frontend-craft</category><category>platform-ai</category></item><item><title>Core Progressions</title><link>https://matthewcm.dev/notes/core-progressions/</link><guid isPermaLink="true">https://matthewcm.dev/notes/core-progressions/</guid><description>Ab wheel, dragon flag, hanging leg raises and the human flag — anti-extension and compression work that every lever and handstand borrows from.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>skill</category><category>seed</category><category>calisthenics-lab</category></item><item><title>Deadlock and Starvation</title><link>https://matthewcm.dev/notes/deadlock-and-starvation/</link><guid isPermaLink="true">https://matthewcm.dev/notes/deadlock-and-starvation/</guid><description>Deadlock is everyone waiting on each other forever; starvation is one thread never getting a turn. Both are liveness failures, and the fixes are surprisingly mechanical.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>seed</category><category>distributed-systems</category></item><item><title>Deep Learning</title><link>https://matthewcm.dev/notes/deep-learning/</link><guid isPermaLink="true">https://matthewcm.dev/notes/deep-learning/</guid><description>Neural networks with many layers, trained end to end by backpropagation — CNNs for images, transformers for sequences, and the bridge from university neural nets to today&apos;s LLMs.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>seed</category><category>platform-ai</category></item><item><title>Deloads and Tendon Adaptation</title><link>https://matthewcm.dev/notes/deloads-and-tendon-adaptation/</link><guid isPermaLink="true">https://matthewcm.dev/notes/deloads-and-tendon-adaptation/</guid><description>Muscles adapt in days, tendons in weeks. Planned deloads and short, spaced bouts of loading keep the slow tissue in step — and the same is true of teams and their tech debt.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>calisthenics-lab</category><category>career-leadership</category></item><item><title>Deloads Are Tech-Debt Sprints</title><link>https://matthewcm.dev/notes/deloads-are-tech-debt-sprints/</link><guid isPermaLink="true">https://matthewcm.dev/notes/deloads-are-tech-debt-sprints/</guid><description>Tendons adapt slower than muscles, and organisations adapt slower than code. Schedule the recovery week before an injury schedules it for you.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>metaphor</category><category>growing</category><category>calisthenics-lab</category><category>career-leadership</category><category>platform-ai</category></item><item><title>Design Review Readiness Checklist</title><link>https://matthewcm.dev/notes/design-review-readiness-checklist/</link><guid isPermaLink="true">https://matthewcm.dev/notes/design-review-readiness-checklist/</guid><description>A design is ready for review when a UI developer, an API developer and a tech lead new to the project could each start building, or challenge it, without asking you anything.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>career-leadership</category></item><item><title>Digital Culture Is Built from Habits</title><link>https://matthewcm.dev/notes/digital-culture-is-built-from-habits/</link><guid isPermaLink="true">https://matthewcm.dev/notes/digital-culture-is-built-from-habits/</guid><description>Digital transformation isn&apos;t buying tools; it&apos;s changing what people do every day. Culture is the sum of small habits, and platforms are how you make the good ones easy.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>career-leadership</category><category>platform-ai</category></item><item><title>Dips and Ring Dips</title><link>https://matthewcm.dev/notes/dips-and-ring-dips/</link><guid isPermaLink="true">https://matthewcm.dev/notes/dips-and-ring-dips/</guid><description>Parallel-bar dips to rings-turned-out dips. Stability, depth and turn-out are what the ring ladder adds, and why ring dips carried over to my muscle-ups.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>skill</category><category>seed</category><category>calisthenics-lab</category></item><item><title>DORA Metrics</title><link>https://matthewcm.dev/notes/dora-metrics/</link><guid isPermaLink="true">https://matthewcm.dev/notes/dora-metrics/</guid><description>Four measures of software delivery, two for throughput and two for stability. In high-performing teams they improve together, so speed and safety aren&apos;t a trade-off.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>platform-ai</category><category>career-leadership</category></item><item><title>Driving a TypeScript Codebase to Zero Errors</title><link>https://matthewcm.dev/notes/driving-a-typescript-codebase-to-zero-errors/</link><guid isPermaLink="true">https://matthewcm.dev/notes/driving-a-typescript-codebase-to-zero-errors/</guid><description>Case study — taking a large React codebase from a long backlog of TypeScript errors to zero with months of small, non-functional merge requests, so the build could finally enforce types.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>case-study</category><category>growing</category><category>frontend-craft</category><category>career-leadership</category></item><item><title>Eisenhower Matrix</title><link>https://matthewcm.dev/notes/eisenhower-matrix/</link><guid isPermaLink="true">https://matthewcm.dev/notes/eisenhower-matrix/</guid><description>Sort work by urgent and important. Do, schedule, delegate, delete. Most real progress lives in &quot;important but not urgent&quot;, which is exactly the quadrant that gets squeezed out.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>learning-systems</category><category>career-leadership</category></item><item><title>Eureka: Automating Reward Design with Coding LLMs</title><link>https://matthewcm.dev/notes/eureka-automating-reward-design-with-coding-llms/</link><guid isPermaLink="true">https://matthewcm.dev/notes/eureka-automating-reward-design-with-coding-llms/</guid><description>NVIDIA&apos;s Eureka puts an LLM in a loop around reinforcement learning — it reads the environment code, writes reward functions, trains, reflects on the results and rewrites. A blueprint for closed-loop agents.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>platform-ai</category></item><item><title>Fallacies of Distributed Computing</title><link>https://matthewcm.dev/notes/fallacies-of-distributed-computing/</link><guid isPermaLink="true">https://matthewcm.dev/notes/fallacies-of-distributed-computing/</guid><description>Eight assumptions everyone makes about networks, and every one of them is false. A checklist for any design that crosses a process boundary, including the browser.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>evergreen</category><category>distributed-systems</category></item><item><title>FLP Impossibility</title><link>https://matthewcm.dev/notes/flp-impossibility/</link><guid isPermaLink="true">https://matthewcm.dev/notes/flp-impossibility/</guid><description>In a fully asynchronous system, no deterministic algorithm can guarantee consensus if even one node may crash. Real systems get around it with timeouts and randomness, giving up guaranteed termination rather than safety.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>distributed-systems</category></item><item><title>Front Lever Leverage</title><link>https://matthewcm.dev/notes/front-lever-leverage/</link><guid isPermaLink="true">https://matthewcm.dev/notes/front-lever-leverage/</guid><description>The front lever is a torque problem. A back-of-the-envelope segment model shows why each progression is a step in moment arm, why tall people suffer, and why the straddle is less of a shortcut than it feels.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>calisthenics-lab</category></item><item><title>Git Worktrees: A Desk per Branch</title><link>https://matthewcm.dev/notes/git-worktrees-a-desk-per-branch/</link><guid isPermaLink="true">https://matthewcm.dev/notes/git-worktrees-a-desk-per-branch/</guid><description>One working directory per branch means no stashing, no reinstalling and no committing to the wrong branch — and it turns out to be exactly what parallel coding agents need too.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>evergreen</category><category>frontend-craft</category><category>platform-ai</category></item><item><title>Golden Paths</title><link>https://matthewcm.dev/notes/golden-paths/</link><guid isPermaLink="true">https://matthewcm.dev/notes/golden-paths/</guid><description>The opinionated, fully supported route from nothing to a running service. Optional, but so much easier than the alternatives that teams choose it.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>platform-ai</category></item><item><title>Golden Paths and the Recommended Routine</title><link>https://matthewcm.dev/notes/golden-paths-and-the-recommended-routine/</link><guid isPermaLink="true">https://matthewcm.dev/notes/golden-paths-and-the-recommended-routine/</guid><description>The best developer platforms feel like a good beginner programme — opinionated, safe, explained, and easy to leave once you know why.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>metaphor</category><category>growing</category><category>calisthenics-lab</category><category>platform-ai</category><category>frontend-craft</category></item><item><title>Graph Visualisation Libraries</title><link>https://matthewcm.dev/notes/graph-visualisation-libraries/</link><guid isPermaLink="true">https://matthewcm.dev/notes/graph-visualisation-libraries/</guid><description>For large network graphs, the rendering technology matters more than the API — DOM and SVG struggle past a few thousand nodes, canvas goes further, and WebGL stays interactive at 10k+.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>realtime-ui</category><category>frontend-craft</category></item><item><title>Hacking Forums as Learning Communities</title><link>https://matthewcm.dev/notes/hacking-forums-as-learning-communities/</link><guid isPermaLink="true">https://matthewcm.dev/notes/hacking-forums-as-learning-communities/</guid><description>Game hacking and modding forums are, first of all, places where people learn — sharing tools, tutorials and status. The same dynamics that make them great teachers raise the question of where the learning leads.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>seed</category><category>learning-systems</category><category>platform-ai</category></item><item><title>Handstand Push-up Progressions</title><link>https://matthewcm.dev/notes/handstand-push-up-progressions/</link><guid isPermaLink="true">https://matthewcm.dev/notes/handstand-push-up-progressions/</guid><description>From pike push-ups to the freestanding handstand push-up — the ladder I&apos;m climbing in 2026, the prerequisites that matter, and why balance becomes the limiter at the top.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>skill</category><category>growing</category><category>calisthenics-lab</category></item><item><title>Handstand Technique: Base, Stack, Corrections</title><link>https://matthewcm.dev/notes/handstand-technique-base-stack-corrections/</link><guid isPermaLink="true">https://matthewcm.dev/notes/handstand-technique-base-stack-corrections/</guid><description>The cues that took me from wall holds to a 30-second freestanding handstand — build the base, stack the line, and balance with your hands, not your feet.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>skill</category><category>growing</category><category>calisthenics-lab</category></item><item><title>Headless Component Libraries</title><link>https://matthewcm.dev/notes/headless-component-libraries/</link><guid isPermaLink="true">https://matthewcm.dev/notes/headless-component-libraries/</guid><description>A library shared across products never fits any one of them perfectly — ship structure and behaviour, and let each app own the styling.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>frontend-craft</category></item><item><title>Heartbeat</title><link>https://matthewcm.dev/notes/heartbeat/</link><guid isPermaLink="true">https://matthewcm.dev/notes/heartbeat/</guid><description>A periodic &quot;I&apos;m alive&quot; message that lets a system notice when a node has failed. Simple to build, subtle to tune, because a slow node and a dead one look the same.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>distributed-systems</category><category>realtime-ui</category></item><item><title>How I Take Notes: Capture, Distil, Resurface</title><link>https://matthewcm.dev/notes/how-i-take-notes-capture-distil-resurface/</link><guid isPermaLink="true">https://matthewcm.dev/notes/how-i-take-notes-capture-distil-resurface/</guid><description>From a university Zettelkasten to a second brain with an AI librarian — I only capture now, and the system distils, links and brings old ideas back on a schedule.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>learning-systems</category><category>platform-ai</category></item><item><title>HTTP Long Polling</title><link>https://matthewcm.dev/notes/http-long-polling/</link><guid isPermaLink="true">https://matthewcm.dev/notes/http-long-polling/</guid><description>The &quot;hanging GET&quot; — the server holds a request open until there&apos;s news, then the client asks again. Near-real-time over plain HTTP, and still the universal fallback.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>realtime-ui</category></item><item><title>Hypertrophy and Skill Phases: Build vs Harden Cycles</title><link>https://matthewcm.dev/notes/hypertrophy-and-skill-phases-build-vs-harden-cycles/</link><guid isPermaLink="true">https://matthewcm.dev/notes/hypertrophy-and-skill-phases-build-vs-harden-cycles/</guid><description>You can&apos;t push volume and skill at the same time without something giving. Platform roadmaps work better when they alternate building capability with hardening it.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>metaphor</category><category>growing</category><category>calisthenics-lab</category><category>platform-ai</category><category>career-leadership</category></item><item><title>Internal Developer Platform</title><link>https://matthewcm.dev/notes/internal-developer-platform/</link><guid isPermaLink="true">https://matthewcm.dev/notes/internal-developer-platform/</guid><description>The self-service layer a platform team offers product teams, run as a product with developers as customers. If you have to raise a ticket, it&apos;s a service desk, not a platform.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>platform-ai</category></item><item><title>Knowledge Transfer Before Moving On</title><link>https://matthewcm.dev/notes/knowledge-transfer-before-moving-on/</link><guid isPermaLink="true">https://matthewcm.dev/notes/knowledge-transfer-before-moving-on/</guid><description>Case study — handing over a platform I&apos;d led the UI of, through structured sessions backed by written docs, a reuse strategy and a clean backlog, so the team could own it without me.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>case-study</category><category>growing</category><category>career-leadership</category><category>platform-ai</category></item><item><title>L-sit and V-sit</title><link>https://matthewcm.dev/notes/l-sit-and-v-sit/</link><guid isPermaLink="true">https://matthewcm.dev/notes/l-sit-and-v-sit/</guid><description>Compression is the quiet prerequisite behind presses, levers and muscle-ups. My L-sit to V-sit ladder, the flexibility it needs, and the drills that move it.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>skill</category><category>seed</category><category>calisthenics-lab</category></item><item><title>Learning When Everything Wants Your Attention</title><link>https://matthewcm.dev/notes/learning-when-everything-wants-your-attention/</link><guid isPermaLink="true">https://matthewcm.dev/notes/learning-when-everything-wants-your-attention/</guid><description>Information is everywhere and almost none of it sticks. Learn less, one thing at a time, then write, build and share — and design your environment so focus is the default.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>evergreen</category><category>learning-systems</category><category>career-leadership</category></item><item><title>LOGREDIS</title><link>https://matthewcm.dev/notes/logredis/</link><guid isPermaLink="true">https://matthewcm.dev/notes/logredis/</guid><description>Log, Review, Discover. Capture with as little friction as possible, review regularly to spot patterns, and make sure every note can be rediscovered later. The loop that runs my second brain.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>evergreen</category><category>learning-systems</category></item><item><title>Machine Learning</title><link>https://matthewcm.dev/notes/machine-learning/</link><guid isPermaLink="true">https://matthewcm.dev/notes/machine-learning/</guid><description>Learning patterns from data instead of hand-coding rules — supervised, unsupervised and reinforcement learning, and the habit of testing on data the model has never seen.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>platform-ai</category></item><item><title>Message Delivery Semantics</title><link>https://matthewcm.dev/notes/message-delivery-semantics/</link><guid isPermaLink="true">https://matthewcm.dev/notes/message-delivery-semantics/</guid><description>At-most-once, at-least-once and &quot;exactly-once&quot;. Why the network forces you to choose between losing messages and duplicating them, and how idempotency makes duplicates harmless.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>evergreen</category><category>distributed-systems</category></item><item><title>Message Passing</title><link>https://matthewcm.dev/notes/message-passing/</link><guid isPermaLink="true">https://matthewcm.dev/notes/message-passing/</guid><description>&quot;Don&apos;t communicate by sharing memory; share memory by communicating.&quot; Independent processes exchanging messages over channels, from Go and actors to queues and WebSockets.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>distributed-systems</category><category>realtime-ui</category></item><item><title>Mining Reddit for Research</title><link>https://matthewcm.dev/notes/mining-reddit-for-research/</link><guid isPermaLink="true">https://matthewcm.dev/notes/mining-reddit-for-research/</guid><description>Reddit&apos;s topic-focused communities make it a rich research source. How to collect posts with PRAW and an archive, how to clean them, and the ethics that keep individuals out of your results.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>platform-ai</category><category>learning-systems</category></item><item><title>MSW (Mock Service Worker)</title><link>https://matthewcm.dev/notes/msw-mock-service-worker/</link><guid isPermaLink="true">https://matthewcm.dev/notes/msw-mock-service-worker/</guid><description>Intercept HTTP at the network layer so tests, Storybook and local development all hit realistic mocked APIs while your real fetching and parsing code runs.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>evergreen</category><category>frontend-craft</category></item><item><title>Natural Language Processing</title><link>https://matthewcm.dev/notes/natural-language-processing/</link><guid isPermaLink="true">https://matthewcm.dev/notes/natural-language-processing/</guid><description>Turning human language into something machines can work with — tokens, vectors, embeddings — so they can classify, extract, summarise or generate it. From bag-of-words and sentiment lexicons to transformers.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>seed</category><category>platform-ai</category></item><item><title>Observability</title><link>https://matthewcm.dev/notes/observability/</link><guid isPermaLink="true">https://matthewcm.dev/notes/observability/</guid><description>Being able to ask new questions of a running system from its outputs — logs, metrics and traces, tied to the SLOs that turn them into decisions.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>platform-ai</category><category>distributed-systems</category></item><item><title>Online Communities and Interaction Spaces</title><link>https://matthewcm.dev/notes/online-communities-and-interaction-spaces/</link><guid isPermaLink="true">https://matthewcm.dev/notes/online-communities-and-interaction-spaces/</guid><description>What actually makes an online community — shared purpose, interaction, norms, a platform — and why &quot;member&quot; and &quot;participant&quot; aren&apos;t the same thing. The literature behind how I framed forum research.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>learning-systems</category><category>platform-ai</category></item><item><title>Pair Programming</title><link>https://matthewcm.dev/notes/pair-programming/</link><guid isPermaLink="true">https://matthewcm.dev/notes/pair-programming/</guid><description>Pairing trades a little throughput for quality, shared ownership and faster onboarding. Pick the style for the goal. Ping-pong for TDD, driver/navigator for design, strong-style for teaching.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>career-leadership</category></item><item><title>Pathways into Cybercrime</title><link>https://matthewcm.dev/notes/pathways-into-cybercrime/</link><guid isPermaLink="true">https://matthewcm.dev/notes/pathways-into-cybercrime/</guid><description>My final-year dissertation at Kent. Can topic modelling and network analysis of online communities show whether game hacking and cheating forums lead people towards more serious hacking? The question, the approach, the ethics, and what I&apos;d do differently with today&apos;s LLMs.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>project</category><category>growing</category><category>platform-ai</category><category>learning-systems</category></item><item><title>Pistol and Shrimp Squats</title><link>https://matthewcm.dev/notes/pistol-and-shrimp-squats/</link><guid isPermaLink="true">https://matthewcm.dev/notes/pistol-and-shrimp-squats/</guid><description>Single-leg strength for a calisthenics athlete who also runs. Pistols to weighted pistols, shrimp squats to two-hand shrimps, and why single-leg work keeps the knees and ankles honest.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>skill</category><category>seed</category><category>calisthenics-lab</category></item><item><title>Planche Progressions</title><link>https://matthewcm.dev/notes/planche-progressions/</link><guid isPermaLink="true">https://matthewcm.dev/notes/planche-progressions/</guid><description>Tuck planche and tuck planche push-ups are in; the advanced tuck is the goal. Lean, protraction and patience — and why planche keeps getting parked behind handstand work.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>skill</category><category>seed</category><category>calisthenics-lab</category></item><item><title>Playwright</title><link>https://matthewcm.dev/notes/playwright/</link><guid isPermaLink="true">https://matthewcm.dev/notes/playwright/</guid><description>End-to-end tests in real browsers with accessible locators, auth handled once via saved storage state, network control for deterministic runs, and traces that make CI failures debuggable.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>frontend-craft</category></item><item><title>Press to Handstand</title><link>https://matthewcm.dev/notes/press-to-handstand/</link><guid isPermaLink="true">https://matthewcm.dev/notes/press-to-handstand/</guid><description>Bent-arm and straight-arm presses to handstand are compression and shoulder problems more than strength problems. What&apos;s worked for me so far, and what&apos;s still missing.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>skill</category><category>seed</category><category>calisthenics-lab</category></item><item><title>Preventing XSS in React</title><link>https://matthewcm.dev/notes/preventing-xss-in-react/</link><guid isPermaLink="true">https://matthewcm.dev/notes/preventing-xss-in-react/</guid><description>React escapes what you put in JSX, so most XSS comes through the escape hatches — dangerouslySetInnerHTML, direct DOM writes, javascript URLs and third-party scripts. Defend in layers.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>evergreen</category><category>frontend-craft</category></item><item><title>Procrastination</title><link>https://matthewcm.dev/notes/procrastination/</link><guid isPermaLink="true">https://matthewcm.dev/notes/procrastination/</guid><description>Procrastination is emotion management, not laziness. Reduce the friction with a clear, small next step and a protected block of time to start it.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>seed</category><category>learning-systems</category></item><item><title>Progressive Overload and Incremental Migration</title><link>https://matthewcm.dev/notes/progressive-overload-and-incremental-migration/</link><guid isPermaLink="true">https://matthewcm.dev/notes/progressive-overload-and-incremental-migration/</guid><description>You don&apos;t add 40kg to the bar overnight, and you don&apos;t rewrite a system in one go — small, steady, measured increases win both times.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>metaphor</category><category>growing</category><category>calisthenics-lab</category><category>platform-ai</category><category>frontend-craft</category></item><item><title>Pull-ups and the One-Arm Chin-up</title><link>https://matthewcm.dev/notes/pull-ups-and-the-one-arm-chin-up/</link><guid isPermaLink="true">https://matthewcm.dev/notes/pull-ups-and-the-one-arm-chin-up/</guid><description>From the first strict pull-up to ring archers and one-arm chin negatives. The vertical pulling ladder, the cues that made it click, and how I&apos;m approaching the one-arm chin-up.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>skill</category><category>growing</category><category>calisthenics-lab</category></item><item><title>Raft</title><link>https://matthewcm.dev/notes/raft/</link><guid isPermaLink="true">https://matthewcm.dev/notes/raft/</guid><description>A consensus algorithm designed to be understandable. Elect a leader with randomised timeouts, replicate a log, and commit entries once a majority has them.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>distributed-systems</category></item><item><title>React Testing Strategy</title><link>https://matthewcm.dev/notes/react-testing-strategy/</link><guid isPermaLink="true">https://matthewcm.dev/notes/react-testing-strategy/</guid><description>Put logic in plain functions and unit-test them; test hooks and pages as integration tests against a mocked network; assert only on what users can observe.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>evergreen</category><category>frontend-craft</category></item><item><title>Regress, Don&apos;t Grind: Graceful Degradation</title><link>https://matthewcm.dev/notes/regress-dont-grind-graceful-degradation/</link><guid isPermaLink="true">https://matthewcm.dev/notes/regress-dont-grind-graceful-degradation/</guid><description>On a bad training day you drop to an easier progression rather than grinding ugly reps. Systems under stress should do the same — shed the expensive work, keep the core going.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>metaphor</category><category>seed</category><category>calisthenics-lab</category><category>realtime-ui</category><category>distributed-systems</category></item><item><title>Reinforcement Learning</title><link>https://matthewcm.dev/notes/reinforcement-learning/</link><guid isPermaLink="true">https://matthewcm.dev/notes/reinforcement-learning/</guid><description>An agent takes actions in an environment to maximise reward. The vocabulary — policy, reward, rollout — and why reward design is the hard part.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>platform-ai</category></item><item><title>Removing Secrets from Git History</title><link>https://matthewcm.dev/notes/removing-secrets-from-git-history/</link><guid isPermaLink="true">https://matthewcm.dev/notes/removing-secrets-from-git-history/</guid><description>Scan for leaks, rotate first, rewrite history with regex patterns rather than literal lists, and add a pre-commit scanner so it never happens again.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>frontend-craft</category><category>career-leadership</category></item><item><title>Rolling Out an API Gateway</title><link>https://matthewcm.dev/notes/rolling-out-an-api-gateway/</link><guid isPermaLink="true">https://matthewcm.dev/notes/rolling-out-an-api-gateway/</guid><description>Case study — putting a declarative API gateway in front of a platform&apos;s microservices with little dedicated ops support. Versioned routes, stable names, one place for CORS, and validating locally before asking for anything.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>case-study</category><category>growing</category><category>platform-ai</category><category>distributed-systems</category></item><item><title>SAID Principle</title><link>https://matthewcm.dev/notes/said-principle/</link><guid isPermaLink="true">https://matthewcm.dev/notes/said-principle/</guid><description>Specific Adaptation to Imposed Demands — you get good at exactly what you train. Systems and test suites do too, so make the training look like production.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>metaphor</category><category>growing</category><category>calisthenics-lab</category><category>frontend-craft</category><category>distributed-systems</category></item><item><title>SAID: Train for the Production You Actually Run</title><link>https://matthewcm.dev/notes/said-train-for-the-production-you-actually-run/</link><guid isPermaLink="true">https://matthewcm.dev/notes/said-train-for-the-production-you-actually-run/</guid><description>Specific Adaptation to Imposed Demands — you get good at exactly what you practise. Tests and staging only prepare a system for the conditions they simulate.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>metaphor</category><category>growing</category><category>calisthenics-lab</category><category>frontend-craft</category><category>distributed-systems</category></item><item><title>Server-Sent Events (SSEs)</title><link>https://matthewcm.dev/notes/server-sent-events-sses/</link><guid isPermaLink="true">https://matthewcm.dev/notes/server-sent-events-sses/</guid><description>One-way server-to-client streaming over plain HTTP, with automatic reconnection built into the browser. The simplest right answer for feeds, progress updates and streaming AI responses.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>realtime-ui</category></item><item><title>Shift Left Testing</title><link>https://matthewcm.dev/notes/shift-left-testing/</link><guid isPermaLink="true">https://matthewcm.dev/notes/shift-left-testing/</guid><description>Find defects where they&apos;re cheapest to fix, in refinement, the editor and the pull request. But shift-left means early feedback, not running every expensive test at the earliest stage.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>frontend-craft</category><category>career-leadership</category></item><item><title>Skill Trees as Platform Capability Maps</title><link>https://matthewcm.dev/notes/skill-trees-as-platform-capability-maps/</link><guid isPermaLink="true">https://matthewcm.dev/notes/skill-trees-as-platform-capability-maps/</guid><description>Draw a platform roadmap like a calisthenics skill tree — prerequisites, tiers and mastery levels — so it&apos;s obvious what&apos;s locked until the foundations are in.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>metaphor</category><category>growing</category><category>calisthenics-lab</category><category>platform-ai</category><category>learning-systems</category></item><item><title>SLA vs SLO vs SLI</title><link>https://matthewcm.dev/notes/sla-vs-slo-vs-sli/</link><guid isPermaLink="true">https://matthewcm.dev/notes/sla-vs-slo-vs-sli/</guid><description>The SLI is what you measure, the SLO is your target for it, the SLA is the promise with consequences — and the error budget turns all three into release decisions.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>platform-ai</category><category>distributed-systems</category></item><item><title>Smart TV Apps on Low-End Devices</title><link>https://matthewcm.dev/notes/smart-tv-apps-on-low-end-devices/</link><guid isPermaLink="true">https://matthewcm.dev/notes/smart-tv-apps-on-low-end-devices/</guid><description>Case study — building a broadcaster&apos;s streaming app for many TV platforms at Accedo. Memory and performance work for slow devices, a back-navigation model that finally made sense, a full rebrand, and a knowledge-sharing culture.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>case-study</category><category>growing</category><category>frontend-craft</category><category>realtime-ui</category><category>career-leadership</category></item><item><title>Social Network Analysis</title><link>https://matthewcm.dev/notes/social-network-analysis/</link><guid isPermaLink="true">https://matthewcm.dev/notes/social-network-analysis/</guid><description>Modelling people and their interactions as a graph to find who&apos;s influential, which communities form and how behaviour spreads. Centrality, clustering, Louvain community detection, and why graph thinking travels so well.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>platform-ai</category><category>realtime-ui</category></item><item><title>SOLID React</title><link>https://matthewcm.dev/notes/solid-react/</link><guid isPermaLink="true">https://matthewcm.dev/notes/solid-react/</guid><description>SOLID translated into React habits — separate data from rendering, extend through composition, keep props minimal and depend on abstractions you pass in.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>frontend-craft</category></item><item><title>Spaced Repetition</title><link>https://matthewcm.dev/notes/spaced-repetition/</link><guid isPermaLink="true">https://matthewcm.dev/notes/spaced-repetition/</guid><description>Spaced repetition is testing plus time. Recall something just as you&apos;re about to forget it, at growing intervals, and it sticks for months with far less effort than cramming.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>learning-systems</category></item><item><title>Stop Mocking Fetch</title><link>https://matthewcm.dev/notes/stop-mocking-fetch/</link><guid isPermaLink="true">https://matthewcm.dev/notes/stop-mocking-fetch/</guid><description>Mocking fetch or your own API modules couples tests to implementation and quietly re-implements your backend in every test file. Mock the network boundary instead.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>evergreen</category><category>frontend-craft</category></item><item><title>Storybook</title><link>https://matthewcm.dev/notes/storybook/</link><guid isPermaLink="true">https://matthewcm.dev/notes/storybook/</guid><description>Components rendered in isolation, one story per state — living documentation, a test bench and a stakeholder demo in one. Most valuable when every requirement gets a story.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>frontend-craft</category></item><item><title>Synchronization</title><link>https://matthewcm.dev/notes/synchronization/</link><guid isPermaLink="true">https://matthewcm.dev/notes/synchronization/</guid><description>Coordinating access to shared resources (critical sections, mutexes, semaphores, monitors) so concurrent code only ever does safe things.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>seed</category><category>distributed-systems</category></item><item><title>TDD as a Feedback Loop</title><link>https://matthewcm.dev/notes/tdd-as-a-feedback-loop/</link><guid isPermaLink="true">https://matthewcm.dev/notes/tdd-as-a-feedback-loop/</guid><description>Red, green, refactor is less about tests than about tight feedback — and in the age of coding agents, a failing test is the clearest instruction you can give.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>frontend-craft</category><category>platform-ai</category></item><item><title>The Consensus Problem</title><link>https://matthewcm.dev/notes/the-consensus-problem/</link><guid isPermaLink="true">https://matthewcm.dev/notes/the-consensus-problem/</guid><description>Getting several nodes to agree on one value despite failures, defined by agreement, validity and termination. It&apos;s the problem underneath leader election, replicated logs and distributed locks, with Paxos as the classic answer.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>distributed-systems</category></item><item><title>The Muscle-Up Transition</title><link>https://matthewcm.dev/notes/the-muscle-up-transition/</link><guid isPermaLink="true">https://matthewcm.dev/notes/the-muscle-up-transition/</guid><description>The muscle-up isn&apos;t a pull-up plus a dip; it&apos;s the awkward bit in between. False grip, pulling height and a fast lean-over are what got me from zero to eight ring muscle-ups.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>skill</category><category>growing</category><category>calisthenics-lab</category></item><item><title>The Second Brain</title><link>https://matthewcm.dev/notes/the-second-brain/</link><guid isPermaLink="true">https://matthewcm.dev/notes/the-second-brain/</guid><description>Your brain is good at having ideas and bad at storing them. A trusted external system for what you learn means you never start from scratch, and ideas get recycled instead of lost.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>learning-systems</category></item><item><title>Threads and Processes</title><link>https://matthewcm.dev/notes/threads-and-processes/</link><guid isPermaLink="true">https://matthewcm.dev/notes/threads-and-processes/</guid><description>Program vs process vs thread, and the three &quot;multis&quot; (multiprogramming, multiprocessing, multithreading): the units every concurrency discussion is built from.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>seed</category><category>distributed-systems</category></item><item><title>Topic Modelling with LDA</title><link>https://matthewcm.dev/notes/topic-modelling-with-lda/</link><guid isPermaLink="true">https://matthewcm.dev/notes/topic-modelling-with-lda/</guid><description>Latent Dirichlet Allocation treats each document as a mix of topics and each topic as a mix of words. It&apos;s unsupervised, fast to try, and still a useful explainable baseline next to embeddings and LLMs.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>platform-ai</category></item><item><title>Training Around a Busy Week</title><link>https://matthewcm.dev/notes/training-around-a-busy-week/</link><guid isPermaLink="true">https://matthewcm.dev/notes/training-around-a-busy-week/</guid><description>When time comes in smaller blocks and sleep is broken, the minimum effective dose, short explosive sessions and a flexible schedule keep progress going — or at least keep the skills.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>seed</category><category>calisthenics-lab</category><category>career-leadership</category></item><item><title>Two-Phase Commit</title><link>https://matthewcm.dev/notes/two-phase-commit/</link><guid isPermaLink="true">https://matthewcm.dev/notes/two-phase-commit/</guid><description>A coordinator asks every participant to prepare, then tells them all to commit or abort. It gives atomic distributed transactions, but blocks if the coordinator fails at the wrong moment.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>distributed-systems</category></item><item><title>Types of Failure</title><link>https://matthewcm.dev/notes/types-of-failure/</link><guid isPermaLink="true">https://matthewcm.dev/notes/types-of-failure/</guid><description>Crash, omission, timing and Byzantine failures, from &quot;it stopped&quot; to &quot;it lies&quot;. Knowing which ones you&apos;re designing for decides how much machinery you need.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>distributed-systems</category></item><item><title>Typing Speed and a Keyboard-First Setup</title><link>https://matthewcm.dev/notes/typing-speed-and-a-keyboard-first-setup/</link><guid isPermaLink="true">https://matthewcm.dev/notes/typing-speed-and-a-keyboard-first-setup/</guid><description>From 60 wpm hunt-and-peck to 100+ touch typing, a detour through Colemak and back, and the split-keyboard, mouse-free setup I use now.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>frontend-craft</category><category>learning-systems</category></item><item><title>WebSockets</title><link>https://matthewcm.dev/notes/websockets/</link><guid isPermaLink="true">https://matthewcm.dev/notes/websockets/</guid><description>A persistent, two-way channel between browser and server. Brilliant when both sides talk often; the price is stateful connections you now have to scale, heartbeat and reconnect.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>evergreen</category><category>realtime-ui</category><category>distributed-systems</category></item><item><title>Weighted Pull-ups and Dips</title><link>https://matthewcm.dev/notes/weighted-pull-ups-and-dips/</link><guid isPermaLink="true">https://matthewcm.dev/notes/weighted-pull-ups-and-dips/</guid><description>The two strength lifts that underpin most of my skills, logged relative to bodyweight. How I programme them, when to test, and where their carry-over runs out.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>skill</category><category>growing</category><category>calisthenics-lab</category></item><item><title>What Makes an AI Agent</title><link>https://matthewcm.dev/notes/what-makes-an-ai-agent/</link><guid isPermaLink="true">https://matthewcm.dev/notes/what-makes-an-ai-agent/</guid><description>A chatbot answers; an agent perceives a change, reasons about a goal, plans, and takes several actions with tools to get there.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>platform-ai</category></item><item><title>Where Platforms Fit: DDD Subdomains</title><link>https://matthewcm.dev/notes/where-platforms-fit-ddd-subdomains/</link><guid isPermaLink="true">https://matthewcm.dev/notes/where-platforms-fit-ddd-subdomains/</guid><description>Buy what&apos;s generic, build platforms for supporting capabilities, and leave the core to product teams — Domain-Driven Design as a map for platform investment.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>platform-ai</category><category>career-leadership</category></item><item><title>Why People Legitimise Hacking</title><link>https://matthewcm.dev/notes/why-people-legitimise-hacking/</link><guid isPermaLink="true">https://matthewcm.dev/notes/why-people-legitimise-hacking/</guid><description>People are more willing to see hacking as legitimate when they feel a system or authority won&apos;t listen to them, and they&apos;re angry about it. A psychology finding with uncomfortable lessons for organisations.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>seed</category><category>learning-systems</category><category>career-leadership</category></item><item><title>Wrist Load in Handstands</title><link>https://matthewcm.dev/notes/wrist-load-in-handstands/</link><guid isPermaLink="true">https://matthewcm.dev/notes/wrist-load-in-handstands/</guid><description>Your wrists are the actuator, the sensor and the weak link of a handstand. What a pressure-mapping study says about where the load goes, and the prep and cues that kept mine happy.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>seed</category><category>calisthenics-lab</category></item><item><title>You Can&apos;t Serve Two Masters</title><link>https://matthewcm.dev/notes/you-cant-serve-two-masters/</link><guid isPermaLink="true">https://matthewcm.dev/notes/you-cant-serve-two-masters/</guid><description>Specialise for a block. Two or three goals at a time beat ten — in training, where goals compete for recovery, and in teams, where they compete for attention.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>metaphor</category><category>growing</category><category>calisthenics-lab</category><category>career-leadership</category><category>learning-systems</category></item><item><title>Zettelkasten</title><link>https://matthewcm.dev/notes/zettelkasten/</link><guid isPermaLink="true">https://matthewcm.dev/notes/zettelkasten/</guid><description>A slip box of small, linked, permanent notes written in your own words. The value isn&apos;t storage; it&apos;s the connections you&apos;re forced to make, and the surprises they produce later.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>learning-systems</category></item><item><title>Zone 2 Training</title><link>https://matthewcm.dev/notes/zone-2-training/</link><guid isPermaLink="true">https://matthewcm.dev/notes/zone-2-training/</guid><description>Run slowly enough to stay in zone 2 for the whole session. It builds the aerobic base that makes everything else recover faster, and progress shows up as a faster pace at the same heart rate.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>growing</category><category>calisthenics-lab</category></item><item><title>Zustand Transient Updates</title><link>https://matthewcm.dev/notes/zustand-transient-updates/</link><guid isPermaLink="true">https://matthewcm.dev/notes/zustand-transient-updates/</guid><description>For high-frequency socket data, write messages into a store and let only the leaf components subscribe — or skip React rendering entirely for the hottest values.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>note</category><category>evergreen</category><category>realtime-ui</category><category>frontend-craft</category></item><item><title>A history of my blog iterations. V1-V5</title><link>https://matthewcm.dev/project/blog-versions/</link><guid isPermaLink="true">https://matthewcm.dev/project/blog-versions/</guid><description>A history of my blog iterations. V1-V5</description><pubDate>Thu, 09 Oct 2025 00:00:00 GMT</pubDate><category>jekyll</category><category>vite</category><category>markdown</category><category>project</category><category>qwik</category><category>react</category><category>next</category><category>typescript</category></item><item><title>Git Bisect</title><link>https://matthewcm.dev/article/git-bisect/</link><guid isPermaLink="true">https://matthewcm.dev/article/git-bisect/</guid><description>Git Bisect</description><pubDate>Fri, 04 Aug 2023 00:00:00 GMT</pubDate><category>productivity</category><category>git</category><category>tmux</category></item><item><title>What is Resumability? What is the Qwik framework</title><link>https://matthewcm.dev/article/qwik-md/</link><guid isPermaLink="true">https://matthewcm.dev/article/qwik-md/</guid><description>What is Resumability? What is the Qwik framework</description><pubDate>Wed, 02 Aug 2023 00:00:00 GMT</pubDate><category>qwik</category><category>vite</category></item><item><title>The greatest best man challenge</title><link>https://matthewcm.dev/project/the-best-man-challenge/</link><guid isPermaLink="true">https://matthewcm.dev/project/the-best-man-challenge/</guid><description>The greatest best man challenge</description><pubDate>Mon, 24 Jul 2023 00:00:00 GMT</pubDate><category>react</category><category>vite</category><category>project</category></item><item><title>The Zelos Bouldering App</title><link>https://matthewcm.dev/project/zelos/</link><guid isPermaLink="true">https://matthewcm.dev/project/zelos/</guid><description>The Zelos Bouldering App</description><pubDate>Sat, 10 Jun 2023 00:00:00 GMT</pubDate><category>vite</category><category>typescript</category><category>pwa</category><category>project</category><category>storybook</category></item><item><title>Going through the Zero to Prod in Rust book</title><link>https://matthewcm.dev/project/zero-to-prod-rust/</link><guid isPermaLink="true">https://matthewcm.dev/project/zero-to-prod-rust/</guid><description>Going through the Zero to Prod in Rust book</description><pubDate>Sat, 20 May 2023 00:00:00 GMT</pubDate><category>rust</category><category>back-end</category><category>web-assembly</category></item><item><title>The Crypto App interview project</title><link>https://matthewcm.dev/project/the-crypto-app/</link><guid isPermaLink="true">https://matthewcm.dev/project/the-crypto-app/</guid><description>The Crypto App interview project</description><pubDate>Thu, 20 Apr 2023 00:00:00 GMT</pubDate><category>vite</category><category>typescript</category><category>tdd</category><category>auth0</category><category>project</category></item><item><title>Developing a workout tracker app for my friends -&gt; X-Leaderboards</title><link>https://matthewcm.dev/project/x-leaderboards/</link><guid isPermaLink="true">https://matthewcm.dev/project/x-leaderboards/</guid><description>Developing a workout tracker app for my friends -&gt; X-Leaderboards</description><pubDate>Sun, 01 Jan 2023 00:00:00 GMT</pubDate><category>react</category><category>typescript</category><category>project</category></item><item><title>Rust and web assembly</title><link>https://matthewcm.dev/article/rust-webassembly/</link><guid isPermaLink="true">https://matthewcm.dev/article/rust-webassembly/</guid><description>Introduction to Rust and web assembly, how can I get started, and what does rust provide.</description><pubDate>Sun, 18 Dec 2022 00:00:00 GMT</pubDate><category>productivity</category><category>zettelkasten</category><category>gtg</category></item><item><title>A christmas task tracking story: GTG and Zettelkasten</title><link>https://matthewcm.dev/article/task-tracking/</link><guid isPermaLink="true">https://matthewcm.dev/article/task-tracking/</guid><description>What is Zettelkasten and GTG in the form of a story</description><pubDate>Sat, 10 Dec 2022 00:00:00 GMT</pubDate><category>productivity</category><category>zettelkasten</category><category>gtg</category></item><item><title>Building a Digital Culture</title><link>https://matthewcm.dev/article/digital-tranformation/</link><guid isPermaLink="true">https://matthewcm.dev/article/digital-tranformation/</guid><description>Digital Transformation themes through some books read this year</description><pubDate>Sat, 12 Nov 2022 00:00:00 GMT</pubDate><category>digital</category></item><item><title>Git Worktree workflow</title><link>https://matthewcm.dev/article/git-worktree/</link><guid isPermaLink="true">https://matthewcm.dev/article/git-worktree/</guid><description>Going through my ultimate git workflow</description><pubDate>Sat, 23 Apr 2022 00:00:00 GMT</pubDate><category>productivity</category><category>git</category><category>tmux</category></item><item><title>Clothing Inventory App</title><link>https://matthewcm.dev/article/clothing-inventory/</link><guid isPermaLink="true">https://matthewcm.dev/article/clothing-inventory/</guid><description>A plan of my upcoming project: Clothing Inventory</description><pubDate>Fri, 25 Mar 2022 00:00:00 GMT</pubDate><category>project</category></item><item><title>The power of CI/CD Deployment Hooks</title><link>https://matthewcm.dev/article/ci-cd-2022/</link><guid isPermaLink="true">https://matthewcm.dev/article/ci-cd-2022/</guid><description>Talking about CI/CD Deployment Hooks and how they improve development process on a project</description><pubDate>Sat, 19 Mar 2022 00:00:00 GMT</pubDate><category>tech</category><category>devops</category><category>best-practices</category></item><item><title>The Ultimate XMonad Workflow</title><link>https://matthewcm.dev/article/xmonad-workflow/</link><guid isPermaLink="true">https://matthewcm.dev/article/xmonad-workflow/</guid><description>A blog just discussing my XMonad workflow and the several other components that make me a better and happier developer</description><pubDate>Fri, 17 Sep 2021 00:00:00 GMT</pubDate><category>tech</category><category>xmonad</category><category>tmux</category><category>arch-linux</category></item><item><title>Eww! Yuck!</title><link>https://matthewcm.dev/article/eww-yuck/</link><guid isPermaLink="true">https://matthewcm.dev/article/eww-yuck/</guid><description>A shiny new system system monitor, that is also my todo list</description><pubDate>Mon, 13 Sep 2021 00:00:00 GMT</pubDate><category>tech</category><category>arch-linux</category></item><item><title>The Arch Experience</title><link>https://matthewcm.dev/article/the-arch-experience/</link><guid isPermaLink="true">https://matthewcm.dev/article/the-arch-experience/</guid><description>Yet again I try to make my own linux experience that truly works for me</description><pubDate>Mon, 23 Aug 2021 00:00:00 GMT</pubDate><category>productivity</category><category>arch-linux</category></item><item><title>React Testing Library</title><link>https://matthewcm.dev/article/react-testing-library-2021/</link><guid isPermaLink="true">https://matthewcm.dev/article/react-testing-library-2021/</guid><description>Gathering what React Testing Library is, and how it is expected to be used.</description><pubDate>Sat, 14 Aug 2021 00:00:00 GMT</pubDate><category>react</category><category>testing</category></item><item><title>Grocery Tracker - A project plan</title><link>https://matthewcm.dev/article/grocery-scan/</link><guid isPermaLink="true">https://matthewcm.dev/article/grocery-scan/</guid><description>Progress on my receipt scanning application.</description><pubDate>Tue, 27 Jul 2021 00:00:00 GMT</pubDate><category>project</category><category>kotlin</category><category>android-studio</category></item><item><title>100 Days of Code</title><link>https://matthewcm.dev/project/100-days-of-coding/</link><guid isPermaLink="true">https://matthewcm.dev/project/100-days-of-coding/</guid><description>Spend 100 days being purposeful and productive, steady effort and education goes a long way</description><pubDate>Fri, 23 Jul 2021 00:00:00 GMT</pubDate><category>productivity</category></item><item><title>Image Analysis - Histogram Analysis</title><link>https://matthewcm.dev/article/histogram-analysis/</link><guid isPermaLink="true">https://matthewcm.dev/article/histogram-analysis/</guid><description>Contrast Stretching in Images, using Histogram analysis!</description><pubDate>Tue, 04 May 2021 00:00:00 GMT</pubDate><category>image-analysis</category><category>uni</category></item><item><title>Image Analysis - Pattern Recognition</title><link>https://matthewcm.dev/article/image-analysis-pattern-recognition/</link><guid isPermaLink="true">https://matthewcm.dev/article/image-analysis-pattern-recognition/</guid><description>Blog about my understanding about pattern recognition within Image Analysis</description><pubDate>Sun, 02 May 2021 00:00:00 GMT</pubDate><category>image-analysis</category></item><item><title>Image Analysis - Image Processing</title><link>https://matthewcm.dev/article/image-analysis-image-processing/</link><guid isPermaLink="true">https://matthewcm.dev/article/image-analysis-image-processing/</guid><description>Blog about my understanding about Image processing within Image Analysis</description><pubDate>Thu, 08 Apr 2021 00:00:00 GMT</pubDate><category>image-analysis</category></item><item><title>What are NFTs?</title><link>https://matthewcm.dev/article/what-are-nfts/</link><guid isPermaLink="true">https://matthewcm.dev/article/what-are-nfts/</guid><description>One of the biggest trends of 2021. NFTs have been blowing up! Let&apos;s talk about what they are and how they are creating an impact in the art world</description><pubDate>Fri, 26 Mar 2021 00:00:00 GMT</pubDate><category>nft</category></item><item><title>What is Spring - Java?</title><link>https://matthewcm.dev/article/what-is-spring-java/</link><guid isPermaLink="true">https://matthewcm.dev/article/what-is-spring-java/</guid><description>Spring is a dependency injection container, with some very handy utility layers: web frameworks, security frameworks, testing frameworks, component containers, etc.</description><pubDate>Fri, 26 Mar 2021 00:00:00 GMT</pubDate><category>spring</category><category>kotlin</category><category>java</category></item><item><title>Virtual Valentines</title><link>https://matthewcm.dev/article/virtual-valentines-2021/</link><guid isPermaLink="true">https://matthewcm.dev/article/virtual-valentines-2021/</guid><description>How a software engineer expresses his love during a virtual valentines.</description><pubDate>Sun, 14 Feb 2021 00:00:00 GMT</pubDate><category>project</category></item><item><title>How I write notes: Zettelkasten Technique</title><link>https://matthewcm.dev/article/zettelkasten/</link><guid isPermaLink="true">https://matthewcm.dev/article/zettelkasten/</guid><description>Learn the technique to process through information effectively for long term memory storage or easy retrieval of knowledge</description><pubDate>Mon, 08 Feb 2021 00:00:00 GMT</pubDate><category>productivity</category></item><item><title>How to learn when everything DEMANDS your attention</title><link>https://matthewcm.dev/article/learning-and-attention/</link><guid isPermaLink="true">https://matthewcm.dev/article/learning-and-attention/</guid><description>We live in a world full of information, more accessible than ever. Do we really take the time to process anything that we learn?</description><pubDate>Fri, 05 Feb 2021 00:00:00 GMT</pubDate><category>productivity</category></item><item><title>Typing speed, what is your WPM?</title><link>https://matthewcm.dev/article/typing-speed/</link><guid isPermaLink="true">https://matthewcm.dev/article/typing-speed/</guid><description>What is your WPM, and what can you do to type like a pro</description><pubDate>Fri, 08 Jan 2021 00:00:00 GMT</pubDate><category>productivity</category></item><item><title>Hex Game of Life</title><link>https://matthewcm.dev/article/hex-game-of-life-advent-of-code/</link><guid isPermaLink="true">https://matthewcm.dev/article/hex-game-of-life-advent-of-code/</guid><description>Game of life! With a hexagonal twist</description><pubDate>Thu, 24 Dec 2020 00:00:00 GMT</pubDate><category>project</category></item><item><title>Top 100 billboard songs</title><link>https://matthewcm.dev/article/spotify-billboard-songs-project/</link><guid isPermaLink="true">https://matthewcm.dev/article/spotify-billboard-songs-project/</guid><description>Extracting the top 100 billboard songs within a specified time using Python!</description><pubDate>Tue, 22 Dec 2020 00:00:00 GMT</pubDate><category>project</category></item><item><title>React Web Standards</title><link>https://matthewcm.dev/article/react-web-standards-2020/</link><guid isPermaLink="true">https://matthewcm.dev/article/react-web-standards-2020/</guid><description>Goals for effective React development</description><pubDate>Thu, 12 Nov 2020 00:00:00 GMT</pubDate><category>react</category><category>best-practices</category></item><item><title>What is Ricing?</title><link>https://matthewcm.dev/article/ricing/</link><guid isPermaLink="true">https://matthewcm.dev/article/ricing/</guid><description>What is Ricing? As I document my ricing journey</description><pubDate>Thu, 22 Oct 2020 00:00:00 GMT</pubDate><category>ricing</category></item><item><title>Why go to networking events</title><link>https://matthewcm.dev/article/why-go-to-networking-events/</link><guid isPermaLink="true">https://matthewcm.dev/article/why-go-to-networking-events/</guid><description>Learn from those around you, and inspire others in your community</description><pubDate>Sat, 12 Sep 2020 00:00:00 GMT</pubDate><category>community</category></item><item><title>Redux vs React Context</title><link>https://matthewcm.dev/article/redux-vs-context/</link><guid isPermaLink="true">https://matthewcm.dev/article/redux-vs-context/</guid><description>The main react data handling libraries, needed once application deals with complex state.</description><pubDate>Fri, 12 Jun 2020 00:00:00 GMT</pubDate><category>best-practices</category><category>react</category></item><item><title>Nextjs vs Gatsby</title><link>https://matthewcm.dev/article/gatsby-vs-next/</link><guid isPermaLink="true">https://matthewcm.dev/article/gatsby-vs-next/</guid><description>Lets take a look at the frameworks behind web pages vs web applications. How can we utilise these frameworks to improve our site architecture.</description><pubDate>Tue, 07 Apr 2020 00:00:00 GMT</pubDate><category>best-practices</category><category>react</category><category>nextjs</category><category>gatsby</category></item><item><title>Test Driven Development - Intro</title><link>https://matthewcm.dev/article/tdd-introduction/</link><guid isPermaLink="true">https://matthewcm.dev/article/tdd-introduction/</guid><description>TDD</description><pubDate>Tue, 07 Apr 2020 00:00:00 GMT</pubDate><category>test-driven-development</category><category>best-practices</category></item><item><title>TypeScript</title><link>https://matthewcm.dev/article/typescript/</link><guid isPermaLink="true">https://matthewcm.dev/article/typescript/</guid><description>The typed JavaScript language that brings extra documentation with the code that you write.</description><pubDate>Tue, 07 Apr 2020 00:00:00 GMT</pubDate><category>typescript</category><category>best-practices</category></item><item><title>A CMS I can use on my phone</title><link>https://matthewcm.dev/article/cms-phone/</link><guid isPermaLink="true">https://matthewcm.dev/article/cms-phone/</guid><description>Less of a hassle when you&apos;re out and about and what to fix or make a blog post quickly</description><pubDate>Sun, 05 Apr 2020 00:00:00 GMT</pubDate><category>headless-cms</category><category>productivity</category></item><item><title>Markdown vs Headless CMS</title><link>https://matthewcm.dev/article/first-markdown-post/</link><guid isPermaLink="true">https://matthewcm.dev/article/first-markdown-post/</guid><description>Markdown driven blogs vs CMS driven... A trickier decision than I thought.</description><pubDate>Sun, 02 Feb 2020 00:00:00 GMT</pubDate><category>tailwind-css</category><category>markdown</category><category>headless-cms</category></item><item><title>Storybook</title><link>https://matthewcm.dev/article/storybook-2019/</link><guid isPermaLink="true">https://matthewcm.dev/article/storybook-2019/</guid><description>Empower developers to develop new components in isolation and afford reusability</description><pubDate>Wed, 20 Nov 2019 00:00:00 GMT</pubDate><category>storybook</category><category>react</category></item><item><title>Big Data LDN 2019</title><link>https://matthewcm.dev/article/big-data-ldn-2019/</link><guid isPermaLink="true">https://matthewcm.dev/article/big-data-ldn-2019/</guid><description>What did I learn at the Big Data London conference 2019</description><pubDate>Fri, 15 Nov 2019 00:00:00 GMT</pubDate><category>conference</category></item><item><title>Probable Umbrella</title><link>https://matthewcm.dev/article/probable-umbrella/</link><guid isPermaLink="true">https://matthewcm.dev/article/probable-umbrella/</guid><description>First &apos;big&apos; javascript based web project</description><pubDate>Wed, 13 Nov 2019 00:00:00 GMT</pubDate><category>project</category><category>react</category><category>gatsby</category></item><item><title>What is Hacktoberfest 2019</title><link>https://matthewcm.dev/article/hacktoberfest-2019/</link><guid isPermaLink="true">https://matthewcm.dev/article/hacktoberfest-2019/</guid><description>Get to know the worldwide event held in October for developers to contribute to open source projects </description><pubDate>Thu, 17 Oct 2019 00:00:00 GMT</pubDate><category>community</category></item><item><title>&quot;Extreme Mobile&quot; development</title><link>https://matthewcm.dev/article/mobile-web-dev/</link><guid isPermaLink="true">https://matthewcm.dev/article/mobile-web-dev/</guid><description>Did you know you can write programs and even web applications on your Smartphone? Here is how I write programs on planes using my phone.</description><pubDate>Thu, 19 Sep 2019 00:00:00 GMT</pubDate><category>productivity</category></item><item><title>Proptypes</title><link>https://matthewcm.dev/article/react-proptypes/</link><guid isPermaLink="true">https://matthewcm.dev/article/react-proptypes/</guid><description>Get more structure around React components!</description><pubDate>Fri, 02 Aug 2019 00:00:00 GMT</pubDate><category>best-practices</category><category>react</category></item><item><title>Integrating UX with Devops</title><link>https://matthewcm.dev/article/ux-devops/</link><guid isPermaLink="true">https://matthewcm.dev/article/ux-devops/</guid><description>Users should always be at the heart of any type of development, they are more than just customers and consumers, they are people! People with a wide variety of needs.</description><pubDate>Mon, 15 Jul 2019 00:00:00 GMT</pubDate><category>best-practices</category><category>devops</category></item><item><title>Arrow - Artificial Intelligence Experience</title><link>https://matthewcm.dev/article/arrow/</link><guid isPermaLink="true">https://matthewcm.dev/article/arrow/</guid><description>Conference about AI expert insights into key growth areas in AI. Stay ahead of the AI curve</description><pubDate>Sun, 12 May 2019 00:00:00 GMT</pubDate><category>conference</category></item></channel></rss>