Sign in

Tomek Czajecki

@tchayen.com
940 followers 213 following 110 posts

EM @expo.dev working on EAS product infrastructure I blog about my hobbies – a mix of graphics programming and gamedev – see tchayen.com

PostsRepliesMedia
Tomek Czajecki @tchayen.com · 05/05/2025
A use case for LLMs where they shine the most for me is doing research for non-urgent online shopping. Sometimes I have very specific requirements, like Japanese rice cooker that cooks rice for a single person not a village and ships to Finland. Or a 5K IPS screen, ideally >60Hz
170
Tomek Czajecki @tchayen.com · 05/05/2025
I don't know how I survived this long recompiling WASM binary after every change but I finally wrote a mini Vite plugin for HMR. Now when I change anything and save the file, WASM module is automatically compiled and reloaded.
Screenshot of the browser demonstrating HMR reload of the WASM module.
270
Tomek Czajecki @tchayen.com · 25/04/2025
It's crazy how Cursor packs two opposite user experiences in one app. Tab autocomplete is reading my mind, while chat agent mode feels like trying to get the dumbest coder I have ever met to fix my code without giving him ability to run it.
040
Reposted by Tomek Czajecki
Software Mansion @swmansion.com · 03/04/2025
⚙️ Over-the-air updates made easy by @expo.dev team! Learn the ins and outs of EAS Update, including native fingerprints, preview deployments, and the latest JS API features at the App.js 2025 workshop. 🎟️ appjs.co/tickets#Work...
1152
Tomek Czajecki @tchayen.com · 31/03/2025
My watch told me my sleep goal was met but then I checked the app and turns out it included yesterday evening nap. Well, explains why I don't feel like my sleep goal was met
030
Tomek Czajecki @tchayen.com · 21/02/2025
I was working on a WebGPU demo and decided to try how fast I can make it. Zig in WASM generates a buffer with command stream sorted to minimize GPU state changes. This is 10k individual draw calls, unoptimized, no instancing, no render bundles. Every object is controlled separately.
1121
Tomek Czajecki @tchayen.com · 11/02/2025
Asked gemini for WebGPU setup with several cylinder models and orbiting camera. Got interstellar scene (unfortunately had to first spend 15 minutes to fix it).
070
Tomek Czajecki @tchayen.com · 07/02/2025
Friday is the day of hard decisions: which food that makes my tummy hurt should I order. Today it will be… drumroll 🥁 … chicken wings
050
Tomek Czajecki @tchayen.com · 03/02/2025
Writing a blog over a span of several years is a great practice in fighting perfectionism. I hate most of my old blogposts. The problems I was solving were poorly defined, approach badly explained. The scope so small that I wouldn't bother posting about it now.
1130
Tomek Czajecki @tchayen.com · 29/01/2025
Recently Arc started randomly changing window size and now all the open non-pinned tabs went blank and don't refresh. How does unmaintained software get more buggy over time lol.
130
Tomek Czajecki @tchayen.com · 27/01/2025
Just copied some code from GitHub for a change, not from LLM. Someone tested it, ran who knows how many times and even wrote unit tests. Worked on the first try. Incredible feeling. I already miss it.
050
Tomek Czajecki @tchayen.com · 27/01/2025
Uhhh… hours_wasted_because_my_struct_was_stack_allocated_and_should_have_been_on_heap += 3. I was sitting with debugger staring at two memory regions and pulling my hair wondering why one and changes one doesn’t. Having code run orders of magnitude faster than equivalent JS comes at a price…
040
Tomek Czajecki @tchayen.com · 26/01/2025
I am trying Biome on some side projects and loving it so far. Happily haven't had to touch the default config yet, but forcing me to omit else when there are earlier returns is just plain wrong.
120
Tomek Czajecki @tchayen.com · 21/01/2025
When you are working on computational geometry problem using half-edge data structure, every problem is an edge case
080
Tomek Czajecki @tchayen.com · 20/01/2025
Tried GPT-4o for the first time (when it came out I was using Claude 3.5 Sonnet and wasn’t looking back). Initially 4o started by impressing me with one or two super solid code samples but the usual problems came quickly – it was hallucinating things and getting stuck in a loop on a fix attempt.
120
Tomek Czajecki @tchayen.com · 06/01/2025
I love when after a flu my body decides that afternoon naps were actually the sleep and the night sleep was an extended nap, which we don’t need to do anymore.
010
Tomek Czajecki @tchayen.com · 01/01/2025
There’s this weird mix of pride and disappointment when I ask Perplexity about a problem and it quotes back my blogpost. Good for me I guess but I am sorry to everyone if that’s the best resource out there. It’s just my notes from trying to learn that – they often don’t age well.
1150
Tomek Czajecki @tchayen.com · 30/12/2024
Small weekend (I lost track of time anyway) project: mesh picking in WebGPU. There's a render pass which draws scene to a r32_unit texture where color of mesh is its ID. Then a compute shader given mouse coordinates writes which color it was to a tiny buffer which is mapped and read back CPU side.
Screenshot of an app showing very simple 3D scene with debug text showing which object is being hovered.Screenshot from RenderDoc showing color picking texture where each mesh is drawn using color corresponding to its ID.
160
Tomek Czajecki @tchayen.com · 30/12/2024
Oh I forgot to run device.tick() and that’s why WebGPU read back from buffer in Dawn was so slow (happening every 7th frame which is kind of weird on its own). In old programming fashion, I found solution in GitHub issues of a completely unrelated project – Swift bindings for WebGPU.
030
Tomek Czajecki @tchayen.com · 29/12/2024
Note to self: writing texture to a buffer and reading from it in WebGPU is trickier than I expected. Mapping buffer in my particular case seems to be slow, only happens on every 7nth so it must be 100+ ms.
130
Tomek Czajecki @tchayen.com · 23/12/2024
Programming in the evening is always like: hmm what was I doing? Maybe better question – why do I not remember that? Oh, it's 2 AM, right…
190
Tomek Czajecki @tchayen.com · 21/12/2024
When someone is showing me how my code works in production
0131
Tomek Czajecki @tchayen.com · 04/12/2024
I had 20h between leaving home and entering hotel in NYC. Spent half of that time watching the X-Files (for the first time!). Woah, it’s way better than I expected
390
Tomek Czajecki @tchayen.com · 19/11/2024
Proud to announce that I also got my first snow of the year just now
1100
Reposted by Tomek Czajecki
Expo @expo.dev · 18/11/2024
🥳 It's time to party! We have announcements, blog posts, videos, and livestreams scheduled throughout the week. ⚡ And we're getting things started today with an SDK 52 Highlight video: youtu.be/quZv3uKSEfY?...
youtu.be
Expo SDK 52: Our largest release ever!
YouTube video by Expo
620831
Tomek Czajecki @tchayen.com · 15/11/2024
I don’t see bluesky taking off in Finland any time soon. Way too much clouds in winters here
150
Tomek Czajecki @tchayen.com · 13/11/2024
How it feels here after the last month on twitter
Cute young can't with closed eyes and a tail up with a blue butterfly sitting on its nose.
2150
Tomek Czajecki @tchayen.com · 07/11/2024
Accidentally loaded tonemapping LUT as RGBA8 instead of RGB9E5 and made this scene way more artsy than it was supposed to be
The scene is several default blender monkey models on a plane. Bug causes it to have psychodelic/surreal look, dominated by pink, turquoise and mint.
081
Tomek Czajecki @tchayen.com · 02/11/2024
React Native tip of the day: For perfectly juicy chicken breasts, bake at 200°C/400°F and use a meat thermometer. Remove from oven when internal temperature reaches 76°C/169°F. This became my go to method for making chicken for lunch.
3111
Tomek Czajecki @tchayen.com · 31/10/2024
What’s happening why is everyone moving from the bird site to the butterfly site at the same time
9200
Tomek Czajecki @tchayen.com · 11/05/2023
App.js conf starting now
090
Tomek Czajecki @tchayen.com · 06/05/2023
Ok so this is why you were all silent on twitter
030