RSSAmplifier

Blog

Paul Osman

Paul Osman

paulosman.meRSS feed ↗22 posts

Latest posts

Building The Web: A History of Web Architecture

tl;dr I’m writing a book about the history of web architecture. The audience will be engineers and anyone who wants to deep dive on how architectures have evolved over time. It will focus on the practitioners who made significant contributions to foundational ideas and technologies in web architecture, whether they intended to or not. Updates will be published at buildingtheweb.dev . The…

SFP+ Support on the Honeycomb LX2

A few years ago, I bought a SolidRun Honeycomb LX2 . The LX2 is a 16-core ARM board (NXP LX2160A) with four SFP+ ports and a 1GbE RJ45. Paired with the extremely nice looking Lone Industries L5 mini itx case, it’s a very cool small form factor machine that requires very little power. When I first got it, I followed Liz Fong-Jones’ tips for getting Ubuntu 20.04 running and since then…

Shipping When You're Not Sure

I recently had to write a query planner for a graph store. The query planner wasn’t terribly complicated - it used some simple heuristics and estimates to decide whether it would be better to execute a query term against the underlying data store or perform in-memory filtering. The hope was that this would improve the vast majority of queries without introducing any regressions. Normally in…

Where I'm at with AI

We’re in new paradigm territory with generative AI. A lot of commentary falls into the skeptic, evangelist, or doomsdayer categories, or are practical but narrow takes. In this article, I’ll discuss my current use of generative AI tools and outline areas that concern me - areas that raise questions about how our industry and others will evolve. I am certain that generative AI is a…

Solving a Murder Mystery

A coworker asked me if I ever write about difficult bugs I’ve encountered. I hadn’t thought about doing that before, but I like the idea. The conversation made me think about a bug I ran into at Honeycomb that I want to document before I forget the details. Solving this one was a team effort, requiring different insights from different people. It was also the kind of bug I could only…

Getting up to Speed

I recently started a new role working on data infrastructure at LinkedIn. Working with data at a vast scale at an organization with a lot of experience in the space is exciting. The area I work in is described internally as “Big Data.”. That term has been used in many marketing materials and can induce a lot of cringes. For this post, “Big Data” refers to working with…

Being on a Board

I recently left my job at Honeycomb . They’re a fantastic company, and I think they will be wildly successful. Still, life circumstances are such that I wanted to explore an opportunity at a much larger technology organization. More on that in another post, perhaps. In this post, I want to reflect on a unique aspect of my employment at Honeycomb: I was the first employee to sit on their…

On Programming Languages

I was having a conversation with another software engineer the other day and they asked for my thoughts on various programming languages and paradigms. The topic came up because I mentioned that Python3 supported Optional types which are a popular feature in many functional programming languages like Haskell , OCaml , and F# . Conversations like these often turn into statements about the general…

Sociotechnical Lenses into Software Systems

Software systems are sociotechnical. I don’t think software professionals spend enough time discussing the challenges that span software and personal aspects. When we look at software through a sociotechnical lens, we begin to appreciate the complexity inherent in software development and operations. The systems we are building and operating are constantly being modified by different people,…

Questions I Keep Asking

Software is a big space and in the span of a career, you can move in a bunch of different directions, all interesting to different people. As I approach my 20th year as a professional software person, I thought it’d be interesting to reflect on how I hope to spend the next 20 years. I found it useful to write down questions I keep coming back to and use them as a guide for my continued learning.…

Production Oriented Development

Throughout my career, I’ve developed some opinions . Some have worn particularly deep ruts, reinforced by years of experience. I tried to figure out what these had in common, and it’s the idea that code in production is the only code that matters . Staging doesn’t matter, code on your laptop doesn’t matter, QA doesn’t matter, only production matters. Everything else…

Newbie's Guide to Cyclocross

For most of us in Central Texas, the cyclocross season ended with the Texas State Age & Skill Based Championships in Georgetown, TX. This was my first season racing cross, so I thought I’d take a crack at writing a guide for people thinking about getting into it. Cyclocross is an incredibly fun, completely insane sport. If you’re thinking about racing hopefully this will help. I can only speak to…

Race Report - Jack's Generic Triathlon 2016

Early in the year, when I decided to sign up for my first triathlon , I remember thinking that I would do a Sprint and Olympic distance and that’d be it - mission accomplished. That was before I was addicted - a week after that first race, I went looking for more triathlons to sign up for and found Jack’s Generic Triathlon. Jack’s celebrated it’s 14th anniversary this year, so it’s been a staple…

Race Report - Rookie Tri 2016

A few weeks ago I competed in my first triathlon - a super sprint distance race aptly named the Rookie Tri . It’s a 300 meter swim, followed by an 11.2 mile bike ending with a 2 mile run. I’m registered to race an Olympic Distance (1500m swim, 40km bike, 10km run) at the CapTex Triathlon at the end of the month, so I figured this would be good practice. I’m so glad I did it, I…

Looking back at 2014

I was in New Orleans, LA at the beginning of 2014. Fitting, as the Crescent City played a huge role in my life this past year. Meg and I were in town planning our wedding and decided to stay and celebrate New Years in our favourite city. Our normal abode (and future wedding venue), the Maison de Macarty in the Bywater, was fully booked that night so we were temporarily relocated to the Hilton…

Cycling for Cancer Research

On June 7th and 8th, I’ll be joining the Ride to Conquer Cancer — a two day ride from Toronto, Ontario to Niagara Falls (that’s just over 200km). The ride raises money for the Princess Margaret Cancer Centre , one of the top 5 cancer research centres in the world. I’m doing this because the work done at centres like Princess Margaret has a direct impact on cancer patients and…

Great Engineering Teams

Building great teams is hard. We all know this. Nobody has the perfect recipe for creating a great engineering team, but I’m fairly certain that some things are obvious and should be heeded. What follows is a list of observations I’ve made throughout my career about what seems to work and what doesn’t. Perfect excuse for a good old “Do” and “Don’t”…

Building Services with Apache Thrift

I’ve always been interested in cross-language service frameworks. I believe in using the best tools for a job, instead of being limited to a specific language or framework, so being able to write components of a service in whatever langauge makes the most sense is attractive to me. In past lives, I’ve developed software that used CORBA , SOAP , COM and XPCOM and found that they all…

Storing Extra Data in Django Join Tables

I’ve had some people ask me about the through argument supported by Django’s ManyToManyField class. This option supports a very simple use case: when you want to store additional data in a join table. Imagine, for instance, that we’re building a simple course registration tool. Let’s call the Django app courses . We’ll define the following models: from django.db…

Making Signups Easier With WebFinger

I’ve been thinking about signup processes lately and what we can do with batucada (the next drumbeat.org) to make it easier, while encouraging users to use open, decentralized identity technologies like OpenID . The Problem Whenever I come across a new service that I want to create an account on, I dread the idea of creating a new set of credentials and re-entering a bunch of information I…

Google Webfinger

This is pretty old news , but I missed the original announcement and I think it’s pretty interesting. Google have implemented an alpha of the WebFinger protocol . If you have a Google profile, click on “Edit your profile” and add ‘webfingeralpha’ as an interest. Congrats, your gmail address is now a WebFinger identifier and will resolve to an XRD file containing…

Introduction to mod_python

This article will provide a brief introduction to mod_python, a tour of what you can do with it, and some pointers to further resources should you want to explore it in more depth. I will assume that the reader is comfortable programming in Python (although no specific knowledge is required) and is familiar with Apache and basic web concepts. This article is not intended to be a complete reference…