Bug Repellent
The blog of Safia Abdalla, a software engineer and writer.
Home
Archive
GitHub
Bluesky
About
© 2025. All rights reserved.
Archive
2025
September
07
Building custom deployment pipelines with Aspire
03
Git worktrees for fun and profit
2024
May
27
A deep dive into OpenAPI support in ASP.NET Core
2022
October
19
A deep dive into endpoint filters in ASP.NET Core 7
2021
August
21
Parameter optionality in Minimal APIs
2020
November
10
Under the hood with debugging in Blazor WebAssembly
October
26
Rolling in render trees
14
Combing through ComponentBase
08
Under the hood with routing in Blazor
March
26
Sorting that's smooth like butter
2018
December
04
Advent of Code Day 3
03
Eh, ship it!
01
Oh gosh, I’m blogging again
September
20
Writing to win friends and influence people
May
18
A purposeful hiatus
17
Looking into curl: part 2
14
Looking at the curl stack trace: part 1
11
Looking at how `curl` works through stack traces
10
What happens when you run `sudo !!`?
07
Looking at the stack trace for `ls`
04
What do `cp` and `mv` do under the hood?
03
I finally figured out how Unix redirection works under the hood
01
Reveling in redirects: exploring Unix input/output redirection
April
28
What happens when you run `cp` on the command line?
26
Peeking into `pwd`
24
Unraveling `rm`: what happens when you run it?
21
Digging further into the curl code base
18
Figuring out how `curl` stores configurations
16
Curling up with the `curl` code base
13
Breathing room.
11
Sliding into security with scrypt
09
Answering “How do I write?”
06
Doing user interviews while Black
04
Back in style: Twitter Bootstrap
02
A blast from the past: Node.JS
March
30
Looking at the first commit of Redux
28
How does `git add` work under the hood?
26
A complete story of what happens when you run `git commit`
23
Learning more about how commits are represented in Git
21
36 lessons learned over 3.66 years
19
Reading code late at night and realizing that it’s not a good idea
16
What’s inside the `.git/objects` directory?
14
How does Git know if you have uncommitted changes in the working tree? (Part 1)
12
How does Git store working tree state?
09
Trying to figure out how git-status works: a saga
07
What’s in a git config?
05
What’s inside the .git directory?
02
Getting into git init
February
28
Looking into ls
23
What happens when you run sudo?
21
Some thoughts on “productivity”
19
Thoughts on Black Panther
16
We have no idea what we’re doing.
14
How do I get started contributing to open source?
12
A retrospective on my tech job search
09
Three easy pieces: data science
07
Discovering async hooks
05
Random thoughts on “heroes”
02
In which I answer questions about conference speaking
January
31
Solving a problem then thinking too hard about how you solved the problem
29
Tips for reading new codebases
26
How do Promises work under the hood?
24
Problem solving with Safia: the optimizer’s dilemma
22
How I learned to learn
19
Node module deep-dive: os
17
How does Node load built-in modules?
15
How does the Node main process start?
12
Node module deep-dive: EventEmitter
10
How does process.binding() in Node work?
08
Node module deep-dive: fs
05
Node module deep-dive: child_process
03
Node module deep-dive: module
01
How to (re-)launch a product
2017
December
29
Things I learned in 2017
27
Vacuuming your app
11
What I learned when I tried to hack my smart vibrator
04
Node module deep-dive: Buffer
November
30
My grandmother passed away today.
27
Node module deep-dive: console
20
Node module deep-dive: WriteableStream
17
How to monetize open source
13
Node module deep-dive: path
10
Some ramblings on the future of web content
06
Node module deep-dive: querystring
03
Rules of engagement in an open source issue board
October
30
Evangelizing for open source
2016
December
06
So you wanna open source a project, eh?
04
Open source: the other side of the contract
November
29
The data fiend’s dilemma
27
Micromaking kindness: an experiment
March
30
How To Create A Welcoming and Inclusive Open Source Space
14
Hacking My To-do List
February
15
Programmers, Assemble!
08
The Good, The Bad, The Unwanted
08
6 non-code contributions you can make to open source
04
Businesswoman Tips
January
30
Future Fallacies
10
Thanks for the Compliment!
08
T is for Transitions
05
The Definitive Story of How I Got Into Tech
02
The Zen of Safia
2015
December
31
What 2015 Taught Me About Running a Startup
27
How will the children of the future learn about science?
13
Let’s Hear It For Small Data
September
22
beyond the code talk sketch notes