Howdy!

Welcome to my blog where I write about software development, cycling, and other random nonsense. This is not the only place I write, you can find more words I typed on the Buoyant Data blog, Scribd tech blog, and GitHub.

Pulling trains along the central coast: AIDS/LifeCycle Day Four

Most of my training and cycling has been solo, but today was so much fun because it was all about teamwork. The day starts with a good steady climb known as “the evil twins”, includes a gorgeous and long descent to the coast, and finishes outside the town of Santa Maria. For one reason or another I found myself cycling in largely small groups of 2-4. Teamwork means coordination, communication, and speed.

Read more →

Bustin': AIDS/LifeCycle Day Three

Riding from King City to Paso Robles is short, 63 miles, but challenging for two reasons: “Quadbuster” and the heat. Attempting to avoid either giving me too much trouble, I woke early at 4:15 and was able to be one of the first 20 riders out of camp. Shivering in the cold and foggy pre-dawn air, I was reminded of my stiff legs, stiff after almost 200 miles in two days in the saddle. For a number of reasons Day Three can be brutal.

Read more →

Rode hard and put away wet: AIDS/LifeCycle Day One

This is my second year of AIDS/LifeCycle and the differences are incredible. The ride is different, and I am also a very different rider. I have put down over 2,500 training miles. I am riding a lighter aluminum tube bike, which replaced the bike I broke on ALC 2019. I am one of three representing Team Germany, Jens and Ulf flying all the way from Berlin to raise money and support the community in California. Today was day one, 81 miles from the Cow Palace in San Francisco to Santa Cruz. Today was incredible.

Read more →

Local SQL querying in Jupyter Notebooks

Designing, working with, or thinking about data consumes the vast majority of my time these days, but almost all of that has been “in the cloud” rather than locally. I recently watched this talk about SQLite and Go which served as a good reminder that I have a pretty powerful computer at my fingertips, and that perhaps not all my workloads require a big Spark cluster in the sky. Shortly after watching that video I stumbled into a small (200k rows) data set which I needed to run some queries against, and my first attempt at auto-ingesting it into a Delta table in Databricks failed, so I decided to launch a local Jupyter notebook and give it a try!

Read more →

Tips for breaking into Software Engineering

I was recently emailed by a new friend asking for some tips on how to break into software engineering. I love emails like this for two reasons: I really want to help everybody be successful in this industry, and I think we need more people from “non-traditional” educational backgrounds to enrich the industry. Since I had some scarce free time, and I ended up writing them a novel of a reply, I wanted to share my tips with anybody else for whom they might be useful!

Read more →

I'm a Databricks Beacon

A bit of belated news but thanks to all the advocacy work we have been doing at Scribd_ I am now a Databricks Beacon. The Beacon program is similar to Docker Captains, Microsoft MVPs, or Java Champions, a group of folks who are considered both skilled with the technology and in communicating/sharing best practices, tips, and short-comings with the broader community.

Read more →

Gearing up for AIDS/LifeCycle 2022

Last time around I didn’t train well enough, got sun blisters on my lips, and broke my bike. This time around I could not be more excited for AIDS/LifeCycle to be back for 2022. The goal of AIDS/LifeCycle is to raise funds for the San Francisco AIDS Foundation and Los Angeles LGBT Center, both of which provide numerous critical services to their respective communities. For my inaugural year in 2019 I was incredibly fortunate to raise over $6,000 and this year I am shooting for $10,000. I am also training a lot more intelligently this time around, I’m aiming to have a great time in 2022 and a strong mind and body will be key to that!

Read more →

The cost of power in northern California

From my perspective one of the most important steps to address climate change is investment in cleaner power generation. Imagine my displeasure when I started doing the math on some of my recent power bills. Where I live Pacific Gas and Electric (PG&E) is the predominant utility company but fortunately I am also able to purchase electricity from Sonoma Clean Power. Nevertheless, I still receive a bill from PG&E which is the owner/operator of most if not all of the transmission and generation capacity in the region. In Northern California there is no love lost for PG&E, which has been found responsible for negligence leading to numerous wildfires, gas pipeline leaks, and explosions. Much of this negligence has been due to postponing of forfeiting maintenance in order to recognize higher profits. To add insult to injury, it seems like they skim a healthy margin off of residential producers/consumers as well.

Read more →

How sudo gets root

Today I fell into a rabbit hole around user and process permissions and had to learn how sudo actually worked. For the program I was working on I set out to figure out how to perform something akin to a “user swap” when launching subprocesses. On its face it seems simple enough, my program runs with user id 1000 and I wish to shunt child processes over to run as another user id. sudo can do it, so why can’t I? “For reasons” is the answer.

Read more →