Slaying the Type Hydra, or How We Went (...) to None | Jesper Eskilson | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Slaying the Type Hydra, or How We Went from 12,000 Dialyzer Errors to None | Jesper Eskilson - Senior Engineer at Klarna ABSTRACT Have you ever tried running Dialyzer on a large Erlang project for the first time? Did you also get thousands of cryptic errors? Three years ago at Klarna we stood at 1.7MLOC with 12k Dialyzer errors. This is the point where you typically through up your hands and walk away. But we didn't. We fought. And now we are up to 1.72MLOC, but completely free of Dialyzer errors. This talk is about our fight, but not just the fun war stories. You will get a detailed plan for slaying the type Hydra, no matter how many heads it grows. OBJECTIVES The aim is to get people excited about fixing Dialyzer errors in large code bases, to convince them that it can be done, even when there are lots of errors. AUDIENCE Erlang/Elixir developers in general, and developers maintaining large and/or legacy systems in particular, who would like to run Dialyzer on their code, but are limited due to the number of existing errors in the code. • Timecodes 00:00 - 02:37 - Intro and KRED 02:38 - 04:01 - Why Dialyzer? 04:02 - 04:54 - Main Message 04:55 - 05:29 - About Me 05:30 - 06:45 - Principle 1: Automation 06:46 - 11:26 - Slaying the Type Hydra... 11:27 - 12:52 - Override Switch 12:53 - 15:58 - Principle 2: Understanding + KRED 15:59 - 29:42 - Common Problems 29:43 - 31:32 - General Advice + Recap 31:33 - 37:03 - Principle 3: Execution 37:04 - 44:34 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global