The Curious Engineer

All blogs / Dev tools / editors / IDEs

Farid Zakaria’s Blog

fzakaria.com

I’m a software engineer, father and wishful amateur surfer. If you’ve come seeking my political views, you’ve found the wrong Fareed.

Dev tools / editors / IDEsLinux / UnixSoftware / engineering practice

Posts
169 from 31 Mar 2020 to 6 Nov 2026
Posting
weekly (67 in the last year)
Kind
personal blog
Feed
https://fzakaria.com/feed.xml

2026 63

  1. The intensional model in disguise
  2. Rewinding by fast-forwarding
  3. Why does shuffling the schedule find so many bugs?
  4. A clock made of branches
  5. Reading the code is the hard part
  6. Dafuq is a deterministic VM?
  7. Who wrote this byte?
  8. No quarter for gaps
  9. One store, two frontends
  10. Always, sometimes, never
  11. Nixpkgs for the frontend impaired
  12. Nix wrote half of my debugger
  13. Rewind VM: a flaky build you only catch once
  14. Hiding my AI slop from my Nix friends
  15. Every package is already installed
  16. A build graph that rolls dice
  17. Visualizing Nix closures
  18. Orange Site Vanity
  19. A Nix store is three functions
  20. Review a pull request by booting it
  21. Any Nix package, live in your browser
  22. Keeping one version of everything
  23. The holy grail of nixpkgs: version ranges
  24. How safe is follows?
  25. One flake to rule them all
  26. Stamping build info in constant memory
  27. Actually Queryable Executables
  28. Your executable is a SQLite database
  29. Three ways to smuggle SQLite into Nix
  30. nixpkgs-multiverse: the fewest nixpkgs
  31. DEFCON34 wrap-up
  32. nixpkgs-multiverse: fast mode
  33. nixpkgs-multiverse is audacitymaxxing
  34. nixpkgs-multiverse: every version that ever existed
  35. Super Mario Derivations
  36. A C++ toolchain from 357 bytes, in Bazel
  37. The Nix sandbox is a hidden input
  38. Nix finally has a source-bootstrapped OpenJDK
  39. Guix by Nix
  40. The mean means nothing
  41. Seriously, what is the large code-model even for?
  42. Small site changes and new design
  43. Linux kernel will support $ORIGIN, sort of
  44. How to piss off your Nix friends
  45. Who does Anubis actually stop?
  46. A TacoSprint 2026 Retrospective
  47. GuixPkgs: every Guix package, as a Nix flake
  48. Hijacking ELF entry points for NixOS compatibility or WTF is wrap-buddy?
  49. Nix needs relocatable binaries
  50. nix-build in under 100 lines
  51. A trillion dollars
  52. Relocatable Derivations
  53. The Guix Nix Abomination: Leveraging Guix derivations in Nix
  54. Every byte matters
  55. AI is a Boon for the Anal-Retentive
  56. Leaving performance on the table
  57. Does anyone actually use the large code-model?
  58. Nix is a lie, and that's ok
  59. Linker Pessimization
  60. Creating massively huge fake files and binaries
  61. Crazy shit linkers do: Common Data (COMDAT) sections
  62. Crazy shit linkers do: Relaxation
  63. Bespoke software is the future

