

Ivan Pesenti
Software Engineer@CrowdStrike
Bergamo, Italy
Actions
I'm Ivan Pesenti. A passionate gopher who has been working in the software industry since 2014.
I'm a software engineer focused on server-side programming. Throughout my career, I've always been accompanied by two obsessions: testing and writing secure code. I consider myself a detail-oriented person.
My career took a turning point in 2021 when the Go programming language crossed my path. Since then, I've fallen in love with it.
I believe in empathy, kindness, mutual help, growth, determination, and trust. These values have led me to give back to the community through speaking, coaching, writing, and more. Helping others is one of the most satisfying experiences I've ever had.
During my free time, I train my body, play football, watch anime, and hang out with family and friends.
One of my favorite quotes is: "Hard work beats talent."
Area of Expertise
Topics
Become a 10x Developer with Go Performance Optimization
Performance optimization makes you a 10x software engineer. You can help your company save money or serve more customers with the same resources. It is a mandatory skill on the resume if you want to stand out from the crowd. By optimizing performance, you also gain a deeper understanding of how the Go runtime works under the hood, making you more performance-oriented when writing Go code.
This session shows you how to optimize your Go code from a CPU and memory perspective.
Unfortunately, performance optimization is not a trivial or straightforward process. Whenever a software engineer wants to optimize code, he often stumbles across several terms such as profiling, tracing, latency, throughput, Garbage Collector, heap, stack, etc. These terms can easily create confusion and headaches.
If you've ever experienced this pain or want to avoid it in the future, this session comes to the rescue.
We start with their definitions and usages so we all speak the same language throughout the session.
Then, we explore the performance optimization process. It's an iterative process involving studying, benchmarking, changing code, benchmarking (again), comparing, and deciding. Thanks to this session, you'll learn to go through this process without getting lost.
You'll understand that performance optimization is not just about changing source code. It's a journey. And before embarking on it, you need everything ready and set.
We'll also cover the importance of understanding collected metrics and values and how to use them to evaluate potential code changes. I will show you how to capture a snapshot of your program's state and analyze it effectively.
Then, we explore the tools Go provides for performance analysis. Go has an excellent tooling system to support you in this journey.
Some topics covered are benchmarks, Go compiler's flags, Go Garbage Collection, escape analysis, inlining, core dumps, memory and CPU profiles, trace, pprof, stress-test tools, Go's environment variables, etc.
By learning a bit about each topic, you can try to optimize your code with the right tool. Furthermore, you'll understand which tools are worth studying for your specific scenario.
Whether you're a newbie on the subject or have previous experience with performance optimization, this session will provide you with several hints, concepts, and uh-oh moments.
Remember: software efficiency is as important as software correctness.
GoLab 2024 Sessionize Event
Codemotion Milan 2024 Sessionize Event
Come To Code 2024 Sessionize Event
KubeHuddle Toronto 2024 Sessionize Event
Build Stuff 2023 Lithuania Sessionize Event
API World 2023 Sessionize Event
Nerdearla 2023 Sessionize Event
Working Software 2023 Sessionize Event
DevOpsDays Zurich 2023 Sessionize Event
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