TypeScript, GraphQL, and NestJS form core parts of our stack at Dandy. Together, they provide a powerful ecosystem and toolset that enables us to move quickly while maintaining a robust and reliable system. The key features they provide for us are:

  • Auto-generated clients (for both frontend and…

Airtable is a database-spreadsheet hybrid that also has a number of features to support collaboration and automation, plus integrations with third-party services, making it a powerful tool for business users. In some cases, our team would like to integrate Snowflake and Airtable: extract data from Snowflake (our data warehouse) and…

Many people working in engineering, or engineering-adjacent, fields (including data) may have heard of the Go programming language. If you haven’t, Go is a compiled, statically typed programming language with garbage collection, memory safety, and a built-in system for CSP-style concurrency. …

Our Sibyl API can serve AI predictions with a 50 millisecond response time. A developer calling the Sibyl API only has to specify an object ID (e.g., give me the prediction for person 0989k3dd84) instead of specifying all of the model’s input parameters. …

In February, we published Automatically create a pivot table in Redshift. This is an updated version of that article, now that we’ve switched to Snowflake, where we use the same technique.

We’ve open sourced the solution described in this article here.

Creating pivot tables is a relatively common need, as…


We published a small tool you can use to import semi-structured data from Google Sheets to Snowflake, taking advantage of Snowflake’s variant type.


There are a variety of cases where you might want to import data provided by business users into your data warehouse — for example, inventory…

An Analysis of Causality

N.B., this is just for fun. We don’t really believe that Mercury being in retrograde caused these events, even though that is exactly what happened.

true causality


Mercury was in retrograde recently and it really made our lives difficult here on the Data team at Ro.


When a planet is…

In Redshift, the type of LISTAGG is varchar(65535), which can cause
large aggregations using it to consume a lot of memory and spill to disk during processing.


LISTAGG is a convenient way to aggregate a group of values by concatenating
them together. …

(article #3 in series)

For background on our Ro Looker Code Generation System, please see our intro article.


Views in Looker are often based closely on underlying database tables, with
predictable relationships between database columns and view dimensions. This means we can automatically generate large portions of views.


In our…

(article #2 in series)

For background on our Ro Looker Code Generation System, please see our intro article.


Dimension time groups are important and useful, so we wanted to make them as easy as possible to define. …

John Mastro

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store