Safia Abdalla

Safia Abdalla

@captainsafia.com

👩🏾‍💻: building things @warp.dev, prev: @microsoft.com. ✨: dream big and follow through even bigger. 🏗️: always building something

2.2K followers235 following704 posts

Pro-tip: dig up some PRs where you've gotten some great code review and ask your coding agent of choice to generate a code review skill based on the style of feedback left by the reviewers in those PRs.

Don't ask Gemini to review your code like a senior engineer who hates your PR and wants to block it unless you're in an emotionally healthy space.

I needed a landing page for a new project and was completely stuck on the UI. I tried v0 a try and the first feature that caught my eye was a little magic-wand button that refines your prompt before generating anything. Such a simple idea, but it instantly brought me joy.

Feel a bit of loss at the decline of GitHub as a *social coding* platform. It seems like people are quick to dismiss that premise in the era of AI-enabled coding but I think there is still value in providing a space for communal ownership over software.

I joked about the "QA engineer for my agents" thing earlier but it's honestly so peaceful to just sit and polish software with the help of agents. You can really fight a lot of slop with intentionality and attention to detail.

Such an unreal experience watching a agent build and run a Rust app and then test a feature in a VM. I'm excited for people to start using this app soon...IYKYK 😉

This is how I bucket PR reviews: - Request changes: Never use this lol - Comment only: Not ready to merge; blocking feedback - Comment + approve: Ready to merge; feedback is non-blocking; trust dev to do the right thing - Approve: Ready to merge What’s your bucketing?

You can name Git stashes with the `-m` flag. ``` git stash -m "client-db-iteration"` ``` I've been using this to "discard" agent code I don't like so I can retrieve it later. You can also tell the agent to look at previous stashes by name as context in agent sessions.

The Coinbase commercial lulled everyone in my bar into a false sense of security so we started singing…then we all booed when we realized it was a crypto ad and that’s how I know I picked the right watering hole. 😆

My first little change has landed in @warpdotdev! Warp's got a nice footer that integrates with terminal-based agents to give you quick access to a rich diff viewer, voice input, and more. I added the agent footer support to Copilot! 🤖 😇

I’m excited to share that I’ve joined the team at @warp.dev. I’ve long loved the terminal and I appreciate the power of AI-enabled software development. Warp brings those together in a way I’m excited to learn from and help build with a super product-focused team. 💻️ 🐚 ❤️ 🤖 🚀

After about 6 years of mostly having some sort of fitness tracker attached to me, I traded in both of my Apple Watches today. I'm experimenting with different ways of tracking progress and measuring myself this year...we'll see how it goes 😅

The more software you write the more intuition you develop for the kinds of things that go around it. Letting AI speedrun through the drudgery lets you develop that big picture intuition sooo much faster.

I think I just had my "Codex moment." I’m using it to do a package upgrade across the nteract monorepo, a ~5-year catch-up with the JS ecosystem. It does a better job managing the context window and seems to "understand" the bigger goal of a large upgrade better than Claude or Copilot.

Ugh, the bad thing about the point I'm at right now is that I find it really hard to use languages that don't have a built-in concept of pattern matching. Once you discover that capability, it's just impossible to go back.

Maybe I've got rose-colored glasses but I love open source too much to believe it will not survive this AI wave. There's just something too profound about putting an idea out there and having people instantly build on top of it. I refuse to believe that will lose value or go away.

Every time I touch an nteract package it's like walking through a JS ecosystem time capsule. Case in point: remember Enzyme for testing React components? lol

After 7 years, my time at Microsoft has come to a close. I grew from a green dev into a bonafide engineer, shipped work I’m proud of, and learned what it takes to build software that lasts from amazing people. Taking a short breather then on to the next adventure! 🚀

Safia Abdalla reposted

I am using git worktree for years, and used only 3 till now 🤔 2 for development, and 1 for the reviews. I liked the idea of @captainsafia.com to use worktree in place of branches. So, I had a look into her grove tool, very nice 🤩 and started to port it to .NET 10 AOT going from 108 MB to 5.73 MB 😍

Safia Abdalla@captainsafia.com

OK, decided to YOLO ship it and cut a v1 of this. 🔗: safia.rocks/grove/ On to the next thing, easter egg for what that is in the video 😉

It's amazing how fast you can act on your little creative impulses now. Thought of this while making dinner and got it done with some prompts while eating. It's a changelog based on my commits for the week that updates on a cron. cl.safia.dev p.s. hover over the weeks for a little easter egg

I’m kinda bummed the aurora viewing window didn’t end up materializing tonight Here’s a photo I took from my backyard the last time it was out

I know it’s bad for the environment and we’ll probably pay for it with wildfires in the summer but I’ve been loving these dry and sunny winter days in the PNW for running.

The tech industry has a credentialism problem and you can see this most clearly in how people react when certain key figures, like Linus, adopt AI tools. Try things out yourself and don’t rely on epistemic outsourcing.

Cooked up a homepage for Hone on one of the domains I bought. No matter how hard I prompt, LLM-generated UIs always drift toward the mean. This isn’t quite the visual style I want but I need to think it through and articulate it better. I like what I did with the footer tho 😇 hone.safia.dev

Safia Abdalla reposted

It's so nice to see the Hone LSP come to life in Vim! Still some polishing to do and I need to figure out how to get semantic highlighting working but I got giddy seeing the completion dropdowns appear 🥳

Started prototyping a VS Code test explorer for Hone. Got far enough to realize I probably didn't need to focus on a good IDE experience. Pro: discovered the Common Test Report Format. Standardized, machine-readable test output feels like good thing these days.