Cross-platform engineer trying to make native app dev as pleasant as web dev

Tokyo-to, Japan
I’ll forgive anything, just please implement ternary operators in GitHub Actions workflows
We’ve read your posts and heard your feedback. 1. We’re postponing the announced billing change for self-hosted GitHub Actions to take time to re-evaluate our approach. 2. We are continuing to reduce hosted-runners prices by up to 39% on January 1, 2026. We have real costs in running the Actions control plane. We are also making investments into self-hosted runners so they work at scale in customer environments, particularly for complex enterprise scenarios. While this context matters, we missed the mark with this change by not including more of you in our planning. We need to improve GitHub Actions. We’re taking more time to meet and listen closely to developers, customers, and partners to start. We’ve also opened a discussion to collect more direct feedback and will use that feedback to inform the GitHub Actions roadmap. We’re working hard to earn your trust through consistent delivery across GitHub Actions and the entire platform.
1
543
That sweet, sweet email just before Christmas informing that the Apple Developer Program License Agreement has been updated, as Apple are being forced to comply with new anti-competition regulation in Japan 🎄
401
Jamie Birch retweeted
Sadly, Fortnite will not return to iOS in Japan in 2025 as promised. Apple was required to open up iOS to competing stores today, and instead of doing so honestly, they have launched another travesty of obstruction and lawbreaking in gross disrespect to the government and people of Japan. Apple chose poorly. Again.
240
416
5,610
1,165,264
Look how much power you get with a simple CSS query casually implemented in Chromium as just another update. I don’t think React Native will ever catch up with web browsers.
Landing next month in Chrome 144: scroll-state(scrolled) This new scroll query value lets you style your UI based on the most recent scroll direction. This means you can change animation-direction based on last scroll and do things like these hidey-bars. I just progressively enhanced my personal site by adding this CSS-only scroll-up-to-reveal nav bar without affecting the existing UI at all. Learn more ⬇️🔗
5
795
Jamie Birch retweeted
~65.4% of transform time in @Expo is spent removing common language features that aren't supported in the Hermes engine. Upgrading to Hermes v1—in SDK 55—means all of the following transforms could be removed (assuming block scoping and async generators are enabled). This is partially why any bundler you use to target Hermes ends up being slow. Supporting this much Babel also makes it hard to conditionally use Babel alternatives for node modules. Major speed-ups are coming to Expo bundle times next year!
12
18
285
31,941
Jamie Birch retweeted
The long-awaited Standard JSON Schema spec has been published! 🔥 "Standard Schema for JSON Schema conversion" 🔥 day-one support from Zod, ArkType, and Valibot 🔥 support coming soon to AI SDK, Tanstack AI, and the MCP SDK
22
37
468
67,847
This year’s official Microsoft Ugly Sweater has “sold out in record time”, so they’re producing a second run for January
1
5
525
Just found this spare flash storage in my old camera bag. Imagine how much it’s worth now
2
538
One thing I like about compiled languages is that it can tell you definitively "this thing throws, so handle it or else". With JavaScript, I like the "neverthrow" philosophy. Catch errors at the source and return a Result.Err() instead. Don't make it the caller's problem!
It's a shame TypeScript's type system does not model exception types at all. Makes it super hard to predict all the ways a system could fail - you're forced to "just know" and keep it as mental state. Maybe I should explore going all "errors as values".
1
10
2,875
Dramatic shot of me asking what the metal fish is for
Replying to @birch_js
Look at this legend though
1
16
2,955
Jamie Birch retweeted
Very fun day hanging out with @birch_js at a Japanese folk house museum. It's so awesome when online heroes are super cool in real life ❤️
Meeting with the legend himself, @jmeistrich! Can’t wait to catch up again 😊
1
1
64
4,329
Now streaming my writing process! 🎙️ I'll be writing my frontend predictions for 2026. Come keep me company and give me your thoughts for 2026 as well! Link below.
1
1
376
Jamie Birch retweeted
sounds fake but I'm starting a company with my nemesis David E. ArkType and our first hire is @AndaristRake and our first product is now in beta
49
33
744
115,950
Meeting with the legend himself, @jmeistrich! Can’t wait to catch up again 😊
5
48
9,559
Jamie Birch retweeted
Let me take a moment to celebrate this monumental moment for React Native: This is the first release EVER without ANY breaking change! Updating 0.82 -> 0.83 will be as easy as changing the version in your package.json Our path to stability is bright ahead!
React Native 0.83 is now available! This release includes React 19.2, new React Native DevTools features, and support for new Web APIs. And, it's the first React Native release with no user facing breaking changes. reactnative.dev/blog/2025/12…
9
8
199
26,648
As a follow up to yesterdays post about RN Text memory consumption, I wanted to share some further details: On iOS, the Text component doesn't use native primitives like UILabel/UITextView but is rather a custom UIView subclass that renders text in a way similar to UITextView.
Part 2 of React Native memory footprint analysis: the Text component. This one gets interesting. Bear with me 🐻 On Android the case is simple, each Text instance takes around 43 KB in the release build. For iOS however... 🧵
2
4
46
7,447
Jamie Birch retweeted
Some fun UTF-8 history, as told by Rob Pike from Google in a 2003 email. "UTF-8 was designed, in front of my eyes, on a placemat in a New Jersey diner one night in September or so 1992. What happened was this. We had used the original UTF from ISO 10646 to make Plan 9 support 16-bit characters, but we hated it. We were close to shipping the system when, late one afternoon, I received a call from some folks, I think at IBM - I remember them being in Austin - who were in an X/Open committee meeting. They wanted Ken [Thompson] and me to vet their FSS/UTF design. We understood why they were introducing a new design, and Ken and I suddenly realized there was an opportunity to use our experience to design a really good standard and get the X/Open guys to push it out. We suggested this and the deal was, if we could do it fast, OK. So we went to dinner, Ken figured out the bit-packing, and when we came back to the lab after dinner we called the X/Open guys and explained our scheme. We mailed them an outline of our spec, and they replied saying that it was better than theirs (I don't believe I ever actually saw their proposal; I know I don't remember it) and how fast could we implement it? I think this was a Wednesday night and we promised a complete running system by Monday, which I think was when their big vote was. So that night Ken wrote packing and unpacking code and I started tearing into the C and graphics libraries. The next day all the code was done and we started converting the text files on the system itself. By Friday some time Plan 9 was running, and only running, what would be called UTF-8. We called X/Open and the rest, as they say, is slightly rewritten history. Why didn't we just use their FSS/UTF? As I remember, it was because in that first phone call I sang out a list of desiderata for any such encoding, and FSS/UTF was lacking at least one - the ability to synchronize a byte stream picked up mid-run, with less that one character being consumed before synchronization. Because that was lacking, we felt free - and were given freedom - to roll our own."
8
82
1,129
183,142
Jamie Birch retweeted
My talk with @SaadNajmi at @RNLConf is up! You might have seen me talking about React Native macOS a lot. This is my argument for why we should take React Native on desktop seriously and make apps good again✌️. And Saad shows off the cool new stuff! youtube.com/watch?v=XE7yKGDs…
2
3
35
10,069