Bitfield Consulting
Friendly, professional Go & Rust training
- Posts
- 166 from 4 Feb 2009 to 28 Oct 2026
- Posting
- weekly (34 in the last year)
- Kind
- company blog
- Feed
- https://feeds.feedburner.com/bitfieldconsulting
2026 25
- Code Safari: Go subcommands
- The heat is on: handling units in Rust
- Dancing backwards with Go: why TDD is weird
- John Arundel
- Operators of death: checked arithmetic in Rust
- Welcome to the machine: emulating a CPU
- Code like a pirate with AI
- Castle building for beginners: marketing yourself
- Rewriting the world in Rust
- The power of GoLand: 10 hidden spells
- Where the sun keeps shinin': the provider pattern in Rust
- It's a lock: sync.Mutex in Go
- Zero Cost to Love
- The Batman trap: when helping isn't helping
- Aprende Rust: recursos en español
- My Rust dev setup in 2026
- Go the right way: the Zen of Go coding
- Rust vs Go: ¿cuál elegir?
- Rust vs Go
- What's so great about Rust?
- John Arundel, Cady Galleta
- The secret consultant: your first steps to independence
- The best Rust books for 2026, reviewed
- Racing with disaster: data races in Go
- Jan 4 What are the best Go books in 2026?
2025 28
- Dec 22 That mockingbird won't sing: a mock API server in Rust
- Dec 8 When doomed stubs attack: blockchain voting and proof of work
- Nov 26 Dips and wiggles: Prometheus, Grafana, and Checkly
- Nov 19 “Wakeups”: the most important DevOps metric
- Nov 14 “Frowning at a screen for 200 hours”: on the writing process
- Nov 13 Build bridges, not walls
- Nov 12 Sysadmins take note
- Nov 10 Red, green, refactor: writing perfect Go, with TDD
- Nov 8 Put a little Pixie in your cluster
- Oct 27 A hard rain's a-gonna fall: parsing JSON in Rust
- Oct 13 The best Go training providers in 2026
- Oct 11 The best Rust training providers in 2026
- Sep 29 Starving, sleeping, and yielding: understanding Go's scheduler
- Sep 14 Self-driving people: is independence for you?
- Aug 29 Elephants for breakfast: testing the untestable in Rust
- Aug 15 Go go goroutines: understanding Go’s concurrency model
- Jul 6 Here comes the sun: building a weather client in Rust
- Jun 14 The joy of (type) sets: interfaces and generics in Go
- May 16 For your eyes only: user-friendly errors in Rust
- Apr 29 Getting nothing done: how to let go and rest your mind
- Apr 12 Bobcoin, blockchains, and cryptocurrency
- Mar 24 Things fall apart: handling errors in Rust programs
- Mar 12 Catching grace: don’t just do something, sit there
- Feb 27 Writing terrible code in Rust… makes great tests
- Jan 30 Slow, flaky, and failing: tuning up your Go test suite
- Jan 23 Checkly, Terraform, and automated site monitoring
- Jan 13 How to know when it's time to go
- Jan 3 The magic function: designing clean APIs in Rust
2024 24
- Dec 18 Why you can't meditate: quieting the mind is impossible
- Dec 8 Undertesting and overtesting: finding the sweet spot for Go tests
- Nov 19 Rust and Go vs everything else
- Oct 31 Generic types in Go: collections and functions
- Oct 31 Constraints in Go: tightening up your type parameters
- Oct 24 Testing legacy Go code: tiptoeing through the minefield
- Oct 8 Programming is fun: a Cup o’ Go podcast chat with me
- Aug 15 Encrypting with AES: a simple cipher tool in Go
- Aug 4 func to functional: Map, Filter, and Reduce with Go generics
- Jul 25 Iterators in Go: the iter package and new stdlib APIs
- Jul 17 Bitfield Institute of Technology
- Jul 7 Will write for food: becoming an independent tech author
- Jun 23 Shameless green: pragmatic TDD in Go
- May 27 Rust’s Result and Option types make elegant APIs
- May 17 Inside AES: Go’s standard library implementation
- May 2 Pricing yourself: if you need the money, don't take the job
- Apr 10 The smallest thing in Go: iota, enums, and magic constants
- Apr 5 Test names should be sentences: communicating intent in Go
- Mar 27 Programming with confidence: test-driven development (TDD) in Go
- Mar 10 Generics in Go: upgrading your code to the new style
- Mar 10 Type parameters in Go: making functions generic
- Feb 28 Master of my domain: how I started my own business
- Jan 26 Cryptography in Go: AES explained
- Jan 3 Being a good co-worker is your job now
2023 16
- Dec 6 Not a real developer: transitioning from IT to dev
- Nov 8 People skills for developers: how to thrive in a diverse team
- Oct 11 My horrible career: how it started vs how it’s going
- Sep 13 You can do this: surviving day one as a new developer
- Jul 5 Fixing a fuzzed-up function: Go fuzz testing explained
- Jun 7 Target acquired: fuzz targets in Go tests
- May 10 What the fuzz? Introducing fuzz testing in Go
- Apr 15 The Tao of Go: writing software with kindness
- Apr 12 Random and property-based testing in Go
- Mar 29 The adapter pattern in Go: designing decoupled abstractions
- Mar 14 Generics in action: a set type in Go
- Feb 21 From packages to commands: writing testable Go modules
- Feb 7 Write packages, not programs: reusable components in Go
- Jan 24 Death by a thousand nits: the art of productive code review
- Jan 14 A career ending mistake: time for an exit strategy?
- Jan 10 Go’s best-kept secret: executable examples
2022 16
- Dec 27 Error wrapping in Go
- Dec 13 Standalone test scripts
- Nov 29 Comparing Go error values
- Nov 15 Conditions and concurrency: advanced test scripts in Go
- Nov 1 Testing errors in Go
- Oct 18 The txtar format: input data and golden files for Go tests
- Sep 20 testscript: a DSL for testing CLI tools in Go
- Sep 15 So you're ready for green belt? Check your Go skills
- Sep 5 Flipping the script: a smarter way to test Go binaries
- Aug 14 Should I buy or should I build?
- Aug 9 VS Code and Go: some superpowers you might not know
- May 16 Tips for Time Lords
- Apr 4 An API client in Go
- Mar 3 A reality check about cloud native DevOps
- Wojtek Cichoń
- Feb 21 Scripting with Go
2021 13
- Dec 14 Don't write clean code, write CRISP code
- Nov 20 Walking with filesystems: Go's new fs.FS interface
- Nov 11 ‘Let's Go Further’ by Alex Edwards
- Oct 14 Night of the Runbooks: a DevOps horror story
- Oct 11 Demystifying ‘defer’: automatic cleanup for Go functions
- Sep 15 “What would you say you do here?”
- Sep 9 Don't fear the pointer: understanding pointers in Go
- Aug 13 Test-driven development with Go
- Jun 11 CUE is an exciting configuration language
- May 4 Introducing Test-Last Development (TLD)
- May 3 Jon Bodner’s ‘Learning Go’
- Mar 31 Ten commandments of Go
- Mar 11 “How dare they not recognise my incipient genius?”
2020 28
- Dec 27 How to really learn Go (or anything): get the study habit
- Oct 5 Go vs Python: choosing the right language for the job
- Sep 29 Mike Thomas: in search of lost teams
- Mike Thomas
- Aug 25 Are you a Go black belt? What does mastery look like?
- Jul 11 'Container Security' by Liz Rice
- Jul 3 What is GitOps?
- Justin Domingus
- Jun 21 Writing slower Go programs: why readability beats speed
- Jun 20 Kubernetes at work, with Torie Joy-Warren
- Jun 12 All about Go maps: frequently asked questions
- Jun 6 map[string]any in Go
- May 29 Iterating over a Golang map
- May 8 Finding whether a Go map key exists
- May 1 Storing and retrieving map values
- Apr 25 What is Kubernetes?
- Apr 25 Map types in Golang
- Apr 18 Go maps: declaring and initializing
- Apr 2 What's new, Kubernetes?
- Feb 29 Building a Golang Docker image
- Feb 22 The dawn of DevOps
- Feb 15 Got game? Secrets of great incident management
- Feb 3 “Cloud Native DevOps with Kubernetes” is out now
- Feb 3 What “uptime” even means anymore
- Feb 3 “Just a big ol' cloud of compute”
- Feb 3 The elusiveness of DevOps
- Feb 3 Does your company have the DevOps nature?
- Phil Whelan
2019 10
- Dec 17 Are you looking for trouble?
- Nov 28 Spliffs and submarines: the two cultures and the state of DevOps
- Oct 28 Agile sysadmin: the art of infrastructure automation
- Sep 25 Dependency graphs in Puppet
- Aug 26 Notational Velocity
- May 18 Puppet dry run
- May 14 Scaling Puppet with Git
- Stephen Nelson-Smith
- Apr 14 What's wrong with this image? Config management vs the “golden image”
- Mar 30 Deciding which Docker tag to use