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. I work for Deloitte on public health software for state governments. 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.
I love languages and linguistics. I speak Persian, some Turkish, and I’m learning German.
Right now I am:
- Reading Sarah J. Maas’s Throne of Glass series
- Working through Jeff Nippard’s The Essentials Program
- Reading Crafting Interpreters by Robert Nystrom and following along in Rust
When I get free time, I like to read or listen to books, run, hike, or work out at the gym, play guitar, play video games, or just spend time with my family.
Recent posts
Favorites of 2024
December 31, 2024 — 7 minute read — neovim, books, music, movies, tv, games
Podcasts—Books—Movies—TV—Music—Video Games—Technologies—Articles—Experiences
TIL: Exporting Spotify Playlists to YT Music with jq and read
August 3, 2024 — 3 minute read — til, cli
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