2024
Becoming, understanding and improving as a Staff Engineer
This is a collection of all of the advice and links that I provide to anyone that asks about the Staff Engineer role, what it is and how you can get the job.
Reading list on Quality
A collection of web links on the topic of Quality
2023
2023 Reading List
This is a list of the books / newsletters / articles I've consumed in 2023 that are worth sharing and talking about.
2023 Roundup
It's traditional at the end of one year to reflect on and celebrate what has been achieved in the past 365 days or so.
2022
On the establishment of Engineering Guidelines
Week Notes: March 4th, 2022
Week Notes: Feb 18th-ish, 2022
Week Notes: Feb 11th, 2022
Super Interesting Tech, Feb 2022
2019
Better Code Reviews.
Reducing fear and friction in the review process.
Checking Availability in Office 365
How to check for meeting room availability using the (beta) Office 365 Graph API.
Inspired by Open Source.
Inner-sourcing at Compare the Market.
2018
Recognition and Rewards
Incentivising gratitude in the workplace
Putting our Component library on a diet.
Performance matters, and “Houston, we have a problem.”
ESLint + Visual Studio Code: Editor integration For The Win
Coding is complicated so it helps to have a ‘helping hand’ while you work.
Building a humanised command-line interface with Node.js
Because config management sucks.
Rethinking my “personal” website.
Repositioning, repurposing and ultimately rebuilding and replacing my Ghost blog with a Gatsby static site.
Fluid widths in responsive websites.
Front End Design Principle Rambles #1
[The importance of] Psychological Safety in a team
RunMaps #4: Apply UI Sprinkles & Go Live!
With all this effort spent building RunMaps, wouldn’t it be a shame to not share it with the world?
RunMaps 3: Colour Schemes and Labels
Now it's time to pick up where we left the original development; improving the visuals by adding place labels and map markers.
RunMaps v2.0: Breaking free of Mapbox
Replacing Mapbox API Vector Tiles with the OpenStreetMap Overpass API, for fun, profit and better output rendering.
Culture of fear
Yes, it’s a project from Hell, but who’s to blame?
OpenFaaS: Like AWS Lambda, but Open Source and built on top of Docker
Generating Run Maps with Node.js
Hacking away at the Mapbox and Fitbit data APIs
Duotone: Version 2
Refactoring and enhancing an MVP
Building “duotone”
Applying filters to images and generating downloads with client-side Javascript
3 hour hacks
Here’s my next big idea.
2017
PokéProject: Adventures with LEGO Bricks [Part 4]
Part Four: Into the real world.
Link: “How terrible code gets written by perfectly sane people”
A collection of free, online, Front End Web Development books.
My Front End Web Development setup, with Visual Studio Code.
PokéProject: Adventures with LEGO Bricks [Part 3]
Part 3: From a theory to the real world.
PokéProject: Adventures with LEGO Bricks [Part 2]
Part 2: Making optimal use of the available bricks.
PokéProject: Adventures with LEGO Bricks [Part 1]
Part 1: Using JavaScript and HTML5 canvas elements to convert images into 2 dimensional LEGO brick plans.
Uploading files to Trello with Node.js
Generating images for download with HTML5 and Canvas
How to effectively kill your Agile Team
Agile methodology is the glorious present and future of software development, but the correct set of circumstances can seriously cripple a team’s morale and their effectiveness.
PokéProject: from Static HTML, to React, to Nuxt.
Overcoming writer’s block
I like writing. That’s not always been the case — it certainly wasn’t my forte back when I needed it at school and with my University…
Hallmarks of a Modern development workflow — Continuous Integration & Deployment
Software Development is a creative process, and as such it’s important to minimise the things which can disrupt your flow.
Testing Performance, Speed and Best Practices with Lighthouse
Lighthouse is an open-source, automated tool for improving the quality of your web apps.
Scribbling away during meetings.
Modular Code Libraries FTW
Thanks to the fact that I work alongside a bunch of awesome people, today I’ve been introduced to the date-fns library, and it struck a…
What to look for from a (prospective) Developer
I’ve been doing a lot of interviews recently so I thought I would share a little more information about what I’m looking for…
Rituals, dogma and the Agile Manifesto.
I can’t quite work out if Agile is a buzzword, a cult or some larger form of organised religion. I’m lost in a sea of ritualistic meetings…
Why your Next Marketing Hire should be a Robot.
2016
Is it time to use Visual Studio Code as your IDE?
PokéProject Dev Diary: Day Seven
This thing ain’t gonna market itself.
PokéProject Dev Diary: Day Six
Move fast, break shit.
PokéProject Dev Diary: Day Five
Move fast, change things.
PokéProject Dev Diary: Day Four
Adverts, and going live.
PokéProject Dev Diary: Day Three
Changing the theme a bit, today has all been about data, APIs and data transformation.
PokéProject Dev Diary: Day One
Let’s get this show on the road.
PokéProject Dev Diary: Prologue
I’ve written a little before about my exploits as I try to live in “a constant state of Hackathon” but this time I thought I’d change it…
On Thursday, Agile died.
Last Thursday, the Agile in our project died. For most people around the world the day was unremarkable, but for us, on this particular Thursday, Agile was — finally — put out of its misery. For the…
Explorative Prototyping
Your next big idea might very well be your greatest success.
2015
LOLBot or: How I Learned to Stop Worrying and Love my MVP
The ups and ups of adopting an MVP mentality for our Hackathon, and how it helped us achieve victory.
2014
Amateur data spelunking
Raw data has a strangely alluring quality — it has the power to answer all of your questions, as well as the power to ask even more.
The 6 Deadly Sins of Unit Testing
Much like the ‘original 7', recognising and understanding ‘the enemy within’ helps us avoid falling into the same old traps.
Git Zero to Git Hero
Mastering git requires a mentor. Let me be yours.
If it’s not in Bitbucket, it doesn’t exist.
Reinforcing Development Best Practices with brutally inflexible rules.
Using Git Hooks for Project Deployment wins
Designing for Performance
2011
Humans TXT
Win a copy of the Flash Facebook Cookbook, at my FlashMidlands session, this Saturday.
Corona SDK: Solving JSON decode error with UTF-8 files.
Improving your website with Nibbler
Hacking Facebook "Like" buttons for W3C Validation in HTML5
FOTB2011 Highlight #1: HiSlope
quickb2 - Box2D for Flash games.
Available now: The Flash Facebook Cookbook
Discovering: Project Sprouts
Having trouble with workspaces in Appcelerator Titanium?
Cool stuff in Google+ - Image details
A (rather crude) FQL syntax pretty-printer.
Introducing: The Flash Facebook Cookbook
Shottts - Dribbble for the BlackBerry Playbook
Experiments with HTML5 Geolocation
Link: Face-tracking and 3D Scene
The DOM Monster
2010
I hate using AVM1Movie...
This is not about HTML5
xJSFL - That looks pretty cool.
ImageSizer -- and beyond(!)
A more advanced StarRequests, Simple-Box2D & Flickr example.
Fixed: mx.accessibility:LabelAccImpl could not be found.
StarRequests, Simple-Box2D & Flickr - a example mashup.
An incomplete review of books on iPhone Development.
I am now an iPhone app developer.
Link: Icon Generator Pro
Layers of simplicity: Hiding the complexity of your tasks with bespoke solutions.
Link: Introducing ZaaIL – 40+ Image format support for Flash
So, what can you do with HTML5?
Link: Voice synthesis in Adobe AIR 2.0
Link: Value Object Class generator for ActionScript 3
Link: Advanced image filters for Flash Player
Link: FlashSURF - complex image recognition in Flash Player
Minimal components: For when you don't feel like using Flex.
Simple Box2D - Better, cleverer, more optimised.
Fixed: AIR update framework broken!
Link: Working with SQLite in AIR, with the help of ORM
Webcam Face detection demo: Now with source!
Link: Computer mind control with ActionScript 3.0
Demo & Source: Simple Box2D, with curved edges!
Simple Box2D - Custom Polygon creation.
Simplifying Box2DAS3...
The results of my annual "code something different this Christmas" idea.
2009
Building Bridges: Some solutions
"Building Bridges", a Box2D - powered Seasonal Game
The Flash Platform in your TV?
Automating tasks in Flex Builder, with the help of a little something called 'ANT'.
Targeting multiple browsers with CSS... and some Javascript trickery.
Embossed / Shadowed text in Flex
Cool ActionScript projects to try out, if you haven't already...
Webcam + face detection = Spooky goings on...
ImageSizer 0.5.3 is now available!
Getting FTP access in Flex Builder...
Flash introduces DRM to its online video
Rotating BitmapData with Actionscript 3
An overview of Open Source Media Framework (aka. Adobe Strobe)
ImageSizer updated! (again)
How to: Post images to TwitPic with Actionscript
Tracking Flash / Flex / AIR applications with Google Analytics
Link: POSTing XML data, without using HTTPService
What are you looking at? (Introducing Screentweetr)
Tweener - 4 years old now(!)
Link: Creating a snazzy background in Flex 4
Flex Quick Tip: Printing an Objects' contents
Link: Rendering native system icons in AIR
ImageSizer version 0.4.9 released!
Flash Camp Birmingham
Print Screen detection in AIR
Talking about: Flex Gumbo - new features
ImageSizer - feedback screen fail. :-/
ImageSizer reviewed on RefreshingApps.com
Squiddler
Setting up ASDoc in Flex Builder
ImageSizer updated, and now with a Crop tool.
Viewing Flash / Flex / AIR documentation offline with "Doc?"
Tutorial Link: jQuery for Absolute Beginners
Geocoding Google Maps locations to a Papervision3D globe.
The Open Screen Project
Best Practice for AIR applications
ImageSizer is now available from the Adobe AIR Marketplace!
How to: poach Pixel Bender filters.
Sending Authentication Headers in Flex
Advanced Debugging with JavaScript
I'm on Twitter.
Data Binding an Array in Flex?
Building a project tracker in Flex & AIR
A reason why Photoshop CS4 kicks ass
Brighter Horizons for Web Education
ImageSizer - now with a Feedback form!
Introducing ImageSizer 0.4.2
Geocoding UK Postcodes with Google Map API
Using [Bindable] & ChangeWatcher in ActionScript-only classes
Creating custom chromes for AIR applications in Flex & Flash
Will LinkedIn and Twitter kill telemarketing?
Multitouch Applications with AIR
There Be Pixels!
Creating Flex Components - the easy way (for Flash IDE converts)
2008
ImageSizer - updated to version 0.3.10!
BBC Releases an AIR version of the iPlayer
Mmm... Cookies. In ActionScript / JavaScript.
IE8 Beta goes public - and what are those new features?
ImageSizer - updated to version 0.3.9!
Using the FLVPlayback component in Flex
How to make the Flash CS4 Help and Language reference available offline.
Executing multiple XMLHTTPRequests - successfully.
My Splash Screen example - updated with ApplicationInfo class
Resize multiple images and package them for e-mail transmission - introducing ImageSizer!
ADM - Application Descriptor Manager
Getting your source code hosted on Google Code...
Application Information Class for AIR
Darn them XML namespaces!
Interesting things in Adobe Labs - Adobe Wave
10 minute Flex / AIR tutorial - Creating your Application Splash Screen.
Desktop Mashups?
Flash on the Beach 2008 days 2 & 3 roundup.
Flash Player 10 is Live
Tweener and "256 levels of recursion were exceeded in one action list"
Fish Eye Menu in ActionScript 2.0
FOTB: Day One
FOTB: Day Zero
ActionScript 2 - XML CDATA returns undefined, or htmlText doesn't work!
Google Analytics — Unveiled.
Google Chrome is kinda awesome...
All these physics games...
Just how easy can you make an AIR application installation?
Actionscript 2 to Actionscript 3 communication? try FlashInterface...
Creating Outlook Calendar events through hyperlinks
BBC Sports' AIR Application removes its offensive language
BBC uses Adobe AIR to install a list of swear words to users machines.
Exempli Gratia : Using Tweener
Stop using mx.transitions.Tween;
Feeling smart? Try Google's Code Jam
Adobe AIR gets serious?
Links for integrating Flash and Facebook
Launchball - an awesome Flash game
What's up with Flash gaming?
(Flash/Javascript) problems in a .Net Content-Managed Website
The Terminator: Fiction?
Augmented Reality with Flash
Facebook security?!
Immersive Media : 360° Flash Video
Inline Javascript and the defer attribute
Alternativa3D - More 3D goodness from the Flash Player
Open Screen madness?
Automated removal of non-static elements with Photoshop
Adobe AIR is...
AIR files downloading as .zips?
on AIR London / Review
UTF-8 Bot - file encoding conversion with AIR
Playing with Air...
Exploring the Flash CS3 FLVPlayback component
Superscript and Subscript - with Actionscript*
Custom character-set embedding in Flash
09/04/08 Flash Player security update
sIFR links not working?
Trouble migrating to Actionscript 3?
CSS Selection Styles?
Adobe on AIR comes to London...
I found one of my old uni projects...
A different approach to tagging?
XSLT and RSS feeds.
Getting started with AJAX / Prototype
Automatic Link Icons v2.0
2007
Christmas Games – Online & Downloadable
Identifying link targets with CSS
Pimp My PC - Improving the look, feel and general efficiency
Displaying Link locations with CSS
3 Snazzy Photoshop tutorials to check out…
Design Trends: Tabloid Pages
Vector Magic
Syncronising ScrollPane Components in ActionScript 2.
Pseudo-AJAX loading with CSS
Fast and fresh loading graphics with ajaxload.info
ExternalInterface not working in Firefox?
XHTML, Hyperlinks and separating content from style.
Mastering Photoshop with psdtuts.com
Debugging Flash Movies with Fiddler 2
"getURL doesn't work!"
ActionScript: getURL vs. ExternalInterface - When & Why
MovieClip Saturation Class - ActionScript 2
Missapplication of Terminology
Flash Player - set to include HD Video
404 pages
ActionScript 3.0 lets you work with ZIP files?
Exploring .air - the roundup.
One week get to grips with Adobe AIR...
Creating an Icon with Photoshop
2 Smashing Flash Websites...
Little HTML mysteries... alt vs. title
Auto-matic Link Icons
Apollo takes to the .air
Adobe Flash CS3 - off to a worrying start?
Optimizing your CSS Online
Wordpress design competition...
Website screenshots made easy.
Flash, 16bit colour, blendModes and cacheAsBitmap. A recipie for disaster?
EveryStockPhoto
Stock Exchange
More than just validation...
Reigning in your linkspam
RSS. Bling or no Bling?
Flash Video - the Solution?
Kuler Desktop released!
Adobe CS3 Icons
A Web Designers' Secret Weapon #1 : Kuler
Flex goes Open-Source, what does this mean?
Foxmarks
ActionScript Debugging
Obscure Markup