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.

Real-World Applications of Leetcode


As I’ve been grinding through LeetCode problems I’ve been reminded of some of the real-world applications of the algorithms used during my past life as an Army officer. The “Call For Fire” (CFF) is one such example. A CFF is a radio request for artillery fire and is performed by a Forward Observer (FO) using a map, compass, protractor, binoculars with reticle pattern, and a target. Before contacting the artillery battery, the FO makes their best guess with regards to the location of the target on their map.

Dealing with Disappointment


At the start of the year I wrote a blog entry outlining my goals for the year, specifically: Learn Rust. Use it to build a StarCraft bot. Climb three new mountains. Complete the Mazamas Intermediate Climbing School (ICS) I accomplished the first goal pretty early on. You can read about it here. The second took a little longer, but I eventually summitted three new mountains, Mt. Hood, Old Snowy, and Three Finger Jack.

Leetcode Grinding


The past couple months I’ve been working my way through different LeetCode problems because they force me to grapple with challenges that I don’t really see in my day to day work. I’ve shifted from HackerRank in order to increase the variety of questions that I see. The problems I’ve been working on are part of a curated set called “LeetCode 75”. These cover string operations, two pointer problems, sliding windows, prefix sums, stacks, queues, linked lists, binary trees, graphs, depth first/breadth first search, heaps, bits, and dynamic programming.