#380 — September 24, 2021
Go Weekly
Taming Go’s Memory Usage, or 'How We Avoided Rewriting Our Client in Rust' — Another story of memory profiling whose highlights include many lessons learned, like "stream, don’t buffer" and how an increasingly common approach of rewriting something in Rust just gives you different problems to manage.
Mark Gritter
A WebAssembly-Powered Browser 'Go Playground' — Unlike the long standing official Go Playground where code is executed on a server, the idea here is that Go code is executed within your browser with Goscript doing the heavy lifting.
Zack Radisic
Gophers - Opportunity is Knocking — We’re a premier software engineering firm looking for mid to senior level engineers to help us develop advanced software solutions and applications in Go. Got at least 1 year of professional Go experience and located in the Americas or Western Europe? We want to hear from you.
Ardan Labs sponsor
QUICK BITS:
-
Native fuzz testing support has been merged into master meaning it'll appear in Go 1.18. More on what that means and how to play with it here.
-
go-test-trace can now get involved with an existing distributed trace.
-
I've not got all the details, but ▶️ here's TinyGo being used for a touch-based demo on a tiny watch-sized screen.
Go-App: A Way to Build Progressive Web Apps with Go? — Using WebAssembly under the hood, you get to declare your frontend interface entirely in Go using an interesting fluent API and no HTML at all. A curious idea.
Maxence Charriere
▶ On the Little Known Team That Keeps Go Going — An episode focused on the team behind adding new features to the go command, implementing tools like gopls, etc.
Go Time Podcast podcast
Jobs
Senior Software Engineer (Go) - 100% Remote, UK/EU Only — Solve complex technical challenges using the latest, cloud-native technologies to help Banks and FinTechs move money faster.
Form3
Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on long-term projects for Riot Games, FOX, Sony, Coinbase, and more.
X-Team
Find Tech Jobs with Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.
Hired
Secure Integrations with Circuit Breaker in Go — The concept with an example implementation using Sony’s gobreaker. A nice pattern to have in your toolbox.
Elijah Zobenko
Implementing a Generic Filter Function — This is a nice, easy-to-follow way to introduce generics.
Preslav Rachev
Go Generics Have a New 'Type Sets' Way of Doing Type Constraints
Chris Siebenmann
Simplified JSON Handling in Go
Alan Storm
🛠 Code & Tools
TinyGo 0.20.0 Released — The LLVM-based ‘Go compiler for small places’ (and WebAssembly) continues to take small steps forward with Go 1.17 support, bug fixes, and support for a few new ESP32-C3 based boards.
TinyGo
go-quartz: Simple, Zero-dependency Scheduling Library for Go — Inspired by the similarly named Quartz scheduler for Java.
Eugene R.
Tangram: An Automated Machine Learning Framework — It’s written in Rust but you can train a model from a CSV file and then make ‘predictions’ from Go code. GitHub repo.
Tangram Team
Echo 4.6: A High Performance, Minimalist Web Framework — A framework aimed at building REST APIs complete with a router, middleware framework, HTTP/2 support, automatic TLS with Let’s Encrypt, and more. v4.6 adds new request logger middleware.
LabStack LLC
OpenTelemetry Go API and SDK 1.0 Released — OpenTelemetry provides the ability to measure your code performance and metrics, forwarding this data to observability platforms, like Prometheus.
OpenTelemetry
bree: A Go B-Tree Implementation — Intended for learning purposes and is a very small, tight implementation which is explained here.
Amit Davidson