Chris Perko (@ChrisJPerko) header
Chris Perko (@ChrisJPerko) profile picture

🅰️ @GoogleDevExpert in #Angular 🎤 Conference speaker and organizer 👨‍💻 Engineering at @cnn

Atlanta, GA
Joined April 2009
Photo by Chris Perko (@ChrisJPerko)Photo by Chris Perko (@ChrisJPerko)Photo by Chris Perko (@ChrisJPerko)Photo by Chris Perko (@ChrisJPerko)Photo by Chris Perko (@ChrisJPerko)Photo by Chris Perko (@ChrisJPerko)Photo by Chris Perko (@ChrisJPerko)Photo by Chris Perko (@ChrisJPerko)
🚀 @AnalogJS 3. 0 beta for @angular is out! - Composable @vite_js plugins for Analog, Angular, and Nitro. - @nitrojsdev v3 is opt-in. - Type-safe Routing. - Coding agent assisted migrations. - And more! 📚 Full migration guide: v3.analogjs.org/docs/guides/…
7
21
3
86
3,182
The Atlanta DevCon 2026 schedule is LIVE! 🎉 Explore the full lineup, find your favorite speakers, and start planning your conference day. 📅 October 17, 2026 🔗 Schedule: atldevcon.com/#schedule
2
3
52
🚀 Speaker Announcement: Chris Perko is joining Atlanta DevCon 2026! 🎤 From Zero to AI-Powered: Building Modern Web Apps with Firebase Genkit Learn how to build production-ready AI features with Firebase Genkit, AI Logic, Angular & React. 🎟️ Tickets: events.ticketleap.com/ticket…
1
4
115
I'd watch more soccer if it were always like this! – at North Decatur, GA
2
95
This is who runs this account
4
165
🇦🇷 – at North Decatur, GA
2
61
Chris Perko retweeted
Alright @angular fam: I've got a big update for those of you building agentic experiences into your Angular apps. We're launching @CopilotKit for Angular in a few days. 🥳 Check back in on July 23rd. 👀
4
18
2
69
5,898
Staring blindly at a loading spinner for 15 seconds while an AI pipeline runs is a broken user experience. If you are building multi-step AI features, waiting for the entire backend loop to finish before sending a single byte to the client feels incredibly sluggish. You don't need complex WebSockets or heavy database polling to fix this. You can stream real-time execution telemetry milestones natively from a serverless backend directly into reactive Angular Signals. Here is how the architecture hangs together: The Backend Orchestration: Use Firebase Genkit’s onCallGenkit wrapper to expose a type-safe, streaming Callable Cloud Function. By leveraging the streamingCallback argument, you can explicitly push status keys down the wire (parsing_structure, analyzing_impact) before triggering your final structured Gemini 3.5 Flash model generation. The Client Interceptor: On the Angular side, Firebase’s standard httpsCallable handler returns a stream reference containing an asynchronous iterable. You can loop through these incoming chunks in true real-time using a clean for await...of block. Strict State Encapsulation: To keep data flow predictable, manage the internal states using private WritableSignals, but expose them to your components as true read-only states using .asReadonly(). This stops components from accidentally calling .set() or .update(). Declarative Templates: With your step states bound to a Signal, your template drops complex RxJS mapping or async pipe overhead entirely. Modern control flow blocks like @switch handle the visual progression beautifully. The major engineering win here is that passing these milestones natively in-memory via HTTP chunks completely bypasses the need to write temporary status strings to database rows, cutting cloud read/write storage overhead to zero. I wrote a complete, step-by-step implementation guide detailing the full backend and frontend code blocks. Link to the full post is in the reply below.
4
2
118
Here is the full write-up with the complete code blocks and architectural deep dive: perko.dev/blog/post/2026-07-… – at North Decatur, GA
1
44
Working on this year's DevFest SLC site and can't wait to share it! Like last year, we are of course using @analogjs! – at North Decatur, GA
1
61
Fable 5 will be available again. A lot of people look at the Fable story and see the U.S. government as the bad actor that blocks technological progress by restricting access. But that is too simple. 1/5 soverius.ai/blog/quantized-a…
1
1
3
599
🤖 My @AnalogJS CI was 6 GitHub Actions jobs running in series. Sound familiar? Re-installing deps each run, re-encoding a build graph @nxdevtools already had. I handed the rewrite to a coding agent in one prompt. It moved everything onto Nx Agents. Time-to-green: ~12m → ~7.5m. No more shame from @StalkAltan My latest post 👇
3
7
2
28
3,012
Did you miss our GDG Salt Lake City event in June? Don't worry, both talks are now on your YouTube channel! 👇
3
2
132
AI Development Architecture and Processes by Adam Dunn youtu.be/O00sFamSrBQ
1
1
84