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 👋
George Haidar
@disintegrator.dev
Confused and coding. Building code generators @speakeasy.com.
138 followers464 following151 posts
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.
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...
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...
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.
Consider what happens to code shown below when a new field is added to the ProductResult struct. To compound the problem, imagine a larger codebase where you're creating `ProductResult` values in a few places. Similarly imagine adding a field to `Product` and forgetting to fill it out before INSERT.
George Haidar reposted
Replying to @disintegrator.dev
I actually have a proposal for something like that. github.com/golang/go/is...
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 😞
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...
@dr-axel.de you might find this interesting after your recent post on enums too 🙂
George Haidar reposted
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 🚀
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-...
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
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-...
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.
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...
George Haidar reposted
Eurgh. Just use CUE and stop this madness. kro.run/docs/overview
For the last year and a bit, I've been using a local VM as my development environment. Initially, I was inspired by @mitchellh who shared about his setup a few years back. It's been a great experience which I've now written about: blog.disintegrator.dev/posts/dev-vi...
Hey @jay.bsky.team, I cancelled my X subscription yesterday and I will absolutely pay for Bluesky to help sustain the service/business/team. I’m sure there are great features that can be gated behind a subscription but as it stands I’d pay for the service as it is today.
In February, WIRED spoke with Bluesky CEO @jay.bsky.team about the X competitor opening sign-ups to all, how to crowdsource deepfake porn moderation, Jack Dorsey, and more. She says, she wouldn't "enshittify the network with ads."
I really wish there was a neat way to feed an async iterable into @tanstack.com query. Especially relevant for wrapping around LLM chat and paginated APIs.
George Haidar reposted
📣 Tomorrow is my birthday, and I want to do a giveaway! 3 random lucky persons who follow me and retweet this post will get a FREE license for the Mocking Techniques bundle! 🎁 www.epicweb.dev/testing 🎁 I will announce the winners next Thursday. Good luck!
George Haidar reposted
I want something like Tidbyt but that I can program and run completely locally. Tidbyt apps run in the cloud on their servers which I'm not a fan of. Do you know of something with similar build but that I can "wholly own" and program? tidbyt.com
Massively grateful that @kelseyhightower.com gave the tech community the nudge it needed to move over from X. The last few days I've spent more time here than there.