April, 2019

Infra graphs with neo4j

I spent some time recently mucking around with neo4j attempting to model infrastructure, incidents, teams, users, etc. Basically what does it take to answer questions about organizations.

Getting neo4j set up with go was non trivial and thankfully someone had documented how to do it already (instructions in the readme: https://github.com/devshorts/graphql). In the sample API I exposed we can

  • Find related incidents. The pathway here is incidentA is failing because of infraA. incidentB is failing because of infraB. InfraB depends on some pathway that ends up infraA. This means that from InfraB -InfraA there is a relationship, and so that implies that IncidentA and IncidentB are related.
  • Find betweeness of the graph. This shows graph nodes that have heavy flow (high connections) and can be potential hot spots
  • Find communities in the graph. This shows clusterability of infrastructure/teams/etc.

The API exposed in the github is meant to model … Read more

8 months of go

For the past 8 months I’ve primarily been writing in go. I was hesitant to take a job that used go as its primary language for a lot of reasons, but I decided to give it a try because a lot of companies these days are using it, and it doesn’t hurt to broaden my skillset. In this post I’ll describe the pros and cons of using go from my own experience.

First, I came at go with a skeptical and kind of disdainful eye which is probably not a good way to start. But having just spent the last two and a half years writing scala the thought of leaving behind [T] (and even more so T[Y]) hurt. That said, the experience after eight months has been relatively positive. In this post I outline some of the things I like and don’t like about go.

Let’s start with

Read more

, ,