Skip to main content

Writing

Notes on AI, agents, web technologies, and building with LLMs

Technical articles on AI integration, agents, agent harnesses, MCP, web technologies, and emerging tools. Working notes from a Google Developer Expert with 25+ years of building and teaching.

  1. Generics in TypeScript

    TypeScript introduces Generics which allow us to use reusable components within our applications with ease.

  2. Functions in TypeScript

    Functions in TypeScript work in exactly the same way as functions in ES2015, allowing us to use rest and default params and fat arrow functions in combination with data types.

  3. Rest Parameters, Spread Operator and Default parameters for Functions

    Rest Parameters, Spread Operator and default parameters for Functions are all great additions for JavaScript ES2015.

  4. Template Literals in ES2015

  5. Promise anti-pattern

    JavaScript promises have an important anti-pattern when it comes to using .then() with an error handler versus when using .catch() for handling errors.

  6. Classes in TypeScript

    Classes in TypeScript really extend JavaScript's (ES2015) class functionality and add their support for types and member access.

  7. Classes in ECMAScript 2015

    If you have worked with JavaScript before you may have heard the expression 'prototypal inheritance' or that JavaScript is a 'prototype' based language. As of ES2015 we can use the class keyword which adds syntactic sugar over the prototypes.

  8. Declaring variables in ECMAScript 2015

    The way you have defined variables in JavaScript for the past decade has always been the same – by using the `var` keyword. In the latest version of JavaScript (ES2015) you can declare variables using let and const.'

  9. Functions in JavaScript

    The latest version of JavaScript (ES2015) allows us to write functions in a different way by using the arrow function syntax. This not only allows for terser function declarations but also has additional benefits.

  10. Interfaces in TypeScript

    Interfaces provide a very powerful way of to define entities that most conform a definition – in other words it allows us to specify properties for entities.