Ryan Laurie

Software Engineer · Metabase

Ryan Laurie

Solving problems with web technologies.

tl;dr

I was a trial lawyer until I turned web developer. There were a lot of great things about practicing law, but building software excites me in a way the law never did. I'm currently a Software Engineer at Metabase.

I'm passionate about using web technologies to solve problems that help real people in my life and work. My strengths are thinking critically, communicating clearly, and moving quickly to solve real problems, and trying to keep it fun along the way.

I'm still learning, and I'm eager to learn much more.

Metabase

2022 – Present
reacttypescriptci automation

I'm currently a software engineer at Metabase. At Metabase, I focus my work on our front-end react app. I'm proudest of my work on enabling CSV uploads, writeback actions, and enabling hi-res pokemon card previews in the product.

Nearly every line of code I've written at Metabase is open source, but beyond that I've taken an active role in pitching, planning, and advocating for product and engineering priorities, upleveling automation in our CI and release systems, helping interview and onboard engineers, and making sure that the company slack is full of new and exciting emojis.

Moonrise

2020 – 2022
phpreactslackgithubaws
Moonrise

My first full-time software job was as a full-stack software engineer at Moonrise and I absolutely loved it. At Moonrise, I focused my work on building RemoteCall, a remote telemarketing tool built to enable our on-demand workforce to remain employed in the new world of remote work. RemoteCall has a custom php backend, a hybrid php/react frontend, and a few nodeJS microservices and lambdas supporting it.

From my time at Moonrise, I'm proudest of the work I've done building and automating the CI/CD pipeline, improving testing practices and monitoring systems, and moving a significant portion of the codebase to React.

MyTaxPlan

TypeScriptNext.jsVercel
MyTaxPlan

MyTaxPlan is an easy to understand and play-with interface for simulating the US Federal income tax scheme. It's currently under active development and is my first foray into using TypeScript and Next.js.

Comfort Check

reactaws lambdaaws s3json
Comfort Check

This is a little serverless web app I built to facilitate comfort checks for our internal team retrospectives. All submissions are completely anonymous and are deleted after 48 hours.

LiturgyWith.us

websocketssqlitetailwindcssamazon lightsailcircleCI
LiturgyWith.us

This was a covid project to deal with the sudden necessity of holding church remotely when COVID hit. It was so easy and convenient to use, it remains in use after the resumption of in-person services. It uses websockets to live-sync all users to the portion of the service indicated by the leader.

Refugee Girl

11tytailwindcssnetlifylambdafaunaDB
Refugee Girl

This project was my wife's brainchild. A simple static site to pitch an idea for a modern refugee american girl doll. We used it as an entrypoint to a change.org petition.

Fraud Sentencing Database

reactmongodb atlasexpresspuppeteersassawsdockerjwt
Fraud Sentencing Database

This is a searchable and filterable database of federal criminal fraud sentences, because (shockingly) no such thing exists. I've reverse-engineered the federal court's filing system to automatically scrape sentence data and documents.

myIndex

expressbulma CSSIEX APImySQLjQuery
myIndex

One day I found myself wondering what a stock index of Chicago companies would look like, or a an index of video game companies, or any number of other bundles of stock prices. So I created a platform for making custom, market capitalization weighted stock indices and tracking their performance. After about 3 years of faithfully collecting every stock price on the US market every night, I retired the raspeberry pi hosting this project in the summer of 2021.

Stateless Email Auth

Stateless Email Auth

I'm starting to hate passwords. This is an npm package I created to use in a few projects to simply, securely and statelessly authenticate users via email. It is implemented (in a Jetsons family database) such that anyone can login here.

TextCat

nodejsubuntureactshelljsdocker
TextCat

This was an OCR tool to solve the problem of needing to batch OCR hundreds or thousands of documents on a server without locking up my local machine.

Turtle Maze

phaser 3 (webGL)parceljsjavascript
Turtle Maze

This was a little maze game I made for my turtle-loving son. The game randomly generates a new maze every time using a depth-first search algorithm.

Liturgy of the Hours

expressnedbpwa
Liturgy of the Hours

This is an attempt at answering the question of how distracted, modern people are supposed to pray. It takes elements of the daily prayer services from the Book of Common Prayer, and re-constitutes them into seven short (~5 minute) procedurally generated and seasonally appropriate daily prayer services.

There is also a Twitter bot that provides cross-platform notifications. While I was building endpoints for connecting to the ESV bible API, I also built my own simple bible web app, because so much of what's out there is bloated and ad-infested.

misc

In my spare time, I love playing multiplayer video games with my world of warcraft guild, old college friends, and my children. I love connecting, enabling, and peer-pressuring people to play more video games. One of the distinct pleasure of the past few years has been to watch my kids grow into their own love of video games, to discover new games with them, and even to get beat by them!

I'm active in my local church, and am constantly working through the ways technology can and should (and should not) interact with my faith and church practices.

I moved to Colorado in mid-2021 and am still in awe of the mountains, and love to unplug and spend some time in the woods whenever I can.