“Advanced Go” – course
Start time: 9:00 CEST
Tutor: Fabio Falzoi
Super early bird
(Offer valid until 30/09)
Passionate about coding from an early age, he has always been fascinated by low-level topics like kernel architecture, memory management, and parallel programming.
Expert in: C, C++, Python and Go
Go makes it easy to write software in a simple, reliable and efficient way.
Nevertheless, when you have to maintain a critical software component in production and you want to get the maximum performance out of it, you have to know the inner details of the Go runtime and how it interacts with the underlying kernel. In this course, we will explore these topics in great detail, both with theoretical lessons and with live coding sessions. Since the course is aimed at experienced Go developers, we will apply the theory also writing and extending complete and fully working applications.
Lessons will take place in the following times (CEST timezone): 9:00 – 13:00 14:00 – 18:00
- Goroutines, channels and select
- sync.Context and sync.WaitGroup
- Rethinking classical concurrency patterns
- Advanced concurrency patterns (pipeline, fan-in and fan-out)
- Inner workings of the scheduler
- How to use Delve to debug a Go application
- Debugging from a core dump
- Debugging in a containerized environment
- Go memory management and garbage collection
- How to optimize the memory allocation patterns
- Garbage collector tuning
Profiling & Tracing
- The pprof tool
- The execution tracer
Who it is for
- Developers with a previous experience with the Go programming language
- Who wants to know how to maintain, debug and improve the performance of critical services in production
- Experience with the Go programming language
- Know the basics of the terminal
For the most advanced exercises:
Certificate of attendance
A certificate of participation will be issued at the end of the session.