Introducing Kotlin-Gremlin-OGM

Over the past few months, I've explored many of the different options for modeling and persisting data using graph databases. Ultimately my goal was to decide what my technology stack would look like if I were to start a new project that required a backend service exposing a GraphQL API.…

Enable SSL on a Bitnami AMI running on EC2

This July, google chrome will be marking websites loaded over http as 'not secure'. This blog was originally set up using the Bitnami Ghost AMI on an AWS EC2 instance, and this post details the steps required to encrypt traffic over ssl. The certificate authority I used was letsencrypt.org…

Using SSH tunneling on a Mac to change your geographic location

Recently while traveling abroad, I noticed some of my favorite streaming services are not available outside the United States. There are many VPN services available that route your traffic through servers in other countries, but if you have an AWS account or access to an SSH enabled server in your…

Creating a blog with Ghost on Heroku

Creating a professional blog is super easy. The most popular way to create a blog is Wordpress, but I've enjoyed working with Ghost due to its rich feature set that developers will find easy to customize. It's also open-source, meaning it is free to use. Ghost makes money by offering…

A Sample Web App in Kotlin with Neo4j and GraphQL

Aside from finding your exact question already answered on Stack Overflow, few things are more delightful in the world of programming than starting a new project. Maybe you think your code will eventually be used by the Dali Lama or maybe you're just hoping to generate enough……

You Should Be Using Type-safe Units

You and I know that you can't compare apples to oranges, but does your compiler? Many times when dealing with quantities, programmers use numeric types like int or double to represent an amount.…

A GraphQL + JanusGraph Web App

While relational databases are a tried and true solution to persisting structured data, they're not designed to efficiently connect the data between two tables. At the same time, the real-world data we attempt to model in today's software applications is increasingly about the relationships between objects. It's more intuitive to…

Writing a GraphQL server in Kotlin

In a previous post I wrote about the advantages of designing a graph-based relational-database schema. This post introduces a sample implementation of that design in the form of a GraphQL service written in Kotlin. The example exposes a Star Wars based API similar to the GraphQL Docs View the code…

Your Data is a Graph, Model it Like One

Modeling your domain objects is one of the most important, if not the most important step in designing any service. A well designed datamodel makes it easy to reason about and manipulate the state your service manages. A poorly designed datamodel does the opposite and results in lost time spent…