James's articles
![Building Microservices with Deno, Reno, and PostgreSQL](https://uploads.sitepoint.com/wp-content/uploads/2020/08/1598922284deno-microservice.png)
Here's everything you need to know about building microservices with Deno, Reno (a thin routing library for Deno), and PostgreSQL.
![Compile-time Immutability in TypeScript](https://uploads.sitepoint.com/wp-content/uploads/2019/11/1574038034immutability-in-typescript.png)
James Wright explores the possibilities for using constructs to achieve compile-time immutability in TypeScript with const assertions and recursive types.
![Function Composition in JavaScript with Array.prototype.reduceRight](https://uploads.sitepoint.com/wp-content/uploads/2019/04/1554781918andrik-langfield-610436-unsplash.jpg)
James Wright explains dynamic function composition in JavaScript using other functions.
![How to Build a Coach Holiday Showcase with WRLD](https://uploads.sitepoint.com/wp-content/uploads/2018/06/1530077496chuttersnap-354308-unsplash.jpg)
Using WRLD's map designer, we will build a map for a coach holiday, which we will then integrate into a Node.js-powered website.
![ES6 (ES2015) and Beyond: Understanding JavaScript Versioning](https://uploads.sitepoint.com/wp-content/uploads/2018/04/1523583037javascript-versioning.jpg)
James explains the process of JavaScript versioning, covering the history of JavaScript and explaining the process by which yearly releases are organized.
![Learning JavaScript Test-Driven Development by Example](https://uploads.sitepoint.com/wp-content/uploads/2017/04/1491665369Using_test-driven_development_to_create_a_JavaScript_form_validatorB.jpg-01.png)
James Wright introduces test-driven development and walks through creating and refactoring a simple form validation library, step-by-step, as an example.
![Web Audio API: Add Bandwidth-Friendly Sound to Your Web Page](https://uploads.sitepoint.com/wp-content/uploads/2016/10/1477474388webaudio_B-01.png)
James Wright introduces you to the Web Audio API and demonstrates how to add notification sounds to a user interface in an bandwidth-friendly manner.