The Curious Engineer

All blogs / Functional / PL theory

Alexandru Nedelcu

alexn.org

On programming and personal projects

Functional / PL theoryJava / JVMSoftware / engineering practiceAI / ML

Posts
214 from 1 Feb 2009 to 22 Sep 2026
Posting
weekly (26 in the last year)
Kind
personal blog
Feed
https://alexn.org/feeds/blog.xml

2026 18

  1. AI Has No Wisdom and Neither Will You
  2. Read article →
  3. Executable Scripts with Dependencies
  4. Read article →
  5. AI/LLM
  6. On Performance, GCs and Rust
  7. Read article →
  8. Direnv
  9. Copyright is Dead
  10. Read article →
  11. Boring Tech May Become Irrelevant Tech
  12. Tapir Server with Cats-Effect and Pekko HTTP (snippet)
  13. Read article →
  14. Read article →
  15. Hybrid IO-driven Promise (Scala snippet)
  16. Read article →
  17. New Year, Old Me
  18. Read article →

2025 40

  1. How To Become a DevOps Engineer
  2. Read article →
  3. Programming Languages in the Age of AI Agents
  4. Read article →
  5. Try-catch-finally in Java is Cursed
  6. Read article →
  7. Scala vs F#
  8. Read article →
  9. Scala 3 / HOCON Parsing
  10. Read article →
  11. 'AI' Sucks the Joy Out of Programming
  12. Read article →
  13. Scala 3 / No Indent
  14. Read article →
  15. Scala 3 / Match Types
  16. Read article →
  17. Update on Math Formulas via Copilot
  18. Read article →
  19. Math Pill #2: Square Roots
  20. Math Pill #1: Sums
  21. Read article →
  22. Read article →
  23. Outsourced Voices, Outsourced Minds
  24. Read article →
  25. Effects and Concurrency in Functional Programming
  26. Read article →
  27. Scala's Gamble with Direct Style
  28. Read article →
  29. Backup Script for My Cloud Storage
  30. Read article →
  31. Tagged vs Untagged Unions (in Scala)
  32. Read article →
  33. My Favorite Firefox Extensions
  34. Read article →
  35. Use Firefox in 2025
  36. Read article →
  37. Self-hosted Bookmarks Manager
  38. Auto-updating Docker containers
  39. Read article →
  40. Read article →

2024 21

  1. Join the Open Web
  2. Read article →
  3. Cancellable HTTP requests via Scala's Tapir
  4. Read article →
  5. Trusting Open-Source
  6. Read article →
  7. Bitwarden / Vaultwarden
  8. 1Password vs. Bitwarden
  9. Read article →
  10. Cryptographically Strong Random on the JVM
  11. Read article →
  12. On Advertising and Tracking
  13. Read article →
  14. Gradle
  15. Ocaml
  16. Scala's Future
  17. Update NextDNS with a Scala CLI script
  18. Read article →
  19. Read article →
  20. New Year Resolutions
  21. Read article →

2023 26

  1. December Adventure update, thoughts on Rust
  2. Read article →
  3. December Adventure: Learning Rust
  4. Read article →
  5. In Scala 3, use 4 Spaces for Indentation
  6. Read article →
  7. OOP classes vs Higher-order Functions (HOFs)
  8. Read article →
  9. Post Once, Syndicate Everywhere (POSSE)
  10. Read article →
  11. Java Volatiles
  12. Read article →
  13. Scala 3 Significant Indentation Woes: Sample
  14. Read article →
  15. Scala 3 Enums
  16. Read article →
  17. Managing Database Migrations in Kotlin
  18. Read article →
  19. Kotlin Coroutines to Cats-Effect
  20. Read article →
  21. Integrating Akka with Cats-Effect 3
  22. Read article →
  23. Server Monitoring with Monit
  24. Read article →
  25. #DeleteTwitter
  26. Read article →

2022 29

  1. Personal Server Backups
  2. Custom Jackson JSON serializer/deserializer from Circe
  3. I ❤️ Scala's Community
  4. Immutable Collections should be Your Default
  5. On Scala 3's Optional Braces
  6. Building a Queue for Delayed Messages via a RDBMS (1): Design
  7. Cut the Technobabble
  8. The case against Effect Systems (e.g., the IO data type)
  9. Execute Shell Commands in Java/Scala/Kotlin
  10. The Trouble with Checked Exceptions: Part 2
  11. Proprietary Environments are a Trap
  12. Java 19
  13. Akka Fork FUD
  14. Java's Cultural Problem
  15. Scripting with Scala
  16. #DeleteFacebook
  17. Scala isn't fun anymore
  18. Akka is moving away from Open Source
  19. Open Source vs Free Software
  20. Limiting Toxic Technology
  21. Tracking Side Effects in Scala
  22. OOP vs Type Classes: Ideology
  23. Implicit vs Scala 3's Given
  24. Scala OOFP Design Sample
  25. Scala's Gitter to Discord migration mistake
  26. On Typelevel and Monix
  27. A Return to Blogging
  28. Finding Focus in Harsh Times
  29. Cleanup Scala/Java project

