Doug is a Software Engineer at Cars.com, where he has been developing and contributing for the past nine years. He began his software development career after graduating from a coding boot camp, initially diving deep into the worlds of JavaScript and Node.js. His transition into the Elixir ecosystem sparked a fascination with how frameworks like Phoenix and Ecto can implicitly guide developers toward robust design principles and best practices—an insight that inspired the topic of his talk.
Outside of his professional life, Doug is a husband and father of three active boys. In his spare time, you might find him modifying their Power Wheels for extra fun or occasionally embracing the invigorating shock of a cold plunge.
Stepping into backend development can feel overwhelming. When I first encountered Elixir, Phoenix, and Ecto, a lot of the conventions felt opaque. Why are controllers and plugs structured this way? What’s the deal with contexts? And why are these changeset things everywhere??
It wasn’t until I really got into the framework—building things, reading through the docs, getting feedback in code reviews—that I started to realize something: Phoenix and Ecto weren’t just tools, they were guides. Best practices aren’t something you have to chase—they’re baked right into the framework.
This talk explores how Phoenix’s architecture and Ecto’s abstractions naturally lead you toward robust, maintainable, and secure application design. We’ll decode the “why” behind the generators and folder structure—like how mix phx.gen.html introduces domain-driven design through contexts, how changesets enforce data validation at the right layer, and how phx.gen.auth scaffolds secure, plug-based authentication.
By the end, you’ll see how Phoenix and Ecto don’t just help you build apps—they help you grow as a backend engineer, guiding you toward best practices in software design, architecture, and security.
Key Takeaways:
Target Audience: