Me

This is a page about me.

Personal

Me, Kevin McDonald

Hello! My name is Kevin McDonald. I am a software engineer living in Copenhagen.

Having grown up in Texas, mostly around the DFW area, I now find myself living in the beautiful city of Copenhagen, Denmark. In 2021, my wife and I decided to embark on this adventure to raise our daughter and embrace a new way of living. As a part of this new life, I've taken up cycling as my main mode of transportation (I don't even own a car!), and I'm even learning Danish. My daughter attends a Danish kindergarten and is growing up bilingual. At this point she identifies more as Danish than American. This journey has been difficult at times but it has also been incredibly rewarding.

Video games used to be a big part of how I spent my free time. I got really into Halo/Halo 2 in high school, World of Warcraft in college and Eve Online in my 20s (see the Evepraisal project below). Now-a-days I really only play casual games, usually roguelikes, but the interest is still there. I just don't have the time!

I read Sci-Fi and fantasy books, usually in audiobook form. I sometimes read non-fiction on topics like popular science and software engineering.

Professional

Apple Badge

I previously worked for Apple and SoftLayer (before and after IBM). I currently work for SYBO. If you want the full details of my work history, see my profile on linkedin.

I began my career persuing "full stack" but now I am solidly a backend engineer. I have gravitated more towards backend systems, and specifically internal tools. However, I have a wide variety of experiences. I have been the primary developer for several public-facing products. I have delved into data engineering with designing ETL pipelines, network pollers, and metric systems. I've developed insights that have made measurable impacts on product design and has directly lead to saving and earning millions of dollars monthly. I have also dipped my toe into cybersecurity by looking at the attack surface of my current company's APIs and developed reasonable exploits and proof of concepts to demonstrate the need to focus on this topic more. This has directly lead to fixing those particular exploits, more attention to security best practices and was a piece of evidence for creating a real cybersecurity team at that company.

I tend to get interested in network protocols and disecting how they work. I have dived deep into gRPC, SNMP, HTTP/2, gNMI, NETCONF and TL1. I don't see myself stopping any time soon with this. My current working programming language is Go, but I have previously worked with Elixir, Clojure, Python, Java, and PHP as my working programming language in the past.

Social

You can find me at the following places! Feel free to shoot me a message!

My online alias is sudorandom. The username "sudorandom" is, of course a pun. It mixes "sudo" (which gives a single linux command super user privileges) with "pseudorandom" like things that seem unpredictable but are computer-made, so they follow strict rules.

Ongoing Projects

kmcd.dev

This website. I try to post here weekly. My current strategy is making backlog of posts waiting to be published. If you want an early peek at what I'm working on these queued up posts can be found on the github repo. I've written 34 posts containing 35,050 words. I have an average of 1,030 words per post. It started with Visualizing the spectrum of the sun published on 2022-02-19. The longest post was Lessons from a Decades-Long Project with 3,369 words.

protoc-gen-connect-openapi

Generate OpenAPI specificaitons from protobuf that matches Connect RPC. Born from my own needs and frustrations gluing together existing tooling in non-ideal ways.

unknownconnect-go

An interceptor for connect-go (ConnectRPC) clients and servers that tells you if you are receiving protobuf messages with unknown fields. A topic I've been writing about a lot lately. I love that it allows you to detect inconsistencies in environments that use ConnectRPC.

Finished Projects

evepraisal.com

Evepraisal was an extremely popular bulk-price estimator for Eve Online. It started as a tool to help pirates evaluate cargo-scan results but it evolve into a tool that helped shape Eve Online's economy. The project lived on well past my time playing the game and, sadly, because of the ongoing maintenance and my detatchment from the game I eventually shut it down.

softlayer-python

A set of Python libraries that assist in calling the SoftLayer API. Has a CLI, general API and specifialized code to help with more complicated workflows. This became the most popular ways to interact with SoftLayer APIs.

swftp

An FTP and SFTP interface for OpenStack Object Storage (swift) built in Twisted Python. I'm unsure how much the project is still used but it was critical for moving a lot of data from legacy systems onto SoftLayer/IBM's Object Storage product.

Support Me

Here is what I have available on displate.com. They sell metal posters that you can hang on your wall using magnets, which makes it easy to switch them out to keep your walls looking fresh. Consider buying one of mine for your home! Or at least using my affiliate link to order other posters from displate: displate.com/?art=5dd499109f9ea

Map of the Internet (no country lines)
Map of the Internet
Spectrum of the sun
Map of the Internet (underwater cables)
Random spelled out in hexadecimal