2021 12

  1. VSCode workplace recommended extensions
  2. Unsafe Lazy Resource.scala
  3. Combining the terminal (iTerm) with the IDE
  4. Tolerance
  5. Atom/RSS Feeds are the Best Way to Consume the Web
  6. ING Scala Meetup on Scala 3 (live coding session)
  7. Implementing a CountDownLatch (async and dirty)
  8. Matomo (Analytics) Hosting via Docker
  9. Scala's List has a Secret
  10. Tail Recursive Functions (in Scala)
  11. Snippet: Tagless Final vs OOP
  12. Snippet: Remove blank lines from text

2020 27

  1. Execute shell commands in F#
  2. Using ScalaTest for Effects
  3. Best practice for natural Ordering
  4. Managing Database Migrations in Scala
  5. List static blog tags in folder (Jekyll, etc)
  6. I like Option.get
  7. Organize and Index Your Screenshots (OCR) on macOS
  8. Block comments on the web
  9. Generic IOApp alternative
  10. Effect Runtime
  11. When My World Vanishes
  12. Scala Snippet: Unlawful Effects
  13. Running integration tests, with Scala + sbt
  14. Scala Snippet: Flow/Processor to Effect
  15. Privilege
  16. Scala Snippet: Safe Passwords
  17. Sample Error Hierarchy in Scala
  18. Snippet: turn on JVM debugging in sbt
  19. TypeScript Sample: Flow Sensitive Typing
  20. Retry Failing Tasks with Cats and Scala
  21. Scala Snippet: Cats-Effect Resource to Reactive Streams
  22. ExecutionContext Must Be Stack-safe
  23. Fatal Warnings and Linting in Scala
  24. Parallelizing Work via a JavaScript Semaphore
  25. Blog Updates
  26. Python Snippet: Send Email via SMTP
  27. Shell Snippet: Encrypt Files with AES256

2019 5

  1. Haskell Snippet: Sierpinski Triangle
  2. Regexp Replacement via Function in Java/Scala
  3. Async Queue in TypeScript
  4. Scala Snippet: Blocking Task
  5. Scala's isInstanceOf is an Anti-Pattern

2018 2

  1. On Bifunctor IO and Java's Checked Exceptions
  2. In Defense of OOFP

2017 9

  1. Minitest: Zero Crap Scala Testing Library
  2. What is Functional Programming?
  3. Scala Days 2017 — Monix Task
  4. Introduction
  5. Automatic Releases to Maven Central with Travis and SBT
  6. Functional Programming Inception (Presentation)
  7. Asynchronous Programming and Scala
  8. Fixing scala.collection.Iterator
  9. Why Scala's Traversable Is Bad Design

2016 4

  1. Add to NewsBlur Bookmarklet
  2. Monix Task vs Scalaz vs Future, The Benchmark
  3. Akka & Monix - Typelevel Summit, Oslo 2016
  4. Monix Task - flatMap(Oslo) 2016

2015 2

  1. Avoid Javaisms: Mocks, Stubs, DI is Code Smell
  2. Monifu vs Akka Streams

2014 1

  1. Scala Best Practices

2013 3

  1. Resources for Learning Scala
  2. Towards a Better AtomicReference
  3. JVM Multithreading: Monitor Locks and Visibility

2012 5

  1. Notes On JavaScript Client-side Development
  2. On Scala, Functional Programming and Type-Classes
  3. How To Build a Naive Bayes Classifier
  4. Data Mining: Finding Similar Items and Users
  5. Blogging Platform for Hackers

2011 7

  1. Crawling the Android Marketplace
  2. Android Learning Resources
  3. Earning Money as an Amazon Affiliate
  4. 4 Books For Learning to Design, The Hard Way
  5. How I Use Flickr: For Backup
  6. Why I Find Heroku Suboptimal
  7. Cross-Domain, Cross-Browser AJAX Requests

2010 1

  1. I hate NULL and all its variants!

2009 2

  1. Introduction
  2. Using the Best Tools in Programming: Not Really Doable