All blogs / Dev tools / editors / IDEs
Farid Zakaria’s Blog
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
- 165 from 31 Mar 2020 to 28 Oct 2026
- Posting
- weekly (63 in the last year)
- Kind
- personal blog
- Feed
- https://fzakaria.com/feed.xml
2026 59
- Reading the code is the hard part
- Dafuq is a deterministic VM?
- Who wrote this byte?
- No quarter for gaps
- One store, two frontends
- Always, sometimes, never
- Nixpkgs for the frontend impaired
- Nix wrote half of my debugger
- Rewind VM: a flaky build you only catch once
- Hiding my AI slop from my Nix friends
- Every package is already installed
- A build graph that rolls dice
- Visualizing Nix closures
- Orange Site Vanity
- A Nix store is three functions
- Review a pull request by booting it
- Any Nix package, live in your browser
- Keeping one version of everything
- The holy grail of nixpkgs: version ranges
- How safe is follows?
- One flake to rule them all
- Stamping build info in constant memory
- Actually Queryable Executables
- Your executable is a SQLite database
- Three ways to smuggle SQLite into Nix
- nixpkgs-multiverse: the fewest nixpkgs
- DEFCON34 wrap-up
- nixpkgs-multiverse: fast mode
- nixpkgs-multiverse is audacitymaxxing
- nixpkgs-multiverse: every version that ever existed
- Super Mario Derivations
- A C++ toolchain from 357 bytes, in Bazel
- The Nix sandbox is a hidden input
- Nix finally has a source-bootstrapped OpenJDK
- Guix by Nix
- The mean means nothing
- Seriously, what is the large code-model even for?
- Small site changes and new design
- Linux kernel will support $ORIGIN, sort of
- How to piss off your Nix friends
- Who does Anubis actually stop?
- A TacoSprint 2026 Retrospective
- GuixPkgs: every Guix package, as a Nix flake
- Hijacking ELF entry points for NixOS compatibility or WTF is wrap-buddy?
- Nix needs relocatable binaries
- nix-build in under 100 lines
- A trillion dollars
- Relocatable Derivations
- The Guix Nix Abomination: Leveraging Guix derivations in Nix
- Every byte matters
- AI is a Boon for the Anal-Retentive
- Leaving performance on the table
- Does anyone actually use the large code-model?
- Nix is a lie, and that's ok
- Linker Pessimization
- Creating massively huge fake files and binaries
- Crazy shit linkers do: Common Data (COMDAT) sections
- Crazy shit linkers do: Relaxation
- Bespoke software is the future
2025 42
- Huge binaries: papercuts and limits
- Huge binaries: I thunk therefore I am
- Huge binaries
- Failing interviews
- Nix derivation madness
- Fuzzing for fun and profit
- Bazel Knowledge: Smuggling capabilities through a tarball
- Writing a protoc plugin in Java
- Bazel Knowledge: Testing for clean JVM shutdown
- Bazel Knowledge: dive into unused_deps
- Using Nix as a library
- GitHub Code Search is the real MVP
- Angle brackets in a Nix flake world
- Bazel Knowledge: Mixing and matching how to build third_party is lunacy
- Bazel Knowledge: Beyond _deploy.jar for OCI images
- Bazel Knowledge: transition with style
- home-manager is a false enlightenment
- Nix S3 multi-user woes
- Bazel's Original Sins
- Bazel Knowledge: Homonymous Bazel Modules
- Bazel Knowledge: Diagnostic messages only on failure
- Linux cgroup from first principles
- Bazel Knowledge: Recursive Bazel for testing
- Bazel Knowledge: A practical guide to depset
- Bazel linux-sandbox and cgroups
- Bazel cgroup memory investigation
- Chaining Nix stores for fun
- Nix that looks like Bazel
- What's in a Nix store path
- Nix vanity store paths
- Nix derivations by hand
- Nix Dynamic Derivations: A lang2nix practicum
- Nix Dynamic Derivations: A practical application
- An early look at Nix Dynamic Derivations
- Demystifying Nix's Intensional Model
- 404s and updated CSS
- Jekyll Git commit
- Nix migraines: NIX_SSL_CERT_FILE
- Nix pragmatism: nix-ld and envfs
- Nix: string interpolation of directories gone awry
- Bazel: Build Event Protocol Viewer
- Bazel Knowledge: Be mindful of Build Without the Bytes (bwob)
2024 26
- Faking incremental Docker loads
- Bazel Knowledge: Protobuf is the worst when it should be the best
- JVM boot optimization via JavaIndex
- Bazel Knowledge: What's an Interface JAR?
- Bazel Knowledge: mind your PATH
- Bazel Knowledge: Aspects to generate Java CLASSPATH
- Bazel Knowledge: reproducible outputs
- Bazel Knowledge: Secret //external directory
- Bazel Knowledge: Reference targets by output name
- Bazel Overlay Pattern
- Bazel WORKSPACE chunking
- NixOS, Raspberry Pi & Me
- Automatic Nix flake follows
- Import but don't import your NixOS modules
- NixOS Option Inspection
- Management Time
- Scaling past 1 million ELF symbol relocations
- Fish the bash way
- Nix secrets for dummies
- Nix remote building with Yubikey
- Learn Nix the Fun Way
- Reproducibility in Disguise: Bazel, Dependencies, and the Versioning Lie
- Speeding up ELF relocations for store-based systems
- Visualizing GitHub workflow run length time
- Hermetic, but at what cost?
- Abusing GitHub as a PyPI server
2023 2
2022 3
2021 10
- Using an overlay filesystem to improve Nix CI builds
- The yak shave for reproducibility
- A Nix Binary Cache Specification
- Investigating hydration times with Nix
- The search for a minimal nix-shell continued; mkShellMinimal
- A minimal nix-shell
- Eval the Nix
- Java, Nix & Reproducibility
- setting up a Nix Google Cloud Storage (GCS) binary cache
- JRuby and Sorbet
2020 23
- autopatchelf - what it can look like
- On-demand linked libraries for Nix
- Debugging a JNR-FFI bug in Nix
- Isolation using Java's ClassLoader
- Nix parallelism & Import From Derivation
- nix-copy-closure your nix-shell
- VPNs continued
- VPNs from first principles
- Tailscale is magic; even more so with NixOS
- NixOS; what's in a rebuild? Continued.
- NixOS; what's in a rebuild?
- mvn2nix; welcoming Maven into Nix's warm embrace
- quassel core on NixOS with Let's Encrypt
- nix coercion trick
- caching your nix-shell
- Packaging a Maven application with Nix
- what is bundlerEnv doing?
- setting up a Nix S3 binary cache
- my love letter to redo
- Containers from first principles
- bpf_helpers and you...
- Parallel Task Execution
- New blog. New format.