Professional programmer, amateur writer, temperamental opinionator.
I learned to program as a child in the 90’s back in the era when PCs
came with sample games like
with included code for hobbyists and learners
to play around with. It was sheer luck that this random interest of mine
turned out to be a marketable, employable skill.
My personal story plays into the narrative of the driven young autodidact, usually male, usually socially awkward, who has that “genius” to be a “real programmer”, perhaps at the expense of other qualities. But this is not my take-away. Anyone can learn how to program, even if they don’t write a line of code – or even touch a computer – until arbitrarily late in life. And unlike other forms of math and logic, it is accessible even to young children, and should be taught in schools alongside other subjects.
I was very fortunate that my uncle and godfather encouraged me in programming from an early age, and also got me into Linux and open source software. I quickly developed an interest in operating systems and systems programming, running FreeBSD and trying to learn the Unix systems call API and the differences between the Unix flavors. I still feel most at home in systems programming languages, such as C; C++; and in our modern era, Rust (but more on that later).
After an embarrassing period where I got deeply into dynamically-typed OOP, Smalltalk, and Objective-C, I was introduced to functional programming and static typing at my university’s functional programming course (then called CS312 and in SML), and I quickly understood the benefits. My friends soon introduced me to Haskell, which I digested with enthusiasm. It is still my favorite GC’d language and applications programming language.
My career proceeded in the C++, systems side of things, as I worked as a low-latency programmer and later as an instructor at Tower Research Capital, but I never forgot my affection for Haskell and powerful static type systems. I excitedly embraced “modern C++” and C++11, and tried my best to use C++’s features to maximize safety and expressiveness.
After Tower, I wanted to avoid finance and low-latency programming altogether, and took a job at Obsidian, one of the largest Haskell consultancy shops, to work on a mix of embedded C projects and Haskell projects in Reflex, Obsidian’s open-source framework for “Functional-Reactive Programming,” a revolutionary up-and-coming paradigm for GUI programming.
But my interests in strong typing and in systems programming could not fully be reconciled until I joined Savant Power, my current employer, and discovered Rust. As I learned more about Rust, it overcame my initial skepticism, and it became clear to me that Rust was finally achieving what modern C++ had been striving for for so long: A high-performance systems programming language that was also type-safe, ergonomic, and composable. And that is where I stand to this day.
I have family and friends but I’m not going to write about them in detail here because that feels too private.
As a pre-school boy, I enjoyed pretending I was various animals I’d learn about from cartoons and books, especially pretending that I was the grey squirrel from the song “Grey Squirrel, grey squirrel, swish your bushy tail,” or the brief phase where I tried to insist I was a macaroni penguin. I enjoyed singing, and would often sing lullabies and children’s songs, or Christmas carols even when they were not in season. My parents could always entertain me or distract me easily with music.
As a young child, I was a fan of Winnie the Pooh. I enjoyed the books, I enjoyed the TV show, and at one point, my favorite toys were plastic Winnie the Pooh figures.
I was not a fan of Power Rangers, which my family did not watch. I did not know why my fellow kindergartners liked it so much, but was convinced they were objectively wrong somehow. I still don’t know anything about Power Rangers, but I’m willing to believe it may have been good in some ways if so many people liked it.
Being a neurodivergent child was super hard in a lot of ways, and I don’t want to talk about any of them, so I won’t. I will however mention that in kindergarten and first grade, I had a psychologist who would play board games and video games with me – this was known as “play therapy.” I did not know what this had to do with being a doctor, but I wasn’t about to complain, especially because it was fun. We played Commander Keene for MS-DOS. I remember being oddly impressed that he had Windows 3.0 instead of Windows 3.1 on his computer – even though it was a lower version number, it seemed oddly exotic. Why were there so few Windows 3.0 computers? How did everyone else manage to upgrade?
In any case, I insisted on getting piano lessons in the first grade – originally trying to get my mother to teach me, and then forcing her to hire a teacher when my demands for instruction outpaced her capacity to teach.
Throughout my youth, I enjoyed music, especially choral music (as a boy soprano and then as a tenor). I played piano (from 1st grade), trombone (from 4th grade), and recorder (I don’t know when I learned this). It was recorder that taught me how to play by ear: I used to come play Christmas carols during lunch in December, whether or not my fellow schoolchildren wanted to hear them. I got musical education both at school and at church, and appreciated this dual source of instruction. Communal singing was most of the draw of going to church.
In high school, I remained an avid reader, especially of science fiction and fantasy. My favorite authors were J.R.R. Tolkien, C.S. Lewis, Arthur C. Clarke and Robert Heinlein, approximately in that order. I did debate team and marching band in high school as my most time-intensive extra-curriculars. I enjoyed learning things both inside and outside of my classes, but did not at all enjoy doing homework assignments, and I resented adult authority over me, as is the way of teenagers. I had an ordinary amount of friends, many of whom I’m still friends with. My favorite topics in school were probably German and math. During the last summers, I worked at the local college’s IT department.
I went to Cornell University in Ithaca, NY at 17, where I originally hoped to dual-major in computer science and linguistics. Unfortunately, it turns out dual majoring is hard, and so I did not end up successfully doing that, just sticking to CS, officially – though I did take a number of linguistics classes, as well as coming up one class short of a dual major in math (minors were not offered in math).
At university, I made many friends, gained a lot of life experience, and tried and failed to learn Japanese. I worked part-time at one point as a system administrator in a college computer lab and at another point as a short-order cook in a college dining hall. I also worked as an undergraduate TA, designing better course software and teaching sections.
In 2010, I had a hiking accident and broke my back. I took a health leave of absence from college, recovered, and then worked as a programmer in NYC before returning to finish my bachelors in spring of 2013.
Besides my brief return to Cornell, I continued living in New York City. During my 20s, the most important thing to me was cultivating and maintaining close friendships, which I did, and traveling to as many fun places as possible, which I also did. I lived in Brooklyn, and tried to convince the hipsters I was one of them, in spite of my preference for lagers (or even fancy cocktails) over IPAs. I was a regular at a few bars and restaurants. I gradually adopted bicycle as one of my go-to means of transit, especially CitiBike to get around Brooklyn.
Then, in January of 2022, I realized that programming jobs no longer had physical locations and so I could live wherever I wanted. Now, I live in an overly large house (or perhaps I’m an overly small person?) in a different, slightly less small town in Pennsylvania. I don’t know what the most important thing will be to me in my 30’s – ask me again when I’m done with them.
- Blogging (hi!)
- This is my biggest and most “productive” hobby
- Talking for hours on the phone with friends
- Travelling with friends
- Travelling to meet up with friends
- Going out with friends
- Going out to make friends
- Throwing parties to invite friends
- Board games with friends (I want more of this!)
- Nerding out about/learning more about:
- Religious studies
- Germanic languages
- Other nerdery (see the topics of this blog for details)
- Exercising (this should be bigger and higher up, but honestly it just isn’t):
- Rock climbing (relatively new, I’m still quite bad!)
- Keeping an overly meticulous TODO list
- Writing everthing I need to do on the list
- Making sure I maintain the list well
- Make sure I plan each day
- Fail to do many of the things I planned
- Especially errands and chores (they’re the worst)
- Many days: Write down the few things I did succeed at doing
I wish I could still list music, but that will simply take work to resurrect! I can still play instruments, but not too well anymore.
But do you like any poems?#
Weatherby George Dupree
Care of his Mother
Though he was only three.
Said to his Mother,
“Mother,” he said, said he;
“You must never go down to the end of the town, if
you don’t go down with me.”
Put on a golden gown,
Drove to the end of the town.
Said to herself, said she:
“I can get right down to the end of the town and be
back in time for tea.”
Put up a notice,
“LOST or STOLEN or STRAYED!
SEEMS TO HABE BEEN MISLAID.
QUITE OF HER OWN ACCORD,
SHE TRIED TO GET DOWN TO THE END OF
THE TOWN - FORTY SHILLINGS REWARD!
(Commonly known as Jim)
Not to go blaming him.
Said to his Mother,
“Mother,” he said, said he,
“You must never go down to the end of the town with-
out consulting me.”
Hasn’t been heard of since.
Said he was sorry,
So did the Queen and Prince.
(Somebody told me)
Said to a man he knew:
“If people go down to the end of the town, well, what
can anyone do?”
(Now then, very softly)
W. G. du P.
C/o his M*****
Though he was only 3.
Said to his M*****
“M*****,” he said, said he:
NewsletterFind out via e-mail when I make new posts!