All blogs / Functional / PL theory
Alexandru Nedelcu
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
- AI Has No Wisdom and Neither Will You
- Read article →
- Executable Scripts with Dependencies
- Read article →
- AI/LLM
- On Performance, GCs and Rust
- Read article →
- Direnv
- Copyright is Dead
- Read article →
- Boring Tech May Become Irrelevant Tech
- Tapir Server with Cats-Effect and Pekko HTTP (snippet)
- Read article →
- Read article →
- Hybrid IO-driven Promise (Scala snippet)
- Read article →
- New Year, Old Me
- Read article →
2025 40
- How To Become a DevOps Engineer
- Read article →
- Programming Languages in the Age of AI Agents
- Read article →
- Try-catch-finally in Java is Cursed
- Read article →
- Scala vs F#
- Read article →
- Scala 3 / HOCON Parsing
- Read article →
- 'AI' Sucks the Joy Out of Programming
- Read article →
- Scala 3 / No Indent
- Read article →
- Scala 3 / Match Types
- Read article →
- Update on Math Formulas via Copilot
- Read article →
- Math Pill #2: Square Roots
- Math Pill #1: Sums
- Read article →
- Read article →
- Outsourced Voices, Outsourced Minds
- Read article →
- Effects and Concurrency in Functional Programming
- Read article →
- Scala's Gamble with Direct Style
- Read article →
- Backup Script for My Cloud Storage
- Read article →
- Tagged vs Untagged Unions (in Scala)
- Read article →
- My Favorite Firefox Extensions
- Read article →
- Use Firefox in 2025
- Read article →
- Self-hosted Bookmarks Manager
- Auto-updating Docker containers
- Read article →
- Read article →
2024 21
- Join the Open Web
- Read article →
- Cancellable HTTP requests via Scala's Tapir
- Read article →
- Trusting Open-Source
- Read article →
- Bitwarden / Vaultwarden
- 1Password vs. Bitwarden
- Read article →
- Cryptographically Strong Random on the JVM
- Read article →
- On Advertising and Tracking
- Read article →
- Gradle
- Ocaml
- Scala's Future
- Update NextDNS with a Scala CLI script
- Read article →
- Read article →
- New Year Resolutions
- Read article →
2023 26
- December Adventure update, thoughts on Rust
- Read article →
- December Adventure: Learning Rust
- Read article →
- In Scala 3, use 4 Spaces for Indentation
- Read article →
- OOP classes vs Higher-order Functions (HOFs)
- Read article →
- Post Once, Syndicate Everywhere (POSSE)
- Read article →
- Java Volatiles
- Read article →
- Scala 3 Significant Indentation Woes: Sample
- Read article →
- Scala 3 Enums
- Read article →
- Managing Database Migrations in Kotlin
- Read article →
- Kotlin Coroutines to Cats-Effect
- Read article →
- Integrating Akka with Cats-Effect 3
- Read article →
- Server Monitoring with Monit
- Read article →
- #DeleteTwitter
- Read article →
2022 29
- Personal Server Backups
- Custom Jackson JSON serializer/deserializer from Circe
- I ❤️ Scala's Community
- Immutable Collections should be Your Default
- On Scala 3's Optional Braces
- Building a Queue for Delayed Messages via a RDBMS (1): Design
- Cut the Technobabble
- The case against Effect Systems (e.g., the IO data type)
- Execute Shell Commands in Java/Scala/Kotlin
- The Trouble with Checked Exceptions: Part 2
- Proprietary Environments are a Trap
- Java 19
- Akka Fork FUD
- Java's Cultural Problem
- Scripting with Scala
- #DeleteFacebook
- Scala isn't fun anymore
- Akka is moving away from Open Source
- Open Source vs Free Software
- Limiting Toxic Technology
- Tracking Side Effects in Scala
- OOP vs Type Classes: Ideology
- Implicit vs Scala 3's Given
- Scala OOFP Design Sample
- Scala's Gitter to Discord migration mistake
- On Typelevel and Monix
- A Return to Blogging
- Finding Focus in Harsh Times
- Cleanup Scala/Java project
2021 12
- VSCode workplace recommended extensions
- Unsafe Lazy Resource.scala
- Combining the terminal (iTerm) with the IDE
- Tolerance
- Atom/RSS Feeds are the Best Way to Consume the Web
- ING Scala Meetup on Scala 3 (live coding session)
- Implementing a CountDownLatch (async and dirty)
- Matomo (Analytics) Hosting via Docker
- Scala's List has a Secret
- Tail Recursive Functions (in Scala)
- Snippet: Tagless Final vs OOP
- Snippet: Remove blank lines from text
2020 27
- Execute shell commands in F#
- Using ScalaTest for Effects
- Best practice for natural Ordering
- Managing Database Migrations in Scala
- List static blog tags in folder (Jekyll, etc)
- I like Option.get
- Organize and Index Your Screenshots (OCR) on macOS
- Block comments on the web
- Generic IOApp alternative
- Effect Runtime
- When My World Vanishes
- Scala Snippet: Unlawful Effects
- Running integration tests, with Scala + sbt
- Scala Snippet: Flow/Processor to Effect
- Privilege
- Scala Snippet: Safe Passwords
- Sample Error Hierarchy in Scala
- Snippet: turn on JVM debugging in sbt
- TypeScript Sample: Flow Sensitive Typing
- Retry Failing Tasks with Cats and Scala
- Scala Snippet: Cats-Effect Resource to Reactive Streams
- ExecutionContext Must Be Stack-safe
- Fatal Warnings and Linting in Scala
- Parallelizing Work via a JavaScript Semaphore
- Blog Updates
- Python Snippet: Send Email via SMTP
- Shell Snippet: Encrypt Files with AES256
2019 5
2018 2
2017 9
- Minitest: Zero Crap Scala Testing Library
- What is Functional Programming?
- Scala Days 2017 — Monix Task
- Introduction
- Automatic Releases to Maven Central with Travis and SBT
- Functional Programming Inception (Presentation)
- Asynchronous Programming and Scala
- Fixing scala.collection.Iterator
- Why Scala's Traversable Is Bad Design