Team — Head of Engineering

Tomás Reyes

Ships performance budgets like love letters. Has never once said "it works on my machine" without irony.

Role
Head of Engineering
Based
Melbourne
In the journal
35 articles · 3 case studies
Case studies

From the journal
Engineering · 22 Sept 2026 · 10 min

Experiments that don't shift the layout

A/B testing without layout shift: server-side assignment, experiment flags that never leak into the DOM, metric integrity, and the true cost of visual editors.

performanceexperimentationarchitecture
Engineering · 26 Aug 2026 · 11 min

Monorepo or not? A studio's decision framework

Monorepos solve code-sharing and coordination problems most studios don't have, at tooling costs they don't predict. When we say yes, and what we do when we say no.

monorepotoolingarchitecture
Engineering · 21 Aug 2026 · 10 min

View transitions in the wild: lovely, fragile, worth it

Eight projects in, we still love the View Transitions API — with our eyes open. Where it shines, how it fights your router, and the tiers that keep it honest.

animationUXprogressive enhancement
Engineering · 30 July 2026 · 9 min

Syntax highlighting with zero runtime

Syntax highlighting with zero runtime: tokenise at build time, theme code with design tokens, keep language support honest, ship an accessible copy button.

performancestatic-sitesdeveloper-experience
Engineering · 30 July 2026 · 12 min

WebSockets vs SSE: a realtime guide without religion

An honest guide to realtime transport: WebSockets vs SSE vs polite polling. Lifecycle, reconnection with backoff, presence, scaling and mobile battery realities.

websocketsserver-sent eventsrealtime
Engineering · 18 June 2026 · 10 min

State machines for checkout and onboarding flows

Multi-step flows rot into boolean soup. Explicit state machines fix back-button bugs and analytics blindspots — with a worked checkout example.

state machinesfrontend architectureforms
Engineering · 2 June 2026 · 9 min

Errors are design material: engineering graceful failure

Failures are part of the product, not exceptions to it. Typed errors, retry policies, circuit breakers and writing the failure copy in the same sprint as the happy path.

error-handlingreliabilityUX
Product · 19 May 2026 · 9 min

Bulk actions: power without the footguns

Bulk operations done safely: selection across pages, previewing effects before applying, undo vs confirmation, progress states and permission boundaries.

bulk actionsbatch operationsmulti-select
Engineering · 14 May 2026 · 10 min

Designing APIs that frontend teams don't route around

API design judged by its frontend: pagination contracts, error shapes you can build UI on, BFF vs direct, honest versioning, and the endpoint autopsy.

API designdeveloper experiencerest
AI · 7 May 2026 · 11 min

Fine-tuning vs RAG vs prompt: a decision guide

Prompt, retrieve or fine-tune? The decision tree we run with clients — real cost curves, data needs, iteration speed and maintenance burden.

LLM architectureRAGfine-tuning
Engineering · 7 May 2026 · 11 min

Auth for content and commerce: passkeys, magic links, and the recovery flow

Passkeys, magic links, or passwords with rules? How we choose auth for content and commerce sites — and the account-recovery flows everyone forgets to design.

authenticationsecurityUX
Engineering · 9 Apr 2026 · 9 min

Rolling your own markdown pipeline (and knowing when to)

When MDX stops paying rent: deterministic rendering, frontmatter validation at build time, link auditing of prose, and owning your content format end to end.

content-engineeringmarkdownbuild-tooling
Engineering · 9 Apr 2026 · 10 min

Frontend observability for teams without an SRE

Frontend observability without an SRE: the three signals that matter, sourcemaps done privately, and the dashboards a small team will actually open.

observabilityperformancemonitoring
Engineering · 21 Mar 2026 · 9 min

Web workers for real work: what we move off the main thread

Web workers aren't a WebGL party trick. CSV parsing, fuzzy search, image pipelines, zipping exports — how we move real work off the main thread without the plumbing pain.

performanceweb-workersjavascript
Engineering · 5 Mar 2026 · 10 min

Choosing a framework without the fashion show

How to choose a web framework honestly in 2026: content site vs app, team skills, hiring, SSR needs, ecosystem gravity, exit costs — plus our decision memo.

architecturereactdecision making
Engineering · 19 Feb 2026 · 10 min

Service workers: an honest production guide

Service workers are the most powerful and least forgiving API in the browser. Cache strategies by content type, update flows, offline fallbacks and production debugging.

service workersofflinePWA
Engineering · 11 Feb 2026 · 9 min

Playwright suites that survive the redesign

How to write browser tests against intent, not pixels: accessible locators, honest page objects, visual diff quotas, and keeping the whole suite under ten minutes.

testingplaywrightquality
Engineering · 10 Feb 2026 · 8 min

