Michael Watts
  1. Home
  2. Work
Software Engineer
  • 20 Aug 2025• 5 min read
    Exploring possibilities of Tone.js
    A deep dive into Tone.js synthesisers, envelopes, and effects - creating rich sonic landscapes in the browser. Read more
  • 19 Aug 2025• 5 min read
    The new CSS type attr
    Explore the new typed attr() function in CSS, which lets you use HTML attribute values as numbers, colours, lengths, and more for dynamic, data-driven styling. Read more
  • 18 Aug 2025• 8 min read
    The new CSS @function rule
    Explore the new CSS @function rule—now available in Chrome—with examples, syntax, and practical use cases. Learn how custom functions and @scope can enhance your stylesheets as browser support expands. Read more
  • 24 Apr 2025• 4 min read
    JavaScript Array at method
    A relatively unknown method to access JavaScript Array elements, the at() method. Read more
  • 20 Apr 2025• 5 min read
    JavaScript Proxy objects
    Explore how JavaScript Proxy objects enable powerful patterns for validation, logging, default values, and more by intercepting and customizing object operations. Read more
  • 13 Feb 2025• 8 min read
    Separating UI and Functional Data Dependencies in Vue
    Learn how to cleanly separate user interface state from business logic in Vue applications using the Composition API, improving maintainability and testing. Read more
  • 12 Feb 2025• 5 min read
    Making long tests more readable with function composition
    Improve test readability by extracting repeated steps into reusable functions. Read more
  • 24 Jul 2024• 10 min read
    Writing Expressive Tests with Gherkin and Vitest in TypeScript
    Learn how to write clear, behaviour-driven tests using Gherkin syntax with Vitest and TypeScript, enhanced by AI-powered coding assistance. Read more
  • 11 Jun 2024• 6 min read
    How AI assistants have changed the way we search the internet
    From Google's multi-tab searches to conversational AI assistants like Perplexity and Cursor, artificial intelligence has vastly transformed the way we find and interact with information online. Read more
  • 23 Apr 2024• 2 min read
    Diff notation test with Shiki
    Testing Shiki diff notation transformer plugin. Read more
  • 11 Apr 2024• 5 min read
    Schema validation in TypeScript
    Implement TypeScript friendly schema validation easily with Zod. Read more
  • 23 Feb 2024• 6 min read
    CSS glowing borders on hover
    A bit of arsing about with CSS to make a button glow on hover using CSS custom properties and keyframes. Read more
  • 16 Feb 2024• 4 min read
    CSS relative colour syntax
    Exploring new proposal for adapting colours based on another colour's channels and values. Read more
  • 15 Jan 2024• 10 min read
    One-time-password code input web component
    One-time-code (OTP), PIN or code input boxes (like you see when logging into PayPal, etc.), a way of doing it with a single input but appears to have 6 separate inputs. Read more
  • 26 Oct 2023• 4 min read
    Web components
    How to create custom elements and handle attributes using JavaScript and TypeScript. Read more
  • 19 Aug 2023• 7 min read
    Making links more accessible
    Making links more accessible for screen readers. Read more
Back to top
© Michael Watts, 2022 - 2025