By Callum, who attended the event
I’m Callum from Humand Talent, and I’m excited to share the highlights from our latest Golang Oxford meetup! We kicked off 2025 with a bang – delving into Go performance, exploring next-gen map implementations, and meeting loads of new faces in the Go community. Big thanks to our two amazing speakers, David Vella and Bryan Boreham, who each brought a wealth of knowledge and real-world insights.
Talk #1: The Quest for Speed – Loveholidays’ Journey to 50% Better P99 Times with Go
Speaker: David Vella, Software Engineer @ loveholidays
Focus: Real-world performance tuning in high-traffic Go applications
David pulled back the curtain on loveholidays’ technical stack, showing how they slashed their P99 response times by over 50% for millions of holiday search requests. This was a truly eye-opening walkthrough of what it takes to build (and maintain) a snappy Go-powered platform at scale.
Key Takeaways & Insights
- Profiling for Bottlenecks
- David walked us through some advanced usage of pprof and go tool trace. By correlating trace outputs with live traffic patterns, they identified subtle concurrency issues.
- According to recent data from the Go Blog, systematic profiling can improve performance by up to 40% in typical web services by pinpointing memory leaks and slow hot paths.
- Monitoring & Regression Detection
- As David emphasised, adopting continuous performance testing was essential: “We treat performance metrics like any other critical feature. If it regresses, we fix it before shipping.”
- For managers, this approach helps ensure customer satisfaction stays high. A Gartner report suggests that every 100ms of added latency can reduce user satisfaction and revenue in e-commerce contexts.
- Common Go Anti-Patterns
- Allocations in tight loops, naive string concatenation, and unbounded goroutines were some culprits.
- David stressed the importance of load testing with production-like data. “Without realistic tests, you’re optimising blind,” he noted. This echoes industry advice from Uber’s Go Style Guide on systematically minimising expensive operations in performance-critical paths.
Quote from David: “We found that a single line of code could create a surprising amount of GC overhead. Once you see the pprof graph, there’s no unseeing it!”
By the end of David’s session, I was already thinking about how to apply these lessons in my own projects. If you missed it, you can view David’s slides here. They’re packed with real-world examples and some mind-blowing performance graphs!
Talk #2: Swiss Maps in Go – A Faster, More Efficient Map Implementation
Speaker: Bryan Boreham, Distinguished Engineer @ Grafana Labs
Focus: Exploring Swiss Maps, new in Go 1.24
Bryan’s talk introduced the next evolution of Go’s map data structure, dubbed Swiss Maps – a name referencing the similarly efficient Swiss Table algorithm used in languages like C++ (e.g., Abseil’s SwissTable).
Why Swiss Maps?
- Faster Lookups: Bryan highlighted benchmark data showing up to 60% speed improvements for large maps, especially in read-heavy workloads.
- Reduced Memory Usage: On average, Swiss Maps use around 25% less memory than the current Go map implementation, making them perfect for high-scale systems.
Quote from Bryan: “Under the hood, Swiss Maps leverage clever SIMD optimisations to process buckets in parallel. It’s like a free performance boost if your CPU supports it!”
Key Technical Points
- SIMD Instructions in Go 1.24
- Go 1.24 officially supports a subset of AVX2 instructions, allowing the runtime to accelerate certain operations. (For a deeper look, check out the official Go 1.24 Release Notes.)
- According to a talk at GopherCon UK 2024, SIMD can produce double-digit performance gains in hashing and comparison tasks.
- Collision Handling & Bucket Design
- Swiss Maps store metadata about keys in a compact array, minimising cache misses. When the CPU can fetch more metadata per instruction cycle, map lookups get a lot faster.
- Bryan shared benchmark results from Grafana Labs showing that in real-world telemetry processing, Swiss Maps shaved critical milliseconds off each data ingestion cycle.
- What it Means for Go Devs
- If you rely heavily on maps (particularly in data pipelines, caching layers, or concurrency-heavy systems), upgrading to Go 1.24 could make a tangible difference. Just be sure to measure pre- and post-upgrade performance to confirm the gains in your environment.
At the end of Bryan’s talk, I could practically see everyone’s mental to-do list growing: “Upgrade to Go 1.24, switch to Swiss Maps, re-benchmark everything!” If you want more details, you can view Bryan’s slides here and follow him on Bluesky for real-time updates on his performance experiments.
Looking Ahead – Golang Oxford in April 2025
We’re not slowing down after such a brilliant start to the year. Mark your calendars for our next Golang Oxford meetup on Thursday, 3rd April 2025. We’ve got:
Topic: Raft and mmap: Designing Low-Latency Event-Driven Systems in Go
Speaker: Andrew Wormald
If you’re eager to learn about consensus algorithms (like Raft) and zero-copy file operations (via mmap), this is guaranteed to be a deep dive into cutting-edge Go patterns. Head over to Eventbrite to RSVP and secure your spot – these sessions fill up fast.
Call for Speakers
We’re always on the lookout for knowledgeable voices in the Go community. If you’ve got a project or idea you’re passionate about – whether it’s a library, a tool, an experience, or a best practice – submit your talk idea. We aim to create a welcoming platform for new and seasoned speakers alike.
Why Follow Humand Talent on LinkedIn?
As well as organising Golang Oxford, we host regular events for other tech stacks (Java, DevOps, PHP, you name it) throughout the year. Following Humand Talent on LinkedInkeeps you in the loop on:
- Upcoming Meetups: Join diverse communities exploring the latest in software engineering.
- Hiring Insights: Discover who’s hiring in the Go ecosystem, or find brilliant Go developers for your team.
- Industry Trends: From new releases to developer best practices, we curate relevant insights so you don’t miss a beat.
Thank You!
A massive thanks to everyone who came out, asked questions, and made February’s meetup such a success. We’re thrilled to see the Golang Oxford community growing—whether you’re new to Go or an experienced gopher, these events are all about sharing knowledge and pushing the boundaries of what Go can do.
See you in April!
– Callum and the Humand Talent Team
#Golang #GoProgramming #GolangOxford #PerformanceOptimisation #SwissMaps #Go124 #TechMeetup #HumandTalent #SoftwareEngineering