Most Active Speaker

Ivan Pesenti

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."

Awards

Area of Expertise

  • Information & Communications Technology

Topics

  • golang
  • Linux
  • MacOS
  • Programming Languages
  • cybersecurity
  • aws
  • Cloud
  • API Design
  • api
  • Webdevelopment
  • GCP
  • Google
  • GDE
  • Testing
  • Software Architecture
  • Backend
  • Go
  • Database
  • AI

Test like a ninja with Go

If you want to test your Go source code like a master, don't miss this session! We'll cover a wide variety of topics that may give you a boost in your developer journey.
The session starts with an introduction to testing. Why are tests so much relevant? How should you write the source code to make it well-testable? We also cover the different kinds of tests and which one to choose.
Why Go? We'll cover the factors behind the choice and what differentiates Go from other programming languages regarding testing. There will also be room to talk about the Go Test Runner.
Then, we'll move into a more practical part. We'll see the different third-party packages we can use in our test code. We'll briefly touch on benefits and see a bunch of use cases.
We'll also cover fundamental concepts such as test suites and mocks.
We'll look at other testing techniques, such as benchmarking, fuzzing, and example test functions.
Finally, we'll focus on integration tests: how to write them and use the Testcontainers technology to smoothen the process.
At the end of the session, I hope you'll be aware of many new concepts for your new, fresh, efficient tests.

Not tested? Not done! Yet another talk about tests? I aim to present you with the techniques and tools you might use to build efficient and reliable tests. We'll use Go, which provides a great testing experience. I'll show you overlooked techniques such as benchmarking, fuzzing, etc. Plus, I'll introduce you to the most popular libraries and packages used to test Go code.

Swiss knife for Go debugging with VSCode

One of the most important things when we're writing code is the ability to debug it. Many IDEs have an integrated debugger that can smoothen our coding experience. The debugger for the Go source code is called Delve. It's tightly integrated with VSCode and the Go extension. As you might know, the debugger allows us to step through our code, focus on specific sections that may deserve more attention, inspect variables' values, stack traces, etc.
Sometimes, debugging turns into a hassle. The process supposed to help us becomes an insurmountable obstacle. Sometimes, we abandon the debugging or log directly into the code. Both of the options end up decreasing our productivity as developers.

Thus, this talk aims to provide a working solution to debug Go code in VSCode. I chose this IDE since it's free, highly customizable, performant, and my favorite!
Since we can build different projects, I try to provide you with a working solution for each. The scenarios you're likely to face are (list not exhaustive):

- Debug unit tests
- Debug integration tests
- Debug a package
- Attach to an already running process (both locally and remotely)
- Debug multiple microservices with the compound configuration

To overcome these challenges, you're requested to tweak settings in the `launch.json` file within the hidden .vscode folder. In this file are listed what are known as profiles. These are selectable in the "Run View" area. Within this file, we have the option to set different values, such as:

- environment variables or env file
- whether to show global variables' values
- which console to use
- and many others

Throughout this talk, I share hints on Delve and how to make the most of it. I also touch on some overlooked aspects of VSCode that can make a huge difference in your debugging experience.
Finally, I'll give you some mind-blowing tips and tricks on debugging. If you'd like to improve your debugging skills, please don't miss my session!

Being able to debug your code in the IDE should be an easy process. If you ever struggled with debugging Go code in Visual Studio Code, this session is definitely for you. We'll take a look at how to debug several kinds of projects by only tweaking settings in the dreaded "launch.json" file. You'll discover how many options and customizations you can apply to this file to leverage your debugging experience. Finally, we briefly touch on the key features of the Delve debugger.

GoLab 2024 Sessionize Event

November 2024 Florence, Italy

Codemotion Milan 2024 Sessionize Event

October 2024 Milan, Italy

Come To Code 2024 Sessionize Event

September 2024 Pignola, Italy

KubeHuddle Toronto 2024 Sessionize Event

May 2024 Toronto, Canada

Build Stuff 2023 Lithuania Sessionize Event

November 2023 Vilnius, Lithuania

API World 2023 Sessionize Event

October 2023 Santa Clara, California, United States

Nerdearla 2023 Sessionize Event

September 2023 Buenos Aires, Argentina

Working Software 2023 Sessionize Event

June 2023 Milan, Italy

DevOpsDays Zurich 2023 Sessionize Event

May 2023 Winterthur, Switzerland

Ivan Pesenti

Software Engineer@CrowdStrike

Bergamo, 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