shankproof.devWhat’s in the Bag: Java, But Make It ModernPart 1 of a new series on JVM technologies, Kotlin, and the tools worth your time in 2025. For the past three decades, I’ve had a complicated relationship with Java. It was one of the first languages I wrote “real” software in, but over the years I d...May 23, 2025·2 min read
shankproof.devWhat Really Lowers Your Score? Modeling the Truth Behind Strokes Gained🏌️ What Really Lowers Your Score? I’ve always been curious about what really lowers golf scores. Not just what feels important — but what the data actually says. So I started building a model.And I’m already learning things that surprised me. 📊 No...Apr 23, 2025·3 min read
shankproof.devWhat’s in the Bag? Building Fairway Tasks with Deno, Fresh, and SSEIn Part 1 of this series, I introduced the idea of looking at development stacks the way golfers look at their gear. Every tool in the bag has a purpose. Some we reach for without thinking. Others we try out, experiment with, and either adopt or toss...Apr 13, 2025·5 min read
shankproof.devStreamlined Discriminated Union Decoding in TypeScript with jsonous's New DecoderTypeScript developers love discriminated unions (or tagged unions). They provide a fantastic way to model states, events, or different kinds of data structures in a type-safe manner. When working with external data sources like JSON APIs, however, de...Apr 12, 2025·4 min read
shankproof.devWhat's in the Bag?Golfers know the phrase "what's in the bag?"—it’s shorthand for talking about the tools they trust when they head out on the course. From drivers to wedges to that one beat-up hybrid they swear by, every club has a role, and every bag tells a story. ...Apr 9, 2025·3 min read