Speaker

Damiano Petrungaro

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.

Area of Expertise

  • Information & Communications Technology

Topics

  • golang
  • Domain Modelling
  • DDD
  • Go
  • SOA
  • microservices
  • internals
  • Event Sourcing
  • CQRS
  • Testing
  • Unit testing
  • TDD
  • BDD

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

November 2023 Florence, Italy

Google DevFest - Hamburg

Beyond the Basics: Elevate Your Go Testing Game

November 2023 Hamburg, Germany

GopherCon UK 2023 Sessionize Event

August 2023 City of London, United Kingdom

DevBcn 2023 Sessionize Event

July 2023 L'Hospitalet de Llobregat, Spain

GoLab 2022

Workshop - Writing an efficient Go logger

October 2022 Florence, Italy

GoWay 2020

Writing idiomatic Go using DDD

June 2020 Minsk, Belarus

IPC 2019

Do PHP frameworks still make sense? Let’s go frameworkless to focus on the domain

June 2019 Berlin, Germany

LaravelDay 2018

Modern PHP development with Laravel

November 2018 Verona, Italy

LaravelDay 2018

Workshop - Modern PHP development with Laravel 5.6

November 2018 Verona, Italy

LaravelDay 2017

Using the repository pattern with eloquent for code that lasts

November 2017 Verona, Italy

Damiano Petrungaro

Staff Engineer and Engineering Manager @Odin

Milan, Italy

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