August 5, 2025

What Has Changed

I have not been actively updating my blog. Quite a bit has changed.

I was made a Senior Software Engineer at work. I am moving to Wicker Park in the next few days from Pilsen. I will be taking a trip to Germany in the coming weeks.

I lost focus on computer science and focused more on my work, which just involves TypeScript CRUD stuff. Recently, I’ve refocused on learning the basics of computer science and plugging the holes in my knowledge.

I experimented more with Nix on my gaming desktop but gave up on it for a while. I have redoubled my efforts and now run Nix on my personal laptop. Things seem stable now, and I hope to continue fleshing out my dotfiles in the Nix style.

In the last 1–2 years, I have experimented with Haskell, Gleam, and Racket. I gravitate toward functional programming, though I don’t fully understand it. There is something nice about it that allows you to structure some problems in a more elegant way. Some problems, however, are more suitable for imperative code and mutation.

In the last two weeks, I have set out to study data structures and algorithms. I wanted to select a language to do so because TypeScript abstracts much about structures. I have also grown to dislike TypeScript. The type system means nothing. I wanted a language with good support on online platforms like LeetCode. I couldn’t bring myself to use a dynamic language, so I settled on OCaml.

I had tried it before I went with Haskell and struggled with the syntax, specifically the usage of semicolons. I see now that this was caused by its mix of functional and imperative paradigms.

It’s an odd language and not too popular. I was open to Gleam, but it’s not as widely supported. Still, I think it will give me the appropriate tools to study data structures and aid me in building interpreters/compilers if I ever dabble in language design.

One quirk that I don’t like about it — which I suspect is common among non-scripting languages — is the lack of a global logging function. You can preprocess, but I’d like something lightweight without dependencies.

I’m enjoying it. I’ve purchased some books to peruse, but I rarely finish them:

  • The Elements of Computing Systems: Building a Modern Computer from First Principles

  • Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

  • Purely Functional Data Structures

I ditched Obsidian and obsidian.nvim for org mode. I contemplated using emacs for just orgmode, and nvim for coding, but I opted for an orgmode plugin.