Writing

From robust backend APIs all the way to frontend user interfaces.

Build a Type Safe NodeJS RPC API and Client with TypeScript using ts-rpc-http

Feb 23, 2019

ts-rpc-http is a set of utilities that makes it extremely easy to make an RPC API using NodeJS with TypeScript. The basic idea is you start with your models defined in a single TypeScript file that can be shared between your backend and your frontend. Then with that single file and ts-rpc-http, you can generate […]

Continue reading

Creating a Type Safe HTTP JSON API with Protobuf and Java 8

Oct 27, 2018

I’ve been working on a set of utilities that make it extremely easy to make a type safe HTTP JSON API using protobuf as the data model. This current utility uses Spark web microframework to serve the HTTP API with some sprinkled protobuf goodness. GitHub You can find the full source code as well as […]

Continue reading

Type Safe UI State Management: Comparing Redux and Mobx in TypeScript

Jul 14, 2018

I have really enjoyed working with React these days and most of the time found that as long as my views/components correlated 1:1 with my data model that I could get away with using the component state with no need for a state management library. More recently however, as my web apps have become more […]

Continue reading

Iterative Development: A Read Only Mobile App in React Native and TypeScript

May 19, 2018

When creating a piece of software using a framework or language you are unfamiliar with, I find it best to start out simple. Rather than designing a crazy full fledged web or mobile app, you can create a view-only literally single page SPA (i.e. no navigation) that pings an API and renders the content to […]

Continue reading

Even Faster Inner Builder Code Generation with IntelliJ and Java 8

Apr 22, 2018

I recently wrote a post about Code Generation in IntelliJ for data objects (i.e. Plain Old Java Objects). With just a few private fields and some basic code it is extremely easy to generate getters as well as an internal Builder class and a static factory method to instantiate that internal builder. As it turns […]

Continue reading

Fun with the Builder Pattern and Static Factory Methods

Apr 14, 2018

I’ve been programming in Java 8 now every day of the work week and I am really enjoying it. I’ve seen a lot of people online giving Java crap but honestly it is a real pleasure to work with. Sometimes you may have to be a bit more verbose, but I honestly am a big […]

Continue reading

Incredibly Simple Flat File CMS Strategy

Mar 31, 2018

Often times I will want to make an extremely simple web app, such as a TV Tracking App where I can enter in a few show names and have those names persisted. Most modern web applications have both a frontend and a backend API, typically written in either Java, Python, C#, TypeScript/JavaScript, or Golang. That […]

Continue reading

Broken Link Building Automation with Python, for Marketers

Mar 15, 2018

Lately I have been very interested in content marketing and understanding how businesses drive traffic to their websites. While in the past, ranking on the top of Google required intricate keyword-stuffing, these days Google has grown upĀ and no longer ranks you based on the number of keywords you stuff across hundreds of pages. Instead, Google […]

Continue reading

Building a ‘Like’ Bot is Easy

Mar 3, 2018

With so much news these days about Russian Interference in the US Elections, and in particular how the Internet Research Agency deployed trolls and bots across multiple social media sites to sew discord among Americans, I wanted to write a post about just that: bots. How hard is it to make a bot that will […]

Continue reading

A Boilerplate Authentication API in TypeScript/Express

Jan 18, 2018

Boilerplate code for JWT authentication for a TypeScript Express JSON API delivered over HTTP. Purpose The purpose of this TypeScript module is to make it easy to set up a new authenticated Express API without having to write all the code that allows user login, authentication, JWT handling, changing passwords, etc. There are many ways […]

Continue reading