$ Hi, I'm Tom Butterwith 👋|

I'm an engineering manager based in Edinburgh, UK, currently working for Skyscanner.

I manage teams, coach and develop great software engineers, and build full-stack applications using wide range of technologies including NodeJs, React, Python, Java, and various AWS technologies.

Outside of work I spend my time teaching @ Code First:Girls and mentoring @ codebar.io.


Bosun VS Code Extension

This extension provides syntax highlighting, OpenTSBD metric path completion, and config validation to make the whole Bosun development experience smoother when using VS Code.

The Bosun VS Code Syntax highlighting

VS Code Dark Theme

A custom dark theme for VS Code including three different colour schemes. Full documentation and screenshots can be found at https://tbutterwith.github.io/pyjamas-theme/.

A screenshot of the Pyjamas dark theme in VSCode

React Component Monorepo

A monorepo containing React components with Storybook for development. Currently contains a header component styled on the title cards from Netflix's We are the Champions. Available at https://github.com/tbutterwith/react-components/. Components are available through NPM.

A forest with the text Forest scene written in yellow.

Palette - Browser-based Colour Generator

A tool written in vanilla Javascript to generate colour palettes at random. Available on desktop and mobile devices at https://butterwith.space/palette.

A screenshot of the palette tool.


Refactor Your If Statements for Improved Readability

A quick tip for increasing the readability of your if statements.

Avoid Magic Numbers to Increase Code Readability

Why you should use named variables for storing numbers, instead of using numbers directly.

Dependency Injection in Java with Guice

An introduction and reference Guide to getting started with dependency injection and Guice. Covers why you should use dependency injection, and the most common implementations.

Alfred and Dash: Improving Your Workflow

How to use these two tools to improve your development workflow.

Async Javascript 3 Ways

A brief introduction to asynchronous javascript and the 3 most common implementations.

Jupyter Notebooks for Software Engineers

What are Jupyter notebooks and why should you use them? Covers what are jupyter notebooks, why you might want to use them, and how to import your data into one.

Find me online