Coding ≠ Engineering: Software Craftsmanship in the Age of AI

Presentation from February 2026, Wrocław. Explores the tension between AI-generated code and genuine software craftsmanship. While gradient descent and “next-token thinking” can lead to less-than-ideal code, with proper prompting and engineering mindset we can steer AI toward CRAFT instead of SLOP.

AI Powered Search: LLM all-the-things

Presentation from September 2025, Wrocław. Demonstrates transforming user queries into AI-powered search through semantic understanding and metadata extraction. The approach: extract semantic meaning, expand context, and apply metadata filtering. Also addresses the testing challenges of LLM-based systems where prompt changes require reverification.

Coding with Claude Code

Presentation from September 2025, Wrocław. Practical guide to using Claude Code as a development tool, emphasizing that “context is the King.” Covers using CLAUDE.md files as knowledge bases, providing strong context through examples, referencing existing implementations as templates, and using MCP for searching unknown information. Key takeaway: “Be the driver, guide the pattern matcher.”

What is a resource? GQL & Aggregated data

Presentation from June 2025, Wrocław. Explores how GraphQL schema design struggles when requirements expand to include aggregated data. Argues that aggregated data should be treated as a first-class resource rather than a property attached to existing types, using Cloudflare’s GraphQL API as a real-world example.

Preconditions - Service Objects design

How do you design your code so that you can easily expose to the frontend which business operations can be invoked. Based on Granite framework capabilities.

Building with TRMNL, Cloudflare & AI

Presentation. A no-cost exploration of emerging technologies through TRMNL, a customizable e-ink display (800x480, black and white) powered by Cloudflare Workers. Covers building server-side driven plugins, the 15-minute refresh loop, and experimenting with AI tools like Claude and Cursor.

Kubernetes Health-Checks Traps for Puma-Based Apps

Presentation from 2022. Addresses common pitfalls in configuring Kubernetes health checks for Rails/Puma applications. Advocates for differentiated liveness and readiness probes — using shallow checks with timeouts based on queue size, request time, and thread count, and keeping deep checks separate for uptime monitoring and SLA tracking.

Who’s Gonna Test the Tests Themselves? About Mutation Testing

Presentation. Explains mutation testing — deliberately introducing bugs into code to verify test effectiveness. Covers how the system parses ASTs and applies 50+ transformation operators, with performance data from RubyEventStore projects. The project maintains 99% mutation coverage, with practical insights on corner cases where mutation testing struggles.