Systems Programming with Zig • Garrison Hinson-Hasty & Trevor Berrange Sanchez • GOTO 2026
This interview was recorded for the GOTO Book Club. #GOTOcon #GOTObookclub http://gotopia.tech/bookclub Check out more here: https://gotopia.tech/episodes/455 Garrison Hinson-Hasty - Author of "Systems Programming with Zig" & Contributor to the Zig Compiler Trevor Berrange Sanchez - Systems Software Engineer & Particularly Fond of Zig RESOURCES Garrison https://github.com/garrisonhh Trevor https://www.linkedin.com/in/trevor-berrange-sanchez-035259426 Links https://youtu.be/YXrb-DqsBNU https://youtu.be/wFlyUzUVFhw https://youtu.be/jIZpKpLCOiU DESCRIPTION Garrison Hinson-Hasty, author of “Systems Programming with Zig” and a contributor to the Zig compiler, joins Trevor Berrange Sanchez to explain why he wrote a book on a pre-1.0 language that breaks frequently (he's currently updating the last seven chapters for Zig 0.16). His answer: the language's slow march toward 1.0 is a feature, and learning it now teaches you why its decisions stick. The conversation's core thesis is that Zig is countercultural: instead of stacking new abstractions on old ones, it reuses well-tested ideas and "never adds too much”. "Simple", in the Zig community's sense, means simple relative to what the machine is doing, with integer and pointer types that map closely to how you'd think about data in assembly. Chapter 6's CHIP-8 interpreter shows this: a few integers, some buffers, and elegant results. The same philosophy explains Zig's missing string type. Strings are just byte sequences with a length, and the language leaves encoding choices to you. Garrison notes that Rust, by contrast, now has to maintain its many string types forever. Two practical takeaways for working engineers. First, allocators: because Zig encourages flat, data-oriented design, the book barely needs dynamic allocation, and when it does, allocators let you reason about memory for a whole phase of a program (say, a compiler's parser) as one unit rather than tracking the lifetime of every AST node. Second, C interop: you can use a C header directly, keep defer for cleanup instead of goto, and write small Zig wrappers around awkward C error-return conventions. The chapter on graphics and OpenGL, meanwhile, is really about a transferable systems skill: working out what an unfamiliar, committee-designed API wants from you when no tutorial exists. TIMECODES 00:00 Intro 01:35 Writing a book for a moving target 04:00 Why Zig Is countercultural 08:43 CHIP-8 & the meaning of "simple" 15:40 Why Zig has no string type 23:55 Allocators: Thinking in phases, not objects 29:07 Chapter 7: Shaders & bespoke APIs 33:55 Zig & the interoperability with C 37:22 Outro RECOMMENDED BOOKS Garrison Hinson-Hasty • Systems Programming with Zig • https://amzn.to/3TIIbKT Pedro Duarte Faria • Introduction to Zig: a project-based book • https://amzn.to/4j7jF0f Dean Bocker • Don't Panic! I'm A Professional Zig Programmer • https://amzn.to/3ljKT8d https://bsky.app/profile/gotocon.com https://twitter.com/GOTOcon https://www.linkedin.com/company/goto- https://www.instagram.com/goto_con https://www.facebook.com/GOTOConferences ##Zig #Ziglang #ZigCode #SystemsProgramming #ProgrammingLanguage #ZigIntro #ZigTutorial #ZigSoftwareFoundation #Zigler #Elixir #FunctionalProrgramming #SoftwareEngineering #TodayInTech #Programming #GarrisonHinsonHasty #TrevorBerrangeSanchez #GOTO #BookClub CHANNEL MEMBERSHIP BONUS Join this channel to get early access to videos & other perks: https://www.youtube.com/channel/UCs_tLP3AiwYKwdUHpltJPuA/join Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConferences/?sub_confirmation=1