Sign in

Daniela Petruzalek

@danicat83.bsky.social
159 followers 66 following 204 posts

Senior DevRel Engineer @Google | Go, Gemini & AI Agents | Keynote speaker | Retro games, anime & cats =^.^= | danicat.dev

PostsRepliesMedia
Daniela Petruzalek @danicat83.bsky.social · 08/10/2026
Thanks a lot #devoxx for having me! It was not my typical crowd, but you did show up to my talk "State of Agentic Coding" and it was a pleasure to be on stage! The deck and the supporting code are available on: github.com/danicat/devoxx2026 #agentic #coding #antigravity
030
Daniela Petruzalek @danicat83.bsky.social · 08/10/2026
If you missed the talk the slides won't make much sense as a good part of it was me showing code and demoing. But if you are curious about it you can read the full material in text format on my blog: danicat.dev/posts/gemini-for-go-developers-part-3-building-agents/
danicat.dev
Gemini for Go Developers: Building Agents in Go
Part 3 of Gemini for Go Developers: build a Retro Game Appraiser agent using the Go GenAI SDK, Genkit, and Google ADK before deploying to Cloud Run.
000
Daniela Petruzalek @danicat83.bsky.social · 08/10/2026
It took me a while but the slides for my talk "A Tale of Three Agents" delivered at GDG London last week are finally up on Speakerdeck: speakerdeck.com/danicat/gdg-london-a-tale-of-three-agents #golang #ai #agents #adk #genkit
speakerdeck.com
[GDG London] A Tale of Three Agents
Talk presented at the GDG London Meetup on September 30th 2026
121
Daniela Petruzalek @danicat83.bsky.social · 07/10/2026
Never thought this day would arrive, I’m speaking at a Java conference! 😆 Although I wonder… are language conferences really language conferences these days? If you are around, come see my talk tomorrow at 11:50: State of Agentic Coding. ☺️
020
Daniela Petruzalek @danicat83.bsky.social · 01/10/2026
Im curious why you think your metrics on verbosity and erosion would be better than typical function length and cyclomatic complexity. My problem with anything based in LOC is that you might incentivise wrong behaviours. Didn’t work for humans and I don’t see it working for agents
100
Daniela Petruzalek @danicat83.bsky.social · 24/09/2026
Do you use any other automation besides prompts? I try to put deterministic steps in tools as prompts are not as reliable as a script, for example.
201
Daniela Petruzalek @danicat83.bsky.social · 24/09/2026
As usual, if you need any help feel free to drop me a message and I'll do my best to support you. Have fun!
000
Daniela Petruzalek @danicat83.bsky.social · 24/09/2026
You can check the source code for AIDA v3 at github.com/danicat/aida. If you want you to play with A2UI on your own, I highly recommend you start with a simpler use case though, and for this the codelab codelabs.developers.google.com/adk-gemini-a2ui is a good starting point.
github.com
GitHub - danicat/aida: Your friendly emergency diagnostic assistant
Your friendly emergency diagnostic assistant. Contribute to danicat/aida development by creating an account on GitHub.
100
Daniela Petruzalek @danicat83.bsky.social · 24/09/2026
Yesterday I presented the talk "Rich Interfaces with A2UI: The Good, The Bad and The Ugly" at AIDevCamp by GDG London. Now the presentation is accessible at speakerdeck.com/danicat/gdg-london-rich-interfaces-with-a2ui-the-good-the-bad-and-the-ugly
speakerdeck.com
[GDG London] Rich Interfaces With A2UI: The Good, The Bad and The Ugly
Talk presented at AI DevCamp by GDG London (https://aidevcamp.gdg.london/) on September 23, 2026. Source code: github.com/danicat/aida
100
Daniela Petruzalek @danicat83.bsky.social · 24/09/2026
Most engineers don't recognise code reviews as part of the job, but it is one of the most important parts. The only thing worse than reviewing AI-generated code is reviewing AI-generated code that not even the author cared about. Don't be that person. Future you and your team will appreciate it.
010
Daniela Petruzalek @danicat83.bsky.social · 24/09/2026
To stop the snowball without burning out: 1. Automate the pedantic reviewer: linters and tests to catch sloppy code. 2. Review what matters: core business rules. 3. Fix secondary code by sampling. 4. Continuous improvement: refine agent skills and prompts after each session.
110
Daniela Petruzalek @danicat83.bsky.social · 24/09/2026
Now hand that to an agent. Agents have zero taste and assume existing code represents acceptable practice. Pre-trained on public code, they already skew mediocre. Stop reviewing, and old code encourages bad practices, quickly snowballing to unmanageable levels.
100
Daniela Petruzalek @danicat83.bsky.social · 24/09/2026
The broken glass was the trigger. It signaled that nobody cared, so collectively people stopped caring as well. The exact same thing happens with code. Once there is a broken window (typos, bad names, poor tests, wrong abstractions), it triggers our psychology to stop caring, snowballing over time.
100
Daniela Petruzalek @danicat83.bsky.social · 24/09/2026
This problem always happened with human code, but much slower. Some tried to stop it and were deemed pedantic reviewers: loved by few, hated by most. In 1969, researchers left an abandoned car untouched for a week. Then they smashed one window. Within hours, passersby stripped the vehicle bare.
100
Daniela Petruzalek @danicat83.bsky.social · 24/09/2026
Why is it that when you start a task with a coding agent everything seems to go well, but then suddenly it spirals into slop territory producing horrible code?
200
Daniela Petruzalek @danicat83.bsky.social · 21/09/2026
I'm thinking about creating a new podcast (for the lack of a better word) called "Go Live Fridays". The goal is to do a 40 min to 1 hour conversation with one developer about the things they care about and, hopefully, are not going live with them on a Friday! (see what I did there?)
A warm watercolor illustration of two cute Go gopher mascots wearing headphones and speaking into vintage microphones while hosting a podcast together in a cozy studio.
000
Daniela Petruzalek @danicat83.bsky.social · 18/09/2026
I've been wanting to play with YouTube for a while. To start, I recorded this small video showcasing my workshop at GopherCon LATAM 2026 that happened a couple of weeks ago. It is short but hopefully it captures all the fun we had building games with Go, Gemini and Antigravity! youtu.be/i_5uKHL7sR4
youtu.be
Build a 2D game with Go and Antigravity in 1 hour
This is a quick recap of the Gemini for Go Developers workshop I presented at GopherCon LATAM 2026. The attendees started learning about the Gemini model family and how to code using Antigravity, for…
010
Daniela Petruzalek @danicat83.bsky.social · 02/09/2026
Mensagem clara hoje na GopherCon LATAM 2026: o importante hoje não é mais escrever código, mas saber ler código e identificar os problemas que a IA está introduzindo. IAs tem uma tendência a implementar soluções mais complexas do que necessário. O senso crítico humano é o diferencial.
010
Daniela Petruzalek @danicat83.bsky.social · 02/09/2026
Lições da Gophercon LATAM 2026: cachorro não é chapéu! Excelente talk por Carlos Henrique Gandarez sobre reconhecimento de selfies com IA usando Gemma 4 e Kronk. Evento começando com algo nível! 🥰
010
Daniela Petruzalek @danicat83.bsky.social · 02/09/2026
Finally, I compare operational runtimes: Google Cloud Run and the Gemini Enterprise Agent Platform. 📄 Read the full article and runnable code on the blog: danicat.dev/posts/gemini...
000
Daniela Petruzalek @danicat83.bsky.social · 02/09/2026
1. Go GenAI SDK (google.golang.org/genai): Low-level API mapping. Great for CLI tools and single binaries. 2. Genkit Go (genkit.dev): Flows and Tools, struct schema reflection, and built-in OpenTelemetry. 3. Google ADK (adk.dev): Multi-agent hierarchies, runners, and session resumption.
100
Daniela Petruzalek @danicat83.bsky.social · 02/09/2026
If you want to build AI agents in Go, where do you actually start? In Part 3 of "Gemini for Go Developers", I wanted to see how each option feels in practice. To test them, I built the same multi-tool agent across all three stacks 🧵👇
100
Daniela Petruzalek @danicat83.bsky.social · 31/08/2026
Read the full guide and explore the open ecosystem: 📄 Article: danicat.dev/posts/the-pr... 🌐 My personal Agent Skills catalog: skills.danicat.dev 🥋 kungfu CLI: github.com/danicat/kungfu
000
Daniela Petruzalek @danicat83.bsky.social · 31/08/2026
To keep skills sharp and avoid token bloat: • Refinement: Use /skill-optimizer for token budgets • Agent Dreaming: Run /learn in Antigravity to extract recurring fixes from past sessions • JIT Streaming: Load skills on-demand with the pure Go kungfu CLI to keep global context clean
100
Daniela Petruzalek @danicat83.bsky.social · 31/08/2026
I classify skills into 3 levels: 1. Docs: Injects modern, idiomatic code when models hallucinate obsolete APIs. 2. Process: Bundles deterministic scripts/CLIs with instructions for repeatable chores. 3. Traits: Shifts cognitive posture (/grill-me, /double-diamond, /uno-reverse).
100
Daniela Petruzalek @danicat83.bsky.social · 31/08/2026
Skills are a fairly new standard, but they've become so ubiquitous that it's hard to believe that just one year ago they didn't even exist. In my new article, I explore why the "skill of creating skills" is the most important skill a developer should master nowadays (pun intended).
100
Daniela Petruzalek @danicat83.bsky.social · 31/08/2026
"I know kung fu." - actually, I don't. But my coding agent does! Every time Antigravity loads a skill on demand, I immediately think about the classic scene in The Matrix where Neo has kung fu "installed" into his brain. 🧵👇
The Pragmatic Guide to Agent Skills
220
Daniela Petruzalek @danicat83.bsky.social · 25/08/2026
Read the full chapter and runnable Go code walkthrough on the blog: danicat.dev/posts/gemini... #Golang
000
Daniela Petruzalek @danicat83.bsky.social · 25/08/2026
1. Bare Go GenAI SDK: 1:1 wire protocol with explicit loop control. 2. Genkit Go (genkit.dev): strongly-typed Flows with automatic schema reflection and OpenTelemetry tracing. 3. Google ADK (adk.dev): modular multi-agent orchestration with decoupled session persistence.
110
Daniela Petruzalek @danicat83.bsky.social · 25/08/2026
Writing a basic agent loop in Go takes 20 lines of code. Building a production agent takes a deliberate architecture. In Part 3 of "Gemini for Go Developers", we dissect agent mechanics and build a Retro Game Appraiser across three Go paradigms:
Gemini for Go Developers: Building Agents in Go
120
Daniela Petruzalek @danicat83.bsky.social · 25/08/2026
Read the full chapter and runnable Go code walkthrough on the blog: danicat.dev/posts/gemini... #Golang
000
Daniela Petruzalek @danicat83.bsky.social · 25/08/2026
1. Bare Go GenAI SDK: 1:1 wire protocol with explicit loop control. 2. Genkit Go: strongly-typed Flows with automatic schema reflection and OpenTelemetry tracing. 3. Google ADK (v2): modular multi-agent orchestration with decoupled session persistence.
110
Daniela Petruzalek @danicat83.bsky.social · 24/08/2026
[8/8] AI was criticized for being a "stochastic parrot." But if you blindly copy and paste AI outputs without understanding what the machine is doing, aren't you the parrot? AI does not replace mental models. If you explore and break things down, you will master engineering faster than ever.
000
Daniela Petruzalek @danicat83.bsky.social · 24/08/2026
[7/8] Now with AI, finding information is a non-issue. You do not have to spend hours hunting for code samples or learning esoteric languages just because what you need only exists in them. You can ask AI to generate bespoke code and dissect it interactively. No questions are left unanswered.
110
Daniela Petruzalek @danicat83.bsky.social · 24/08/2026
[6/8] Over the years, Geocities pages gave way to Stack Overflow and GitHub. Search evolved, connectivity got better, and knowledge became more accessible. Technology moved on, making much of what I learned obsolete. One thing is always relevant though: the process to learn itself.
100
Daniela Petruzalek @danicat83.bsky.social · 24/08/2026
[5/8] There was only so much I could learn from Gorilla or Norton. Code to study was limited and access was hard. To expand my horizons, I had to visit the library with a box of floppy disks and download tutorials over a dial-up connection.
100
Daniela Petruzalek @danicat83.bsky.social · 24/08/2026
[4/8] Later, my father brought home "Assembly Language for the IBM PC" by Peter Norton. I did not have an assembler, but the first part was doable using "debug" (an MS-DOS program). It gave me the foundations for understanding how CPU registers, memory segments, and the machine work.
100
Daniela Petruzalek @danicat83.bsky.social · 24/08/2026
[3/8] In the beginning I could not differentiate a language keyword from a variable name, so I would blindly hit the F1 key over every single word in hopes of getting a help topic. QBASIC documentation was surprisingly good. From Gorilla, I learned variables, functions, and graphic modes.
100
Daniela Petruzalek @danicat83.bsky.social · 24/08/2026
[2/8] When I was 14 my father bought our first computer: a 486 DX2 with 4MB of RAM and DOS 6.22. I spent many hours every day doing silly things on it while I tried to learn how it worked. One day I came across a file that would change everything: "GORILLA.BAS". A game. Written in BASIC. Jackpot!
101
Daniela Petruzalek @danicat83.bsky.social · 24/08/2026
[1/8] I believe this generation can master software engineering orders of magnitude faster with AI, but only if you use it the right way. First, let's think about how people learned engineering before AI. For me, it all started with a single question: how do video games draw things on screen? 🧵
A selfie of Daniela Petruzalek smiling and holding up a vintage copy of the book "Peter Norton's Assembly Language Book for the IBM PC" by Peter Norton and John Socha (Brady Books), featuring the classic photo of Peter Norton in a white shirt and red tie with crossed arms next to an IBM PC.
120
Daniela Petruzalek @danicat83.bsky.social · 24/08/2026
Just in case you are curious about the skills: Double diamond: skills.danicat.dev/agents/doubl... Uno reverse: skills.danicat.dev/agents/uno-r...
000
Daniela Petruzalek @danicat83.bsky.social · 23/08/2026
Today I went to the London Gaming Market. It made me realise how I miss the experience of shopping games in person. It ended up costing me a bit of money 😂
000
Daniela Petruzalek @danicat83.bsky.social · 22/08/2026
My prompts are getting weirder every day...
Prompt: please run a /double-diamond process to refine ADR-0002. At review phase, use an /uno-reversal agent to antagonise the proposal and then present the results
100
Daniela Petruzalek @danicat83.bsky.social · 20/08/2026
Hadouken!
010
Daniela Petruzalek @danicat83.bsky.social · 20/08/2026
Yeah I was more excited about MCPs before the models were heavily optimised for shell. I still see value in them for distributing documentation, but for tools I’m moving towards scripts inside skills
000
Daniela Petruzalek @danicat83.bsky.social · 19/08/2026
What’s your favourite pedantic hill to die on? #Golang
000
Daniela Petruzalek @danicat83.bsky.social · 19/08/2026
Level 3: Concurrency, Lifecycle & Arch • Blanket go func() without sync • Unbounded goroutines • Hacky sync & mutexes (shared mutable state!) • Ignored deferred returns • Unclosed HTTP response bodies • Typed nil pointer as error • Missing graceful shutdown
100
Daniela Petruzalek @danicat83.bsky.social · 19/08/2026
Level 2: Context, Flow & Side Effects • Missing context cancellation • Context not propagated / not 1st arg • Deep logging & log-and-forget • Multiple exit paths (log.Fatal) • Hadouken pyramids (nested if/else) • Long functions & side effects • Unwrapped errors
210
Daniela Petruzalek @danicat83.bsky.social · 19/08/2026
Level 1: Structure, Names & Types • Variable, receiver & func names • Untyped structs (map[string]any) • Package names & stuttering • Unnamed strings & magic numbers • Ignoring / comparing errors by string • Happy path to the left • ./internal vs ./pkg • Interfaces in, types out
100
Daniela Petruzalek @danicat83.bsky.social · 19/08/2026
Being picky about names is not ridiculous; I will die on this hill. Names influence design. Countless times, a single name change triggered a chain of events leading to a much more refined design. Here’s the checklist by level 👇
110