---
title: "A new Go GraphQL client from Khan Academy"
publication: "Go Weekly"
issue: 381
published_at: "2021-10-01"
canonical_url: "https://golangweekly.com/issues/381"
---

Plus a Go-powered Aussie search engine, and discussing TinyGo in the wild. |        

#​381 — October 1, 2021 

[Unsubscribe](https://golangweekly.com/leave/*|UID|*)|[Read on the Web](https://golangweekly.com/issues/381)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/uofn1rrr5omtmpg8hqqr.jpg)](https://boyter.org/posts/abusing-aws-to-make-a-search-engine/)  

[Twisting AWS Lambda to Make an Australian Search Engine](https://boyter.org/posts/abusing-aws-to-make-a-search-engine/) — A fun look at a way to twist AWS’s serverless platform to unexpected ends by embedding a large search index into numerous compiled serverless functions and using these to power a small search engine. Beautifully done and with some Go at its heart. 

Ben E. C. Boyter   

[genqlient: A Truly Type-Safe Go GraphQL Client](https://blog.khanacademy.org/genqlient-a-truly-type-safe-go-graphql-client/) — A newly open sourced GraphQL client from Khan Academy that supports both writing queries next to code and GraphQL files. Developer ergonomics are a strong point here. 

Ben Kraft (Khan Academy)   [![\](https://copm.s3.amazonaws.com/8fe23dd7.png)](https://mux.com/live/?utm_campaign=q4_sponsored_newsletters_21&utm_source=goweekly&utm_medium=cooperpress&utm_content=live) 

[Live Streaming for Go Apps](https://mux.com/live/?utm_campaign=q4_sponsored_newsletters_21&utm_source=goweekly&utm_medium=cooperpress&utm_content=live) — From zero to live streaming in a couple of minutes. Mux Video is an API-first platform that makes it easy to build beautiful live video that streams everywhere. 

Mux sponsor   

[Foundations: WebAssembly in Go is Fantastic](https://blog.suborbital.dev/foundations-wasm-in-golang-is-fantastic) — Finally a WASM in Go tutorial that goes beyond the simple “Hello World!” examples, touching on passing JSON and arrays between Go and Javascript, as well as using TinyGo for smaller files. 

Philippe Charrière   

▶[Go on Hardware: TinyGo in the Wild](https://changelog.com/gotime/199) — We’ve championed TinyGo a lot in this newsletter over the years and it’s great to hear directly from gophers working on the hardware side of things talking about things like controlling video hardware, programming Bluetooth devices, making WiFi work on Arduinos, and more. _(70 minutes.)_ 

Go Time Podcast podcast   

**QUICK BITS:** 

- [▶️ A quick 15-second video](https://www.youtube.com/watch?v=M0_s6UW86cs) showing off a demo of TinyGo running on a Raspberry Pi Pico and reacting to an orientation sensor.
- You may recall the Go team had a well earned 'quiet week' over the summer, well they're [having another one this week](https://github.com/golang/go/issues/48615) (and intend to each three months going forward) in order to let them focus and not get distracted by discussions and tickets 👍   

[The Difference Between Go and Rust](https://dominikbraun.io/blog/the-difference-between-go-and-rust/) — This isn’t deep by any means but the languages are often compared despite having different use cases and approaches. 

Dominik Braun   

[Wrapping Errors the 'Right' Way](https://errnil.substack.com/p/wrapping-errors-the-right-way) — The author argues to not include information the caller already knows in your errors, although this is just one opinion. 

Hunter Herman   

[awesome-go-style: A Collection of Go Style Guides](https://github.com/dgryski/awesome-go-style) — A list of links to things to read about Go code style including specific Go style guides. 

Damian Gryski   

[Generics in Go: A Down to Earth Tutorial](https://bitfieldconsulting.com/golang/generics) 
John Arundel      

Jobs  

[What's A Gopher's Favorite Fruit? Mango. (US Remote)](https://jobs.lever.co/silo/f0f87fa4-cd99-4d7e-a512-d9497c5898e5) — Hiring Go software engineers at Silo. Silo digitizes the food supply chain. You need food. Farms and produce distributors need you. 
Silo   

[Senior Software Engineer (Go) - 100% Remote, UK/EU Only](https://www.form3.tech/careers/job-application?gh_jid=4003519002) — Solve complex technical challenges using the latest, cloud-native technologies to help Banks and FinTechs move money faster. 
Form3   

[Find a Job Through Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-golangweekly%29&utm_content=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired   

[Golang Developer at X-Team (Remote)](https://x-team.com/remote-go-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=cooperpress-go&utm_content=go) — Join the most energizing community for developers and work on long-term projects for Riot Games, FOX, Sony, Coinbase, and more. 
X-Team     

🛠 Code & Tools  

[RateLimiter: A Concurrent Rate Limiter Library](https://github.com/Narasimha1997/ratelimiter) — Based on a sliding window rate limiting algorithm. Use this anywhere you need to rate limit anything in Go code. 

Narasimha Prasanna HN   

[Ultimate Service: Starter Code for Writing Web Services in Go](https://github.com/ardanlabs/service) — A lighter alternative to something like Buffalo or Beego that you can re-work into what you need if you want more control. 

Ardan Labs   

[Unusual Generics: Collection of Unusual Generics Use Cases](https://github.com/xakep666/unusual_generics) — Early days for this, but you’re encouraged to submit your own. 

Vladimir Stolyarov   

[All-Star Lineup Announced for Cloud Engineering Summit - Save Your Seat](https://www.pulumi.com/cloud-engineering-summit/?utm_source=golang-weekly&utm_medium=sponsored-link&utm_campaign=ces-2021) 

Pulumi sponsor   

[A Proof-of-Concept RPC 'Framework' in 20 Lines of Go](https://go2goplay.golang.org/p/jhnCwHxu-aV) — A use case for generics. 

The go2go Playground   

[SQLBoiler 4.7(.1): Generate a Go ORM Tailored to Your Database Schema](https://github.com/volatiletech/sqlboiler) — The idea is that you create your schema at the database level first and then this interrogates the schema and generates ORM code for Go based upon the actual design. 

Volatile Technologies Inc.   

[Massh: Go Package for Running Linux Distributed Shell Commands over SSH](https://github.com/DiscoRiver/massh) 
Disco   

[noctx: A Linter to Find HTTP Requests Made without `context.Context`](https://github.com/sonatard/noctx) 
sonatard         

Curated by [Glenn Goodrich](https://twitter.com/ruprict) and [Peter Cooper](https://twitter.com/peterc). 

[Change your email address](https://golangweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
