Skip to content


A list of the talks I have delivered over the years.

Five Questions About Automated Testing

So you have thought about writing automated tests for your product, but simple questions with not-so-simple answers assail you: Why should we bother? Who writes these tests? And when? What parts are worth testing? And most difficult of all: How? I help teams starting on their testing journey find their own answers to these questions, and point them to Kent Beck’s Test Desiderata to recognise what a good test looks like.

  • Private event (October 25, 2023 · Online)

The Wastes of Product Engineering

Product engineering is wasteful, and teams often fail to realise it. Recognising how the traditional 8 wastes of Lean Manufacturing manifest themselves in software development is a key first step towards addressing them through continuous improvement, cross-functional team ownership, and agile practices.

Backwards Compatible API Design

Despite the benefits of agile, iterative software development, public APIs are not amenable to trial-and-error approaches. Only incremental changes are safe — and this is assuming they don’t change the semantics of the API. In this presentation I enumerate the pitfalls of evolving public interfaces and present a number of strategies to deal with growth and ensure robustness.

  • Private event (November 16, 2022 · Online)

Sharing Is Not Caring

Too many software developers are obsessed with keeping their code free from repetition. Too many lift poorly-abstracted, tightly-coupled code into shared libraries used across microservices. In the process, the goal of maintainability is lost, sometimes spectacularly.

  • Private event (June 16, 2021 · Online)

Searching with Bloom Filters

I built a search engine for my sites — it’s small, fast, private, and doesn’t require a backend. Using Bloom filters at its core, it’s presented as an alternative to more sophisticated options using inverted indices that come with a bigger memory footprint. Check the @pacote/bloom-search module on NPM, and a comparison with popular alternatives.

  • RomaJS (June 21, 2023 · Rome, Italy) (video, slides)
  • Private event (June 14, 2023 · Online)
  • BOLT Talks (March 18, 2021 · Online) (slides)


Frontend test automation seems hard but it’s only as hard as you make it. Are you bogged down by endless component tests and still not sure your application won’t break? I talk about the advantages of testing your frontend from the perspective of the people using it, and bust some myths about unit testing and the supposed convenience of shallow component rendering. View the @testing-library talk slides.

When Engineers Pair with Product Managers

How do you get engineers more involved in business decisions? How do you make product managers more aware of delivery opportunities and difficulties? How can they meaningfully challenge each other? A conversation with Neha Datt, Ali Asad Lotia and Luís Rodrigues around the benefits of stepping outside our comfort zone for a closer collaboration between engineering and product management roles.

More Tests, Less Work

Writing tests can be tricky. How do you ensure appropriate coverage yet keep things straightforward and maintainable? Generative (or property-based) testing frameworks exist to reinforce your tests with hundreds of randomised checks, but they require changing your test design mentality. This talk introduces fast-check and its underpinnings, and suggests strategies to help you make the most of it immediately.

  • Expert Talks (February 6, 2020 · Porto, Portugal)
  • Pixels Camp (March 22, 2019 · Lisbon, Portugal) (video)
  • Tech Mate (May 22, 2018 · Lisbon, Portugal)
  • require(’lx’) (April 18, 2018 · Lisbon, Portugal) (video)
  • Expert Talks (April 10, 2018 · Lisbon, Portugal)

More My Type: React Applications in TypeScript

An overview of the benefits of using typed languages when working with React and React Native, with examples in TypeScript, building using Webpack, Babel and the TypeScript compiler, a comparison with standard PropTypes and Flow, common caveats, and strategies for migrating your existing applications.

  • Tech Along (January 30, 2020 · Lisbon, Portugal)
  • Pixels Camp (September 30, 2017 · Lisbon, Portugal)
  • change.log (July 26, 2017 · Lisbon, Portugal)
  • require(’lx’) (June 29, 2017 · Lisbon, Portugal) (video)
  • Private event (April 25, 2021 · Amsterdam, Netherlands)
  • Expert Talks (April 18, 2017 · Lisbon, Portugal) (video)
  • Microsoft OSCAMP (April 5, 2017 · Lisbon, Portugal) (video)

Inverting the Universe

WordPress, business, and bears.

  • WordPress Porto Meetup (March 3, 2017 · Porto, Portugal)

Designing Developing for Humans

Think UX is a designer’s job? Think again. Everybody has a responsibility to provide their visitors with an excellent experience, and sometimes a pretty interface and smooth animations aren’t enough to save your site, your app, or your business. UX goes beyond your device’s screen—CPUs, slow networks, random number generators and the economy may well conspire to ruin your day.

  • Pixels Camp (October 8, 2016 · Lisbon, Portugal) (video, slides)
  • Landing.Festival 2016 (June 4, 2016 · Lisbon, Portugal)
  • WordCamp Porto 2016 (May 14, 2016 · Porto, Portugal)

React + Redux + WP REST API

  • WordPress Lisboa Meetup (June 6, 2016 · Lisbon, Portugal)

Introducing B3

  • WordCamp Lisboa 2015 (May 4, 2015 · Lisbon, Portugal)