Hi, I’m Phineas

I’m a husband, father of two girls, a Christian, a software engineer, a recreational language-learner, and many other things. Right now I work for Deloitte, writing public health software. I’ve been programming semi-professionally since I was 12 years old or so, with most of my experience in JavaScript, Java, HTML, CSS, and SQL (specifically PostgreSQL, which I adore). I’ve been teaching myself Rust and Kotlin (for Android development) on the side, and I’d like to learn many, many more languages: Go, Haskell, Hare, and Gleam, to name a few.

This website has mostly been focused on technical subjects so far, and I imagine it’ll continue to have a lot of technical subjects, but I’m interested in a lot more. Perhaps the most significant interest I have (enough to study it as a second major in college), is linguistics. I studied several languages at a very surface level throughout my childhood, and learned Persian (Farsi) and a bit of Turkish and Bulgarian as a missionary in Bulgaria for the Church of Jesus Christ of Latter-day Saints. Learning these languages was so fun and exciting, I added linguistics as a second major shortly after returning to the US.

Right now I am:

  • Getting really interested in the FIRE movement (see Mr. Money Mustache)
  • Working through Shaun T’s Insanity workout program with my wife
  • Building a personal location-tracking app to share my location with my wife sans Google
  • Playing some of the latest set of Teamfight Tactics

Other things I like to do:

  • Read or listen to books
  • Run/hike/or other exercise
  • Play drums and guitar
  • Play other video games
  • Spend time with family

Recent posts

Goals: December 2024

December 18, 2024 — 2 minute read — goals
Advent of Code—Avoiding social media

TIL: Exporting Spotify Playlists to YT Music with jq and read

August 3, 2024 — 3 minute read — til, cli

Wrong Map of Europe

June 11, 2024 — 10 minute read — geography
Map—Wrongnesses

Making the State Department Travel Advisory Map Better

March 1, 2024 — 3 minute read — typescript
Annoyance—Idea—Implementation

Solving problem 1 of Advent of Code 2023 in x86 Assembly

January 20, 2024 — 17 minute read — assembly
Reminiscing on a favorite class—A bright idea—A simple plan for a simple problem—Choosing an assembler and syntax—A tour of the program

Favorites of 2023

December 22, 2023 — 7 minute read — neovim, books, music, movies
Podcasts—Books—Movies—Music—Video Games—Technologies—Articles—Experiences

Recently I Learned: (Neo)Vim

June 3, 2023 — 6 minute read — vim, neovim
Moving a line to the top, middle, or bottom of view—A shortcut for match in s///—Replacing newlines with literal carriage returns—Quickly diffing files

For End Point: 3 useful built-in objects and functions in JavaScript

June 15, 2022 — 1 minute read — javascript
The Set object—Parsing and formatting parameters with URLSearchParams—Some of the great Array.prototype methods

RustyRender: Bresenham’s line-drawing algorithm (lesson 1)

June 12, 2022 — 14 minute read — rust, graphics
Naive line drawing attempts—Dealing with steep lines—Premature optimization—Bresenham’s algorithm with integers—Rendering a wireframe

RustyRender: a tinyrenderer implementation in Rust (lesson 0)

May 21, 2022 — 14 minute read — rust, graphics
Finding tinyrenderer—Choosing Rust—Porting the TGA library—Structs as raw bytes

For End Point: Docker and containers boot camp

May 16, 2022 — 1 minute read — docker, containers
What are containers?—Docker’s tutorial and reference documentation—Other tools

For End Point: Migrating a Node.js app database from MongoDB to PostgreSQL

February 25, 2022 — 1 minute read — javascript, postgresql, mongodb
Learning MongoDB—Problems with complex queries—Pros and cons of MongoDB and PostgreSQL—A brief overview of our chosen libraries—Migrating data and schemas