About
Subscribe
Books
Courses
Training
Blog
Contact
Blog RSS
Bitfield Consulting
Friendly, professional Go & Rust training
0
Generics in Go: upgrading your code to the new style
Mar 10

Mar 10 Generics in Go: upgrading your code to the new style

John Arundel

Generics what now? This friendly, down-to-earth tutorial series explains how Go’s generic functions and types work, why we need them, and where we can use them.

Master of my domain: how I started my own business
Feb 28

Feb 28 Master of my domain: how I started my own business

John Arundel

Let’s talk business—independent business, that is. What’s the cost of being the boss? Some more hard-learned lessons from my own horrible career.

Cryptography in Go: AES explained
Jan 26

Jan 26 Cryptography in Go: AES explained

John Arundel

AES is the modern standard encryption algorithm, but how does it work? Where does it come from? Let’s kick the tyres with a high-level overview of AES internals.

Being a good co-worker is your job now
Jan 3

Jan 3 Being a good co-worker is your job now

John Arundel

In the final part of this series on the world of work, we’ll talk about how not to suck at meetings.

Not a real developer: transitioning from IT to dev
Dec 6

Dec 6 Not a real developer: transitioning from IT to dev

John Arundel

In the second part of my tell-all memoir, we find out why I was constitutionally unsuited to employment in a structured environment, or indeed any environment.

People skills for developers: how to thrive in a diverse team
Nov 8

Nov 8 People skills for developers: how to thrive in a diverse team

John Arundel

In the second part of this series on career skills for software engineers, we’ll look at how to deal with that trickiest of species: human beings.

My horrible career: how it started vs how it’s going
Oct 11

Oct 11 My horrible career: how it started vs how it’s going

John Arundel

Dev advocate Zack Proser grilled me lightly about my career, and why I haven’t taken any of my own advice. Read the full interview, but pay no attention to the man behind the curtain.

You can do this: surviving day one as a new developer
Sep 13

Sep 13 You can do this: surviving day one as a new developer

John Arundel

It’s day one of your new job as a developer. What should you expect? How should you act? Will you survive “max Q“?

Fixing a fuzzed-up function: Go fuzz testing explained
Jul 5

Jul 5 Fixing a fuzzed-up function: Go fuzz testing explained

John Arundel

In the thrilling conclusion to our fuzz testing series, we’ll use Go’s fuzzer to find a real bug in our code, and also to verify the fix.

Target acquired: fuzz targets in Go tests
Jun 7

Jun 7 Target acquired: fuzz targets in Go tests

John Arundel

Let’s continue our exploration of fuzz testing in Go with a look at how to write a fuzz target for a (nearly) realistic function. This time we’ll try to detect a common kind of bug involving a confusion between runes and bytes.

What the fuzz? Introducing fuzz testing in Go
May 10

May 10 What the fuzz? Introducing fuzz testing in Go

John Arundel

Fuzz testing is Go’s clever way of generating new test inputs that you didn’t think of—and that may flush out some hidden bugs. Stand by for things to get a little fuzzy!

The Tao of Go: writing software with kindness
Apr 15

Apr 15 The Tao of Go: writing software with kindness

John Arundel

What is the Tao of Go, and how can we work with it, like a surfer going with the waves instead of struggling against them? By being kind, simple, humble, and not striving; here’s how.

Random and property-based testing in Go
Apr 12

Apr 12 Random and property-based testing in Go

John Arundel

Choosing good test cases for our Go programs can be a bit hit-and-miss. What if we could automate that process? Let’s talk about randomisation, property-based testing, and Go’s built-in fuzz testing feature.

The adapter pattern in Go: designing decoupled abstractions
Mar 29

Mar 29 The adapter pattern in Go: designing decoupled abstractions

John Arundel

How do you test a database without a database? Don't worry, this isn't one of those Zen puzzles. I have something more practical, but equally enlightening, in mind. Let’s use the adapter pattern to solve the riddle.

Generics in action: a set type in Go
Mar 14

Mar 14 Generics in action: a set type in Go

John Arundel

To celebrate the first anniversary of generics in Go, let’s build something practical and useful: a generic Set type, and add some neat methods to it. Ready for fun?

From packages to commands: writing testable Go modules
Feb 21

Feb 21 From packages to commands: writing testable Go modules

John Arundel

In Part 2 of a series about writing packages, not programs, we see how to test a package that prints to the terminal, and use the result to build our “hello, world” CLI tool.

Write packages, not programs: reusable components in Go
Feb 7

Feb 7 Write packages, not programs: reusable components in Go

John Arundel

Go has a great standard library. What if we think about our work not merely as building one-off programs, but instead contributing packages to the universal Go library?

Death by a thousand nits: the art of productive code review
Jan 24

Jan 24 Death by a thousand nits: the art of productive code review

John Arundel

Could we give and receive code reviews with kindness, gentleness, humility, and compassion? Can we make a point without making an enemy? Let’s go line by line.

A career ending mistake: choosing your exit strategy
Jan 14

Jan 14 A career ending mistake: choosing your exit strategy

John Arundel

As software engineers, we're constantly making detailed, elaborate plans for computers to execute. Isn't it weird that we rarely give a moment's thought to the program for our own careers?

Go’s best-kept secret: executable examples
Jan 10

Jan 10 Go’s best-kept secret: executable examples

John Arundel

Did you know that Go lets us provide executable code examples as part of our documentation? It’s pretty neat. Let’s take a tour of this useful feature and see how it works.

Load More
 
 
 
 
0