
Damiano Petrungaro
Staff Engineer and Engineering Manager @Odin
Milan, Italy
Actions
Tactical Engineering Leader • Building High-Performing Teams • Enabling Businesses through Technology.
An ego-less, experienced leader with technical proficiency in multiple programming languages and methodologies. Strong communication skills and a track record of solving strategic challenges. Skilled in building high-performing teams, setting company objectives, and aligning technology with business goals.
Links
Area of Expertise
Topics
Exploring Domain Driven Design in Go
Applying Domain-Driven Design (DDD) to a Go application can be challenging, as traditional approaches often lead to object-oriented concepts that don't fit Go's unique idioms and language features.
In this talk, I'll show you how to apply DDD's tactical and strategic patterns to shape idiomatic Go code, exploring real-world examples and best practices; whether you're new to DDD or have tried it before and struggled to make it work with Go, this talk is for you.
This talk is not going to be about reusing the concepts from the DDD literature applied in other idioms, ending up with an object-oriented application written in Go.
Instead, I'll show how to apply the most popular tactical patterns to shape idiomatic code the domain invariants and use strategic patterns to let a domain analysis structure an application.
This talk is the outcome of years of experience and blogs I wrote:
- https://www.damianopetrungaro.com/posts/ddd-how-i-structure-idiomatic-golang-services/
- https://www.damianopetrungaro.com/posts/ddd-using-golang-tactical-design/
- https://www.damianopetrungaro.com/posts/ddd-using-golang-strategic-design/
The internals of the context package
The context package is a crucial feature of the Go programming language that provides a convenient way to manage cancellations, timeouts, and request-scoped data across API boundaries.
In this talk, we will delve into the internal workings of the context package, examining the implementation of context types, the data structures used, and how it handles cancellations and deadlines to enable you to use it effectively in your applications and avoid common pitfalls and bad practices.
This will be an extended version of a talk I already gave a few times internally in companies (https://www.damianopetrungaro.com/talks/2020-context-package-in-go/) later on summarized as a blog post (https://www.damianopetrungaro.com/posts/go-internal-context-package/).
Accepted at GopherconUK 2023.
Beyond the Basics: Elevate Your Go Testing Game
Unit tests are essential for ensuring the quality of Go code, but they are not the only way to test your code.
In this talk, we will live-code into a variety of best practices around testing including some advanced strategies, including:
- Database integration testing with test-containers for isolated and repeatable database read/write test cases.
- The art of HTTP/gRPC with recorders and replayers for seamless integration with external services.
- BDD with Gherkin as your testing language to enhance collaboration with stakeholders.
Git Mastery: Elevating Development with Conventional Commits
Join me for an engaging talk and discover how to unlock the full potential of Git and Conventional Commits.
This session will delve into Git's fundamental principles and show you how Conventional Commits can transform your development workflow.
You'll learn how structured commit messages can boost clarity in your codebase, automate changelog creation, and make collaboration seamless. Come on this journey to enhance your Git expertise and refine your development experience.
Writing a Logger in Go
Crafting a performant and scalable logger can be challenging, with many potential pitfalls.
As someone who has recently tackled this challenge by creating a logger in Go (available on github.com/damianopetrungaro/golog), I am eager to share my expertise on this topic. In this talk, I will dive deep into developing high-performance loggers, showcasing my approach to identifying performance bottlenecks and sharing best practices for designing an efficient and scalable logger.
Specifically, we will explore benchmarking strategies for encoding log entries and perform detailed profiling of the logger design to identify areas for optimization.
Join me for a session packed with expert insights, practical advice, and real-world examples to help you build high-performance loggers in Go and take your development skills to the next level.
I gave this talk as workshop at the Golab2022 and used it as a new logger in a company where I used to work establishing good practices and improving the developer experience.
GoLab 2023
Exploring Domain Driven Design in Go
Google DevFest - Hamburg
Beyond the Basics: Elevate Your Go Testing Game
GopherCon UK 2023Sessionize Event
DevBcn 2023Sessionize Event
GoLab 2022
Workshop - Writing an efficient Go logger
GoWay 2020
Writing idiomatic Go using DDD
IPC 2019
Do PHP frameworks still make sense? Let’s go frameworkless to focus on the domain
LaravelDay 2018
Modern PHP development with Laravel
LaravelDay 2018
Workshop - Modern PHP development with Laravel 5.6
LaravelDay 2017
Using the repository pattern with eloquent for code that lasts

Damiano Petrungaro
Staff Engineer and Engineering Manager @Odin
Milan, Italy
Links
Actions
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top