Design tokens that survive contact with engineering

Most token pipelines rot within a year. Here's the architecture we use at Brassfern to keep design decisions flowing from Figma to production without drift.

design tokensdesign systemsCSS
Engineering · 9 Feb 2026 · 8 min

Error boundaries: designing UI that fails gracefully

Error boundaries are a product decision, not a try/catch. Granularity, fallbacks that save user work, retry semantics and reporting that actually gets read.

reactreliabilityerror-handling
Engineering · 22 Jan 2026 · 11 min

Streaming SSR: practical notes from shipping it

Streaming SSR in practice: what actually streams, where Suspense boundaries help or hurt TTFB, hydration ordering, mid-stream errors, and how to measure it.

reactSSRperformance
Playbooks · 22 Jan 2026 · 11 min

The one-day performance audit (a playbook)

Run a credible performance audit in a single day: lab vs field data, Lighthouse and WebPageTest against CrUX, and an effort/impact findings template that ships.

performance auditcore web vitalswebpagetest
Engineering · 18 Nov 2025 · 10 min

Dependency hygiene: the boring audit that saves the launch

Client codebases rot at the package.json line. Audit cadences, update windows, vendoring decisions, and the licence review nobody does until procurement asks.

engineeringdependenciessecurity
Engineering · 18 Nov 2025 · 10 min

Supply-chain security for JS teams (without the panic)

A calm, runnable supply-chain security practice for JS teams: lockfile hygiene, dependency cadence, audit triage and provenance — no fear-mongering.

securitydependenciesnpm
Engineering · 14 Nov 2025 · 10 min

Bundle budgets: the 170kb rule and how we hold it

Our rule: 170kb of compressed JavaScript per route, or the PR explains itself. How the budget works and where we spend bytes on purpose.

performancebundlingcode splitting
Engineering · 6 Nov 2025 · 11 min

Realtime collaboration tech: CRDT, OT, or a polite refresh

Choosing a collaboration stack honestly: OT versus CRDTs, Yjs in production, presence as a feature, and when a polite refresh beats a sync engine.

realtimecollaborationarchitecture
Engineering · 5 Nov 2025 · 11 min

Transactional email is a product surface: engineer it like one

SPF, DKIM and DMARC without tears, email HTML that survives Outlook, suppression lists, and why templates belong in CI — email as a product surface.

emaildeliverabilitybackend
Product · 18 Sept 2025 · 10 min

CSV import and export: the UX of tabular handoffs

CSV imports that survive real spreadsheets (mapping, previews, error files people can fix) and exports people can trust — stable schemas, honest metadata.

CSVimportexport
Engineering · 12 Sept 2025 · 11 min

A preview environment for every pull request

Per-PR preview environments cost less than the meetings they replace. How we build them: seed data, infrastructure on a budget, and demos as the default.

ci-cddeveloper-experiencedeployments
Engineering · 8 Aug 2025 · 9 min

The headless CMS migration runbook

A field-tested runbook for migrating to a headless CMS: content inventory, model mapping, redirect strategy, preview parity, and the cutover weekend checklist.

CMSmigrationcontent
Engineering · 7 Aug 2025 · 10 min

Core Web Vitals in the field: budgets that survive sprints

A practical Core Web Vitals program: LCP element archaeology, INP triage, CI-enforced budgets, and real-user monitoring on a shoestring. Recipes that work.

performancecore web vitalsCI budgets
Engineering · 19 June 2025 · 9 min

Islands architecture: sprinkle, don't soak

When islands beat a full SPA: hydration costs, interaction latency budgets, the pragmatic hybrid pattern we use on content-heavy sites, and the traps.

architectureperformancehydration
Engineering · 19 June 2025 · 11 min

A testing strategy that ships: what to test, what to skip, what to delete

Our testing pyramid, rebuilt for reality: contract-first unit tests, a thin layer of Playwright journeys, flake budgets, and a CI bill we defend monthly.

testingplaywrightvitest
Engineering · 14 Mar 2025 · 9 min

Edge rendering: an honest guide for content sites

What edge rendering actually buys a content site, what it quietly costs, and the decision framework we run before moving a single route to the edge.

performancearchitectureinfrastructure
Playbooks · 13 Feb 2025 · 11 min

Estimating: how studios price and how to read a quote

Demystifying software estimates: scope decomposition, risk loading, fixed price vs retainer maths, variation clauses, and the questions buyers should ask.

estimationagency pricingfixed price
Web design · 5 Nov 2024 · 9 min

Design handoff that doesn't decay in a sprint

Why handoffs rot and how we stop it: living tokens, component specs over pixel mocks, motion specs with real easing values, annotations that survive sprints.

design systemsdesign engineeringprocess