Latest Posts

  • 12th April 2018

Checking Types Against the Real World in TypeScript

Learn how to use io-ts validators to ensure that incoming data is compatible with your program contracts.

Read more 
  • 12th February 2018

Type-Driven Development with TypeScript

This is an excerpt of a post that I wrote for Olio Apps. I am always interested in making my coding process faster and more robust. I want to be confident that my code will work as expected. And I want to spend as little time as possible debugging, testing, and hunting down pieces of code that I forgot to update when I make changes to a project. That is why I am a fan of correct-by-construction methods. Those are methods of constructing programs where the program will not build / compile unless it behaves the way that it is supposed to. …

Read more 
  • 20th June 2017

What is Poodle

This is a description of my passion project. I plan to publish more detail and motivation when I get to a minimum viable product. I want to make social collaboration software without walls. A company can have its private discussions and documents - but people in a company should be able to include clients or contractors in discussions seamlessly. It should not be necessary to require people to join a private account on service X just to have a conversation. The idea is to make a decentralized protocol - there is no central server, and no one company that controls everything. This has been attempted before by, Diaspora, Google Wave, and others. I thought that a decentralized protocol could have more success if it takes a different approach: reinvent as little as possible, and build on top of an existing protocol with a large user base. I’m working on a reference client (called Poodle) that implements a new protocol that builds on email. …

Read more