Blog

Probability Estimates: 2024

2023-12-17
Ideally, when we say we think something is likely (or unlikely), we should revisit our prediction later once we know the actual outcome… so this year some friends and I will be competing by predicting various 2024 events.

New Things: Capital One

2023-11-29
Today was my last day at ReviewTrackers. I’ll miss RT. Over almost two years, I got to experience “startup” life and I transitioned to full time software engineering (after years as a nominal data scientist who happened to do some dev work). My fellow engineers there were good teachers and listeners, and engineering management was always open to feedback. I’ll be starting a new gig at Capital One on Monday, working on cybersecurity tooling.

With staging and production environments, secrets management, and automated deployment

For the last year or so, I’ve been chipping away at a side project: a weightlifting-tracking app. The ostensible purpose is to store the metrics I want and make data entry as convenient as possible, but in practice it’s mainly a way for me to become more familiar with the development of a “large” web application and the challenges that come with it.

Errors as Values in Rust and Go

2023-07-10
Rust reminds me a lot of Go. Both languages eschewed exception-style error handling, a feature present in almost every language that’s popular in industry. However, the idioms they use instead are very different.

Chips 101 and Nvidia

2023-05-30
Last week, Nvidia’s stock exploded…. The AI arms race has heated up and is even getting the attention of normal people through stock prices (among other news), so I’m sure this won’t be the last time I explain GPUs to someone without a computer science degree. I’m using this post as a chance to organize my Chips 101 talking points.

Tech for Teaching

2023-04-21

I taught a tutorial at PyCon a few days ago. It went well, but what I want to discuss are some technical things I did that went well and (I think) made the presentation easier for students to follow.

This post was originally meant to be a small part of my discussion of the Go programming language (coming soon) as a way of drawing contrast between Python and Go, but turned out to be extensive enough to justify its own post.

Python’s model of exceptions is quite similar to that of other popular object-oriented languages like Ruby, JavaScript, and Java1. Errors flow differently than regular data; if not “handled”, they rise up through the entire function stack and crash the program. Developers are encouraged to write code to anticipate those exceptions, handle them before everything explodes, and change the logic flow of the program accordingly.

What exactly needs to be done in that “handling” step typically depends on what went wrong, and so there are many types of errors. Programmers can check the type of an error to determine what went wrong and react accordingly. Errors can be thought of as objects and their types as classes that can be subclassed like any other class. But unlike other data, they follow an error-specific path through the code, short-circuitiing functions all the way up the stack until handled.

Gym Etiquette 101

2022-12-03

When I first started going to the gym, I was self-conscious every second. There’s a particular code of unwritten rules in the weightroom. Having a mentor really helps, and without one, it’s easy to be so uncomfortable that you don’t want to come back.

Over the years I’d like to think I’ve picked up most of the “rules”. Here’s a list I wish someone had given me when I was starting.

Careers in Programming

2022-10-07
I recently visited Westville Correctional Facility, an Indiana penitentiary, to talk about jobs in the field of computing. It was an unusual opportunity that was honestly somewhat eye-opening; never have I had so enthusiastic and engaged an audience. I was sponsored through the Moreau College Initiative, a program in which residents of the facility are able to take full academic courses and potentially earn a bachelors degree before re-entering society. You can read more about the program here, if you are so interested.