2025 42

  1. Huge binaries: papercuts and limits
  2. Huge binaries: I thunk therefore I am
  3. Huge binaries
  4. Failing interviews
  5. Nix derivation madness
  6. Fuzzing for fun and profit
  7. Bazel Knowledge: Smuggling capabilities through a tarball
  8. Writing a protoc plugin in Java
  9. Bazel Knowledge: Testing for clean JVM shutdown
  10. Bazel Knowledge: dive into unused_deps
  11. Using Nix as a library
  12. GitHub Code Search is the real MVP
  13. Angle brackets in a Nix flake world
  14. Bazel Knowledge: Mixing and matching how to build third_party is lunacy
  15. Bazel Knowledge: Beyond _deploy.jar for OCI images
  16. Bazel Knowledge: transition with style
  17. home-manager is a false enlightenment
  18. Nix S3 multi-user woes
  19. Bazel's Original Sins
  20. Bazel Knowledge: Homonymous Bazel Modules
  21. Bazel Knowledge: Diagnostic messages only on failure
  22. Linux cgroup from first principles
  23. Bazel Knowledge: Recursive Bazel for testing
  24. Bazel Knowledge: A practical guide to depset
  25. Bazel linux-sandbox and cgroups
  26. Bazel cgroup memory investigation
  27. Chaining Nix stores for fun
  28. Nix that looks like Bazel
  29. What's in a Nix store path
  30. Nix vanity store paths
  31. Nix derivations by hand
  32. Nix Dynamic Derivations: A lang2nix practicum
  33. Nix Dynamic Derivations: A practical application
  34. An early look at Nix Dynamic Derivations
  35. Demystifying Nix's Intensional Model
  36. 404s and updated CSS
  37. Jekyll Git commit
  38. Nix migraines: NIX_SSL_CERT_FILE
  39. Nix pragmatism: nix-ld and envfs
  40. Nix: string interpolation of directories gone awry
  41. Bazel: Build Event Protocol Viewer
  42. Bazel Knowledge: Be mindful of Build Without the Bytes (bwob)

2024 26

  1. Faking incremental Docker loads
  2. Bazel Knowledge: Protobuf is the worst when it should be the best
  3. JVM boot optimization via JavaIndex
  4. Bazel Knowledge: What's an Interface JAR?
  5. Bazel Knowledge: mind your PATH
  6. Bazel Knowledge: Aspects to generate Java CLASSPATH
  7. Bazel Knowledge: reproducible outputs
  8. Bazel Knowledge: Secret //external directory
  9. Bazel Knowledge: Reference targets by output name
  10. Bazel Overlay Pattern
  11. Bazel WORKSPACE chunking
  12. NixOS, Raspberry Pi & Me
  13. Automatic Nix flake follows
  14. Import but don't import your NixOS modules
  15. NixOS Option Inspection
  16. Management Time
  17. Scaling past 1 million ELF symbol relocations
  18. Fish the bash way
  19. Nix secrets for dummies
  20. Nix remote building with Yubikey
  21. Learn Nix the Fun Way
  22. Reproducibility in Disguise: Bazel, Dependencies, and the Versioning Lie
  23. Speeding up ELF relocations for store-based systems
  24. Visualizing GitHub workflow run length time
  25. Hermetic, but at what cost?
  26. Abusing GitHub as a PyPI server

2023 2

  1. Quick insights using sqlelf
  2. sqlelf and 20 years of Nix

2022 3

  1. Making RUNPATH redundant for Nix
  2. Shrinkwrap: Taming dynamic shared objects
  3. Computing all output paths for every attribute in Nixpkgs

2021 10

  1. Using an overlay filesystem to improve Nix CI builds
  2. The yak shave for reproducibility
  3. A Nix Binary Cache Specification
  4. Investigating hydration times with Nix
  5. The search for a minimal nix-shell continued; mkShellMinimal
  6. A minimal nix-shell
  7. Eval the Nix
  8. Java, Nix & Reproducibility
  9. setting up a Nix Google Cloud Storage (GCS) binary cache
  10. JRuby and Sorbet

2020 23

  1. autopatchelf - what it can look like
  2. On-demand linked libraries for Nix
  3. Debugging a JNR-FFI bug in Nix
  4. Isolation using Java's ClassLoader
  5. Nix parallelism & Import From Derivation
  6. nix-copy-closure your nix-shell
  7. VPNs continued
  8. VPNs from first principles
  9. Tailscale is magic; even more so with NixOS
  10. NixOS; what's in a rebuild? Continued.
  11. NixOS; what's in a rebuild?
  12. mvn2nix; welcoming Maven into Nix's warm embrace
  13. quassel core on NixOS with Let's Encrypt
  14. nix coercion trick
  15. caching your nix-shell
  16. Packaging a Maven application with Nix
  17. what is bundlerEnv doing?
  18. setting up a Nix S3 binary cache
  19. my love letter to redo
  20. Containers from first principles
  21. bpf_helpers and you...
  22. Parallel Task Execution
  23. New blog. New format.