Austin Poor


Check out some blog posts I've written about various topics.

I don't post very often, but I try to make each post count.

Command or Control

Should your hotkeys use "Cmd" or "Ctrl"? How can you tell if your user is on a Mac or not? This blog post walks through multiple approaches to OS detection in JavaScript.

On Zero Trust Programming

Explore the concept of Zero Trust Programming (ZTP), which applies the Zero Trust security model to code, allowing granular permissions and enhancing open source software security. Discover ZTP's potential benefits in reducing vulnerabilities and improving audit processes, while considering the challenges and tradeoffs. Learn how ZTP could be implemented in existing or new languages and ecosystems.

Running JavaScript in Rust with Deno

Explore how the Deno runtime can enable JavaScript code execution in a Rust application via a proof-of-concept project called "js-in-rs". Discover the flexibility and versatility of using JavaScript expressions as filters in a CLI, written in Rust, as a powerful alternative to regular expressions. Watch out grep!


I recently built a URL shortener using Rust, Tokio, and Axum, and in this blog post, I'm sharing my experience. From selecting the right tech stack to load testing the application, I cover everything that went into building this service.

Re-Re-Rewriting My Site in Astro

Recapping the process of rewriting my personal site and blog using the new Astro framework.

Serving ML Models with gRPC

gRPC APIs are fast, efficient, and type-safe. Next time you need to create an ML prediction service, ditch REST and give gRPC a shot!

Handling ML Predictions in a Flask App

Two suggested design patterns for making machine learning predictions (or handling other long-running tasks) in Flask apps by adding API routes and Celery.

Painless Data Augmentation with BigQuery

Google Cloud's BigQuery is a great tool for data scientists to easily augment their datasets with external data – using BigQuery's public datasets.

Algorithmic Color Palettes

Using Unsupervised Machine Learning algorithms to generate color palettes from film stills.

Data Scientists, Start Using Profilers

A profiler can show you exactly which parts are taking the most time, allowing you to see which sections to spend time optimizing to speed up your code.

Take Full Control of Your Python Plots with Jinja

Next time you want to make a fully customized plot in Python ditch matplotlib and try Jinja. Here's a short tutorial to help you get started.

Predicting Spotify Track Skips

Metis Data Science Bootcamp project using machine learning to predict Spotify user track skips for the "Spotify Sequential Skip Prediction Challenge".

Quickly Load CSVs into PostgreSQL Using Python and Pandas

Learn a fast way to use Python and Pandas to import CSV data into a Postgres database. Let Pandas infer data types and create the SQL schema for you.