Senior Software Engineer @ Chattermill
Software engineer with 10 years of experience. He started applications from scratch, dealt with legacy, and extracted services from a monolith and led teams. Strong proponent of diving deep into black boxes, he focuses on distributed systems and database internals. Has a strange hobby of writing regular expressions by hand and discussing their performance. Knowledge-sharing advocate: after work, he's a university instructor, public speaker and meetup organiser.
Bookworm, hiker and history buff (ask him about Napoleon!).
THEME: SW CRAFTMANSHIP
How does computer know that `^\w+\d$` should match "java8" but not "jvm15"? There must be some magic that allows a computer to recognise that certain strings match the pattern, right? Yes and we, geeks, love learning how such magic works!
Join me on a highly technical journey through the internals of regex engines. First, we will analyse ancient scripts explaining the theory - finite automata and regular languages. Then we will hack through thickets of various regex flavours to arrive at the cave of regular expression engine where we'll explore deep recesses of performance corner-cases. To add a bit of an adventure we'll intentionally fall into a trap of exponentially slow patterns and crash a real app. Finally, we'll read inscriptions left by the survivors of Stackoverflow and Cloudflare outages, both caused by regular expressions.
It's a geeky talk and you'll learn geeky stuff: how a small and neat language of regular expression is implemented and interpreted. But it's not all in vain: you'll be able to optimise the performance of regular expressions and prevent your app from being killed by a badly-crafted regex.
TAGS: regex text performance internals