Blog posts I've written (42)
-
AI web apps with Firebase
-
Use Firebase with Next.js
-
Differences between JavaScript libraries and frameworks
-
-
Choose a JavaScript library or framework
-
Error handling with the Fetch API
-
Smart Home Product Review with Hey!
-
4 Modern Chrome DevTools Features You Need to Know
-
Accessibility In Chrome DevTools
-
I got job interviews with these code submissions, part two
-
Whatβs New in Chrome DevTools in 2020
-
An extra 13 things I learnt at Shazam
-
15 things I learnt after 5 years at Shazam
-
A spreadsheet to compare job offers
-
Code exercises to get job interviews, part 1
-
Learning from open source
-
The Benefits of Speaking at Tech Conferences
-
Programmatically create images with the CSS Paint API
-
Cross-tab Synchronization with the Web Locks API
-
State of Modules in JavaScript
-
Improving Performance with the Paint Timing API
-
Browser Automation with Puppeteer
-
A Guide to Faster Web App I/O and Data Operations with Streams
-
Increase your web development skills - 150 tips on Chrome DevTools
-
Data Visualisation with 1 Billion Shazam Music Recognitions
-
Six Tips for Chrome DevTools
-
Modern Debugging Experience - Part 2
-
Modern Debugging Experience - Part 1
-
An Introduction to WebDriver Using the JavaScript Bindings
-
DevTools Digest - Updates to the Developer tools in Chrome 35
-
Chrome DevTools Features You May Have Missed
-
DevTools Digest - Updates to the Developer tools in Chrome 33
-
Developing With Sass and Chrome DevTools
-
Developing With Sass and Chrome DevTools
-
Chrome Dev Tools - Networking and the Console
-
Chrome Dev Tools - JavaScript and Performance
-
A First Look at the HTML5 History API
-
Accepting Payments with GoCardless
-
Chrome Dev Tools - Markup and Style
-
Diving Into CSS Regions
-
An Introduction to the CSS Flexbox Module
-
Start Using HTML5 WebSockets Today