George Haidar
disintegrator.dev
George Haidar
@disintegrator.dev
Confused and coding. Building code generators @speakeasy.com.
Pinned
Hi there!
I'm a developer @speakeasy.com working on OpenAPI code generation. I'm obsessed with @typescriptlang.org, Go and building high quality developer tools.
Also into mechanical keyboards and gaming 👋
Hey @sockpuppet.org @fly.io, just wanted to flag that the flydotio Twitter account appears to be hijacked and is spreading crypto coin spam. I can't DM on bsky sadly, sorry for the public message.
October 7, 2025 at 1:02 AM
Ghostty is great but I am too reliant on iTerm's tmux integration so I'm switching back for now :|
May 27, 2025 at 10:00 AM
Since we're not going to get keyword arguments in @golang.org in the foreseeable, I've become very invested in using type definitions to "brand" common types in our codebase e.g. string, int, uuid.UUID and so on...
May 15, 2025 at 9:58 PM
It would be so cool if @pnpm.io could support single file scripting the same way `uv` does including specifying dependencies in at the top of the script file.
docs.astral.sh/uv/guides/sc...
Running scripts | uv
A guide to using uv to run Python scripts, including support for inline dependency metadata, reproducible scripts, and more.
docs.astral.sh
April 20, 2025 at 3:43 PM
I now firmly believe that the zero value concept for structs in @golang.org does more harm than good and have taken to running the exhaustruct linter through golangci-lint to prevent me from ever accidentally relying on it. I might write a post about this some day.
April 15, 2025 at 12:50 PM
Pleas hire Adam so he can keep making incredibly content and educate the rest of us. If I’m at all good at CSS, it’s because of him.
April 11, 2025 at 7:18 PM
I wonder if Go could benefit from object literal syntax that can be late-bound (if that's even a word) #golang
April 7, 2025 at 8:00 PM
No corepack? No problem, mise and aqua are here to make life easier. You can have different versions in different repos and mise will switch to the right ones automatically. And I haven't gone into how useful mise tasks are - so much better than `make` and npm scripts.
oh super, node voted to drop corepack from the distribution

incredibly disappointing

there goes my convenient setup 😞
March 20, 2025 at 3:32 PM
Amazing… One of our competitors just copies our docs for features we’ve built and they haven’t yet. Basically selling through.
March 18, 2025 at 11:26 PM
Who’s the best Python developer you know that’s looking for a job? You know… the sort that sets all
linters to strictest and has their finger on the pulse of the ecosystem. I want to meet them.
March 6, 2025 at 2:10 AM
I wrote about the main feature of @typescriptlang.org enums that I'm going to miss: TSDoc support on enum members. I hope the TypeScript team can port this over to union members as more folks migrate towards string unions instead of enums.

blog.disintegrator.dev/posts/ode-to...
An ode to TypeScript enums
Pouring one out for a fallen friend
blog.disintegrator.dev
March 2, 2025 at 5:11 PM
Reposted by George Haidar
The Event Destinations Initiative is a community effort aimed at creating a model for event interoperability between event producers and their consumers.
February 27, 2025 at 2:19 PM
I love TypeScript so effing much. I’m laughing so hard at the commitment to the bit.
Doom now runs in @typescriptlang.org types. What a journey this one's been.
February 26, 2025 at 11:50 PM
Excited to share what I've been working on! All @speakeasy.com TypeScript SDKs are getting MCP servers bundled with them for free. We think it's far too useful to have your API available to agents on day 1. We've been playing with a few from our customers' SDKs and it's magic. Stay tuned for more!
🤖 How do you make your API AI-ready? With the latest acronym hot off the press — MCP: Model Context Protocol. It's about to permanently change how we build software 🚀 ‎
February 25, 2025 at 5:38 PM
I still find it amazing that my brain can run Go, Rust, TypeScript code albeit slower than a computer but also faster in other ways. Like every bit of a program is reentrant in my head. You can be working through one sequence of code and then you can just jump right over and resume at another.
February 16, 2025 at 11:03 PM
I wrote about how the `using` keyword in @typescriptlang.org helps you move off the clumsy beforeEach / afterEach hooks in your test code when setting up databases and mock servers. Read more about it here:
blog.disintegrator.dev/posts/clean-...
Clean room tests with JavaScript's `using` keyword
A slick approach to test encapsulation when using a database
blog.disintegrator.dev
February 10, 2025 at 11:59 PM
What's your favourite compact/pancake lens for a Fujifilm X-T4? I want to go out more with my camera without having to fight with a bulky lens.
January 27, 2025 at 1:14 PM
Nothing is as simple as adding Expressive Code to an @astro.build project. If you use code blocks then do yourself a favor and install it to supercharge them with titles, copy/paste, line focus and more.

expressive-code.com
Expressive Code
Present your source code on the web, making it easy to understand and visually stunning. All batteries included!
expressive-code.com
January 19, 2025 at 8:49 PM
I decided to investigate whether @nodejs.org, @bun.sh and @deno.land supported HTTP/2 in their `fetch` implementations. Deno came out on top here by supporting it out of the box. Hope folks get behind WinterCG to formalize this so we get closer to true interop.
blog.disintegrator.dev/posts/http2-...
Fetch and HTTP/2 support in Node.js, Bun and Deno
It's a mixed bag
blog.disintegrator.dev
January 19, 2025 at 4:15 PM
I don't think the @typescriptlang.org module / moduleResolution confusion is going to subside until the TypeScript team drops obsolete configurations and refreshes `tsc --init`. Like `classic` and `node` being default module resolutions is actively harmful nowadays.
January 16, 2025 at 3:41 PM
My goodness Rust projects just eat up disk space. I know it's fashionable to ridicule node.js / npm but I think this is on another level.
January 16, 2025 at 10:55 AM
I've been invested in building a personal CLI tool with various utilities for my development workflow. Integrating it into my shell was one little challenge I solved early on and I wanted to share how I did it.

blog.disintegrator.dev/posts/what-a...
What are those shell init commands?
… and why do all these CLI tools want to add them to your shell?
blog.disintegrator.dev
January 11, 2025 at 6:18 PM
I am sad that cross-compiling Rust from Linux (aarch64) to Darwin (aarch64) is such an insurmountable challenge.
January 6, 2025 at 12:31 AM
Is it just me or has the Slack app on iOS gotten really sluggish? Way too often the app hangs when changing channels and orgs or when I start typing a message.
January 3, 2025 at 9:02 PM