Death and Taxes

     

It’s tax season again, and in the words of Benjamin Franklin “in this world nothing can be said to be certain, except death and taxes.” That’s why I figured this month I’d cover some tax “gotchas” that have snared me in previous years. I’ll specifically be addressing Roth Individual Retirement Account (IRA) contribution limits as well as Employee Stock Purchase Program (ESPP) and Restricted Stock Unit (RSU) sale tax implications.


Jetpack Compose Lessons Learned

     

Over the past couple months I’ve had the opportunity to refactor large swaths of our app user interface from XML to jetpack compose. Throughout the process I’ve come to gain an appreciation for some of the sharp edges that jetpack compose still has as February 2024. My hope is that by reading this blog post you might avoid cutting yourself on the currently jagged APIs of compose, at least in the same places that I did.


2024 Resolutions

     

2023 proved to be quite the turbulent year. Of my three2023 new year’s resolutions, I accomplished two. Specifically, I completed my Starcraft Rust AI (you can read about it here) and successfully summited four new mountains, Mt Hood, Old Snowy, Broken Top, and Three Finger Jack. My goals for 2024 are below: Update my Worldwide Equipment Guide app to use the new Odin API Climb three new mountains. Complete Intermediate Climbing School (ICS) I made token updates to in 2022 Worldwide Equipment Guide app.


Holiday Season

     

It’s been a busy past few weeks. Between Thanksgiving, Christmas shopping, a new part-time contract, family birthdays, and annual updates to my personally published mobile apps, I’ve had my hands full. My regular day job responsibilities have only increased as well. One of my new responsibilities has been the conversion of legacy xml Android layouts to Jetpack Compose user interfaces. Over the course of this process I’ve really come to appreciate the declarative style of Jetpack Compose.


Leetcode Lessons Learned

     

As I’ve been working my way through Leetcode I’ve picked up a few new tricks. Some of these are fairly standard, like the sliding window technique for array analysis, but others are somewhat less intuitive. I gained a number of insights through experimentation, and these may be specific to the Kotlin compilers for Leetcode in particular. I figured they would still be worth mentioning in any case. One of the first things that surprised me as I started the Leetcode 75 Study Plan for Kotlin was how efficient StringBuilder was.