Inspired by other awesome lists on Github, this list collects articles, talks, and resources that I DotMH find useful or just interesting.
Why not check out my other projects on Github or follow me on Bluesky
This is a work in progress and I intend it to be a living document, that I am constantly updating.
This file is auto generated by a script, please do not edit it directly for more information see /scripts/README.md
I find it cool to learn about new tools and technologies. Here are the tools that I use everyday.
A big part of the my tool of course is the hardware that I use. Here are the hardware that I use everyday.
- Macbook Pro - My favourite laptop for coding at the moment
- Microsoft Surface Laptop 5 - For when I need Windows and for other general tasks, a smaller and lighter laptop
- More Raspberry Pi's than I can list - For all sorts of projects, from home automation to personal servers
- LG Display (LG Electronics UHD 4K Monitor 27) - A great monitor for coding and design and pairing with laptops via USB-C
- 8BitDo Retro Keyboard (Xbox Edition) - My new favourite keyboard, Love the colour way and the feel.
- 8BitDo Retro R8 Mouse (Xbox Edition) - The Mouse looks awesome and feels great, also can charge without been upside down.
- Stream Deck - For all sorts of shortcuts and automation
- Scarlett 18i16 - My audio interface for recording and streaming
- Sony WH-1000XM4 - My favourite headphones
- Adam Audio T7V - My favourite speakers / monitors
- Adam Audio T10s Subwoofer - A great subwoofer paired with the T7V's
Hardware is useless without some software to run on it. Here are some of the software that I use everyday.
- Visual Studio Code - My favourite code editor
- Sketch - My favourite design tool for UI and UX
- Warp - The best Terminal emulator for the Mac
- 1Password - The best password manager
- Alfred - The best productivity tool for the Mac
- Trello - My favourite project management tool
- ZSH & OHMyZsh - The best shell and shell framework for the Mac
- Eza - An awesome `ls` alternative with a lot of features
- Bat - A brilliant `cat` alternative with syntax highlighting
- Just - A fantastic `make` alternative with a lot of features
- Docker - My favourite containerization tool
- Devcontainers - Allows me to setup isolated development environments and experiment with new tools
- Spotify - My favourite music streaming service
- GitHub Copilot - An AI pair programmer that helps me write code faster
- Sonarcloud - Helps me write better code by finding bugs and vulnerabilities
- Runjs - A playground for JavaScript and TypeScript, supports NPM packages
- Arc Browser - A modern web browser for the Mac and windows
- Jetbrains Rider - I have been learning C# and .NET recently and this is my favourite IDE
- Jetbrains Mono - My favourite font for coding, Terminal and anywhere that I need to read code
- Tokyo Night - My favourite theme for Visual Studio Code, Warp and anywhere that I need to read code
This is the default stack that I use for most projects. I find it very productive and easy to work with. This isn't the only stack that I use, but it's the one that I use most often.
- Typescript Template - My template for creating Typescript projects
- Typescript - My favourite programming language
- Node.js - My favourite backend runtime
- React - My favourite frontend library
- Next.js - My favourite frontend framework
- Vite - My favourite frontend build tool
- Vitest - My favourite testing library
- PNPM - My favourite package manager
- ESLint - My favourite linter
- Prettier - My favourite code formatter
- SASS - My favourite CSS preprocessor
- Github Actions - My favourite CI/CD tool
Visual Studio Code is my favourite code editor. It's fast, extensible and has a great community. Here are the extensions that I use everyday.
Make Visual Studio Code look and feel the way you want it to. These extensions help you customize the editor to your liking.
- Tokyo Night - My favourite theme for coding and writing
- Material Icon Theme - Material Design Icons for Visual Studio Code
- Jetbrains Mono - The best free and open source typeface for developers
- Vscode Pets - A collection of pets for your editor
Extensions that add tooling to Visual Studio Code. These make it easier to work with code, manage dependencies, and more.
- Code Spell Checker - Spelling checker for source code
- Dependi - Dependency Analytics for your project
- GitLens - Supercharge the Git capabilities built into Visual Studio Code — Visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore Git repositories, gain valuable insights via powerful comparison commands, and so much more.
- Polacode - Polaroid for your code
- Marp - Markdown presentation writer, powered by Marpit.
- Remote Development - Work with remote or local code in containers, on remote machines, or in the Windows Subsystem for Linux (WSL).
- Devcontainers - Allows you to open any folder in a container, on a remote machine, or in WSL and take advantage of VS Code's full feature set.
- Auto Rename Tag - Automatically rename paired HTML/XML tag, same as Visual Studio IDE does.
- Thunder Client - Thunder Client is a hand-crafted lightweight Http Client Extension for Visual Studio Code.
- IntelliCode - AI-assisted development
- Hex Editor - Hex Editor for VSCode
- GI - Generate .gitignore files
- Docker - Adds syntax highlighting, commands, hover tips, and linting for Dockerfile and docker-compose files.
- Markdown PDF - Export Markdown as PDF
- Paste Json as Code - Copy JSON, paste as Go, TypeScript, C#, C++ and more.
- PostgreSQL - PostgreSQL extension for Visual Studio Code
Extensions that make working with Typescript and Javascript easier in Visual Studio Code. Includes both Browser and Node.
- Prettier - Code formatter using prettier
- ESLint - Integrates ESLint JavaScript into VS Code.
- Total Typescript - Sometimes Typescript errors are hard to parse, this extension helps with that.
- Vite - Vite is a build tool that aims to provide a faster and leaner development experience for modern web projects.
- Styled Components - Syntax highlighting for styled-components
- Tailwind CSS IntelliSense - Intelligent Tailwind CSS tooling for Visual Studio Code
- Prisma - Prisma helps app developers build faster and make fewer errors with an open source ORM for PostgreSQL, MySQL and SQLite.
- MDX - MDX is a JSX in Markdown loader. This extension adds syntax highlighting and bracket matching for MDX (JSX in Markdown) files.
- ES7 React/Redux/GraphQL/React-Native snippets - Simple extensions for React, Redux and Graphql in JS/TS with ES7 syntax
- DeviceScript - DeviceScript is a language for writing scripts that run on IoT devices. This extension provides syntax highlighting and code snippets for DeviceScript.
- Deno - Deno support for Visual Studio Code
- Astro - Astro is a new kind of static site builder that delivers lightning-fast performance with a modern developer experience.
Extensions to allow working with the services that I use everyday. These include Github, AWS, and more.
- Github Copilot - AI pair programmer that helps you write code faster
- Github Actions - Supercharge your GitHub workflow. Create, review and deploy code right from Visual Studio Code.
- Gihub Copilot Chat - Chat with Copilot in your editor
- Github Pull Requests - See comments and reviews in your source code editor
- SonarLint - SonarLint helps you detect and fix quality issues as you write code. Like a spell checker, SonarLint squiggles flaws so they can be fixed before committing code.
- WakaTime - Metrics, insights, and time tracking automatically generated from your programming activity.
- AWS Toolkit - I am a big fan of AWS and this toolkit makes it easier to work with AWS services.
- Terraform - Syntax highlighting, linting, formatting, and validation for HashiCorp's Terraform
- Platform IDE - PlatformIO IDE is a development environment for IoT, with support for Arduino, ESP8266/ESP32, and many more.
- 1Password - 1Password is a password manager that keeps you safe online.
I have recently been learning C# and DotNet and these extensions help me write better code.
- .Net Maui - .NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
- C# Dev Kit - C# Dev Kit is a collection of extensions for Visual Studio Code that help you write C# code faster and better.
- C# - C# for Visual Studio Code
- IntelliCode for C# - AI-assisted IntelliSense for C#
- Ionide for F# - F# language support for Visual Studio Code
Other useful extensions that don't really fit into any other category.
- AppleScript - AppleScript language support for Visual Studio Code
- Better Shell Syntax - Better syntax highlighting for shell scripts
- Ca65 Macro Assembler Language - Syntax highlighting for the ca65 macro assembler language
- CMajor Tools - Cmajor Music language support for Visual Studio Code
- ESP-IDF - ESP-IDF extension for Visual Studio Code
- Go - Go language support for Visual Studio Code
- Go Template - Go Template language support for Visual Studio Code
- Kotlin - Kotlin language support for Visual Studio Code
- Lua - Lua language support for Visual Studio Code
- Odin - Odin language support for Visual Studio Code
- Ruby LSP - Ruby language support for Visual Studio Code
- YAML Format - YAML language support for Visual Studio Code
- Zig - Zig language support for Visual Studio Code
My main language is Typescript, whether working on the front or backend I am mainly using it these days. These are some of the things I use to help me write better Typescript code.
Libraries I use to help me write better Typescript code. (obviously all these work in the pure JS world too)
- Lodash - A modern modular utility library delivering modularity, performance & extras.
- AWS JS SDK - The official AWS SDK for JavaScript, available for browsers and mobile devices, or Node.js backends.
- Chalk - Terminal string styling done right.
- Prisma - Next-generation Node.js and TypeScript ORM.
- colorthief - Grabs the dominant colour or a representative colour palette from an image.
- gray-matter - Parse front-matter from a string or file.
- remark - Markdown processor powered by plugins part of the unified collective.
- yaml - I love yaml so I often need a JavaScript parser and stringifier for YAML.
- glob - Match files using the patterns the shell uses, like stars and stuff. I have started to use the native glob module in Node.js but this is still useful.
- Hono - A great lightweight web application framework, build on web standards and can deploy in most places.
- Day.js - Fast 2kB alternative to Moment.js with the same modern API. I have started to use this in most projects.
- Handlebars - Minimal templating on steroids. I use this in a lot of my projects.
Tools that I use with typescript / javascript
- TSX - A tool for running TS files without needing to compile them.
- Vite - A build tool that aims to provide a faster and leaner development experience for modern web projects.
- Vitest - One of the best test runners can be used without vite and can test typescript without building.
- Istanbul - A tool for generating code coverage reports.
- Huskey - A great tool for setting up git hooks, I use this in most projects and it is part of my default template.
- CommitLint - A tool to check if your commit messages meet the conventional commit format.
- Secretlint - A tool to prevent committing secrets and credentials into a repository.
- ESLint - A tool for identifying and reporting on patterns found in ECMAScript/JavaScript code.
- Prettier - An opinionated code formatter.
I love working on both the backend and the frontend and these are some awesome frontend libraries that I rely on.
- React - Probably the most used frontend library in the world these days.
- Next.js - A great framework for building React applications.
- SASS - I am still a big fan of handcrafting css and SASS is a great way to do that.
- Nes.css - A great CSS framework that I use in most of my little personal projects.
- Storybook - A tool for developing UI components in isolation for React, Vue, and Angular.
- Playwright - A great tool for testing web applications.
- SWR - React Hooks library for remote data fetching.
- @tabler/icons - A set of over 700 free MIT-licensed high-quality SVG icons for you to use in your web projects.
IO have a passion for video games and of course combined with my passion for software development I have been working on a few game projects. I am not a game developer by trade but I do enjoy working on games in my spare time. These are some of the tools and libraries I use when working on games.
These are some of the libraries I use when working on game projects. I mainly work in Typescript or C# so often use these libraries with bindings for those languages.
- Raylib - A simple and easy-to-use library to enjoy videogames programming.
- ImGui - Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies.
- SDL - Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D.
- Jolt Physics - A fast and lightweight physics engine for games. Recently came across this from a Youtuber
- FNA - FNA is a reimplementation of the Microsoft XNA Game Studio 4.0 Refresh libraries.
- Moonworks - Built on the above FNA library, Moonworks is a library for building games in C#.
A step up from libraries are the full game engine. Here are some that I have experimented with, or am interested in using in the future.
- Gadot - This is my game engine of choice. It is open source and can be programmed in C#. I will definitely be using this for my future game projects.
- Love - A framework for making 2D games in the Lua programming language.
- Monogame - An open-source, cross-platform framework for building 2D and 3D games in C#.
- Openbor - An open-source engine for building 2D beat-em-up games.
Code isn't the only thing that is needed when making a game, these are tools that I use.
- Aseprite - A pixel art tool that I use to create sprites for my games.
- Tiled - A map editor that I use to create levels for my games.
- Audacity - A free, open source, cross-platform audio software for multi-track recording and editing.
- Furnace - A retro music tracker that I use to create music for my games.
- MagicaVoxel - A free lightweight 8-bit voxel art editor and interactive path tracing renderer.
- Blender - A free and open-source 3D creation suite.
- Cubase - A digital audio workstation developed by Steinberg for music and MIDI recording, arranging and editing.
I tend to work in Typescript or C# , but a lot of game development libraries are written in C++. These are some of the bindings I use to work with these libraries.
- Raylib CS - Raylib bindings for C#.
- ImGui.NET - .NET bindings for ImGui.
- SDL3-CS - SDL3 bindings for C#.
- JoltPhysicsSharp - Jolt Physics bindings for C#.
These are some of the books that I've read and found useful. I recommend them to anyone who is interested in the topics they cover.
Note: Where a newer edition is available, I recommend getting the latest version.
All links are to Amazon UK and are Not Affiliate Links.
- Game Programming Patterns - This book is a great introduction to game programming patterns, but isn't just useful for game developers. It covers the basics of patterns and how to apply them to game development.
- Level Up! The Guide to Great Video Game Design - This book is a great introduction to video game design. It covers the basics of game design and how to apply them to video games.
- Writing for Games: Theory and Practice - This book is a great introduction to writing for games. It covers the basics of writing for games and how to apply them to game development.
- Physics for Game Developers - This book is a great introduction to physics for game developers. It covers the basics of physics and how to apply them to game development.
- The Indie Game Developer Handbook - This book is a great introduction to indie game development. It covers the basics of indie game development and how to be successful in it.
- Arcade Game Typography: The Art of Pixel Type - This book is a great introduction to pixel typography. It covers the basics of pixel typography and how to apply them to game development.
- The Game Music Toolbox: Composition Techniques and Production Tools from 20 Iconic Game Soundtrack - This book is a great introduction to game music composition. It covers the basics of game music composition and how to apply them to game development.
Resources to help me become a better developer.
Some of the best mailing lists I have subscribed to.
- JavaScript Weekly - A free, once–weekly e-mail round-up of JavaScript news and articles
- Frontend Focus - A once–weekly e-mail round-up of Front-End news and articles
- Node Weekly - A free, once–weekly e-mail round-up of Node.js news and articles
- React Status - A free, once–weekly e-mail round-up of React news and articles
- Ruby Weekly - A free, once–weekly e-mail round-up of Ruby news and articles
- Go Newsletter - A weekly newsletter about the Go programming language
Services that I use day to day when making software
- GitHub - GitHub is a web-based platform for version control using Git.
- GitHub Actions - GitHub Actions makes it easy to automate all your software workflows.
- GitHub Copilot - GitHub Copilot is your AI pair programmer.
- GitHub Packages - GitHub Packages is a package hosting service.
- NPM - NPM is a package manager for the JavaScript programming language.
- SonarCloud - SonarCloud is a cloud-based code quality and security service.
- Netlify - Netlify is a web developer platform that multiplies productivity.
- Amazon Web Services - Amazon Web Services is a subsidiary of Amazon providing on-demand cloud computing platforms and APIs.
- WakaTime - WakaTime is a productivity tool for programmers.
- Trello - Trello is a web-based list-making application.
- Fathom Analytics - Fathom Analytics is simple, privacy-focused website analytics.
- Socket - Socket security scanning for packages and dependencies. I only use this on OSS projects
These are some of the books that I've read and found useful. I recommend them to anyone who is interested in the topics they cover.
Note: Where a newer edition is available, I recommend getting the latest version.
All links are to Amazon UK and are Not Affiliate Links.
- The Pragmatic Programmer - This book is a must-read for any software developer. It covers a wide range of topics that are essential for becoming a better programmer.
- Functional Javascript - This book is a great introduction to functional programming in Javascript. It covers the basics of functional programming and how to apply them in Javascript.
- Pro Typescript - This book is a comprehensive guide to Typescript. It covers everything from the basics to advanced topics like type inference and generics.
- JavaScript: The Definitive Guide - This book is a comprehensive guide to Javascript. It covers everything from the basics to advanced topics like closures and prototypes.
- Beginning Ruby 3: From Beginner to Pro - This book is a great introduction to Ruby. It covers the basics of the language and how to use it to build web applications.
- Agile Web Development with Rails 7 - This book is a great introduction to Ruby on Rails. It covers the basics of the framework and how to use it to build web applications.
- C# 12 in a Nutshell: The Definitive Reference - This book is a comprehensive guide to C#. It covers everything from the basics to advanced topics like LINQ and async programming.
- C# 12 Pocket Reference: Instant Help for C# 12 Programmers - This book is a quick reference guide to C#. It covers the basics of the language and how to use it to build applications.
- Agile Project Management with Kanban (Developer Best Practices) - This book is a great introduction to Kanban. It covers the basics of the methodology and how to apply it to software development projects.
- Docs for Developers: An Engineer’s Field Guide to Technical Writing - This book is a great introduction to technical writing for software developers. It covers the basics of writing documentation and how to make it useful for developers.
- The Startup CTO's Handbook: Essential skills and best practices for high performing engineering teams - This book is a great introduction to the role of a CTO in a startup. It covers the basics of the role and how to be successful in it.
- Game Programming Patterns - This book is a great introduction to game programming patterns, but isn't just useful for game developers. It covers the basics of patterns and how to apply them to game development.
- Crafting Interpreters - This book is a great introduction to interpreters and compilers. It covers the basics of building an interpreter and how to apply it to programming languages.
- Web Audio API - This book is a great introduction to the Web Audio API. It covers the basics of the API and how to use it to build audio applications.
- 97 Things Every Programmer Should Know: Collective Wisdom from the Experts - This book is a collection of essays from experienced programmers. It covers a wide range of topics that are essential for becoming a better programmer.
You can find me on these social platforms. Please note that I am no longer on Twitter. Please follow me on Bluesky instead
- Bluesky Professional - My professional profile on the bluesky platform
- LinkedIn - Connect with my professional network on LinkedIn
- Github - My code and projects on Github
- My Website - My professional website
A total of 197 resources in 21 categories and 5 groups last updated 26/02/2025, 17:11:19