---
title: Livestreams
---

This table attempts to collect all known regular livestreams centered around Go. Please keep each table sorted alphabetically by name.

Note that conferences and podcasts have their own wiki pages already, and should not be included here. Similarly, meetups are already collected [here](https://www.meetup.com/topics/go/).

### In English

|        Name        |    Topic (short)                |       Frequency      | Link | 
|--------------------|---------------------------------|----------------------|------|
| Ashley Jeffs       | Working on Benthos and OSS     | Twice per week       | https://www.youtube.com/c/Jeffail |
| Chewxy             | Hacking around. Usually machine learning / deep neural networks related | Weekly | https://www.youtube.com/chewxy |
| Jordan Lewis       | CockroachDB internals           | Twice per week       | https://www.twitch.tv/large__data__bank |
| Matt Layher        | Linux networking/syscalls in Go | Twice per month      | https://www.twitch.tv/mdlayher |
| Matthew Dempsky    | Hacking on the Go compiler      | Three times per week | https://www.twitch.tv/mdempsky |
| Michael Stapelberg | Hacking on OSS projects         | Aiming for 1x/month  | https://www.twitch.tv/stapelberg |
| Travis Jeffery     | Distributed systems and data streaming | Twice a month | https://www.twitch.tv/travisjeffery |

### In Russian

|        Name        |    Topic (short)                |       Frequency      | Link | 
|--------------------|---------------------------------|----------------------|------|
| Good reviewer - Bad reviewer | Code review and commentary for open source projects | Weekly | [YouTube](https://www.youtube.com/channel/UC8_A5W8g7UV0pk0uL66iQAQ) |
| Generic Talks | Podcast about Go and systems programming | Weekly | [YouTube](https://www.youtube.com/channel/UCLW_8skJ-sIHXACL7HZqchA) |

### In Chinese

|        Name        |    Topic (short)                |       Frequency      | Link | 
|--------------------|---------------------------------|----------------------|------|
| Go 夜读 - TalkGo | Weekly Go Online Meetup | Weekly | [YouTube](https://www.youtube.com/c/talkgo_night), [Bilibili](https://space.bilibili.com/326749661), [GitHub](https://github.com/talkgo/night) |


