Admit it. You hate them. I hate them. It started with a simple feature request: "add a cookie banner." It ended in a legal black hole from which your product owner has yet to return. For years, the European Union has tried to give users control over their data. A noble quest. In reality, it has unleashed a decade of chaos, creating a digital minefield that we, the people in IT and legal, are forced to navigate daily. The result? An internet flooded with UX monstrosities, dark patterns, and "Accept All" buttons that are often little more than compliance theater, not a genuine choice. In this 22-minute, jargon-free session, we're diving straight into that chaos. This won't be another boring slide deck about legal articles. This is a field report from the trenches.
Switching jobs and joining a new team as a technical leader comes bundled with expectations - yours and theirs. I'll share my daily AI-focused workflow and few tips on how to build, fix, plan and make impact in the big legacy codebase. All that while still being onboarded in a full-stack team having heavy front-end engineering background.
I'll explore three patterns that make errors explicit, type-safe, and composable: Discriminated unions as return types: encoding success and failure directly in the type system so the compiler enforces handling. The safeAwait pattern: taming async code without nested try/catch blocks. The Errore pattern: Go-style error handling for TypeScript with full type narrowing and compile-time safety. No monads, no wrapper libraries, no functional programming required. Just practical patterns you can adopt incrementally.