Since I found The Go2 Go Playground I’ve been happily playing there a fair bit. Today, inspired by fond memories of Kotlin’s Sequence, I took about an hour and implemented my favorites. I’ve written one-off variants of many of these in Go at least a dozen times. I’m looking forward to not writing these again and again. Here’s what about an hour yielded:

Given these, running the following:

Would yield:

Pets: [{family:Dog species:Pitbull} {family:Dog species:Chow} {family:Cat species:Tabby} {family:Bird species:Parrot} {family:Dog species:Beagle}]
Any dog: true
AssociateBy family: map[Bird:{family:Bird species:Parrot} Cat:{family:Cat species:Tabby} Dog:{family:Dog species:Beagle}]
Filter dogs: [{family:Dog species:Pitbull} {family:Dog species:Chow} {family:Dog species:Beagle}]
Find dog…

I was reminded recently of a thing I once did. It was a bash and perhaps immature moment on my part.

The Product Pitch

Years ago I was working at a top financial institution on various trading applications. Our emphasis was on profitability but we did employ some good technology achieving it. Although junior, I was the lead of a respected tech team, and so was asked to be part of a panel reviewing a product pitch from a vendor with a shiny new IDE and language. It might have been Smalltalk or Eiffel, I can’t recall now. Anyway, the IDE was really…

Photo by Nick Fewings on Unsplash

I’ve worked in a lot of languages and am always interested in picking up new ones. I’d wanted to try Rust but just hadn’t made time. Reading that Rust really was coming to the Linux kernel motivated me to get started.

Coming From Go

For about the last year I’ve been working in Go. At this point, I’m what I’d call proficient, even good, in it, but I can’t say I like it. There is a lot to like about Go, but for me, and my development style, there are some key dislikes too. …

Photo by Scott Graham on Unsplash

Having been on both sides of live coding interviews, most recently more on the interviewer’s side, I wanted to share some thoughts.

Knowing Your Stuff

I think to some degree most of us suffer from a bit of the imposter syndrome in interviews. We want to make sure we appear to know our stuff. There are a lot of discussions out there about how to study and prepare for technical interviews, even ones tailored to specific hiring companies. I’ve fallen into that anxiety trap myself, boning up on well know interview algorithmic questions hoping not to be caught off guard.

Here’s the thing…

Photo by Viktor Forgacs on Unsplash

I’m not a dedicated crypto investor, but I have some meager crypto holdings that periodically like to check in on. By periodically, I mean every few days or so, or if there’ market news. I specifically do not obsess over them. There are lots of ways I could track these on my phone or computer, but again I don’t want to overdo it, so ad-riddled real-time price tickers or websites just aren’t my thing. I really just wanted a “hey how’s it going” solution, so I did the code monkey thing and wrote one.


Cyptoport is a tiny bit of…

Photo by Kari Shea on Unsplash

One permanent takeaway from being a teaching assistant for college computer science courses was the value of readable, idiomatic code. When you had to thoughtfully review, back to back, many similar code samples, you don’t want them to be obfuscated. That lesson has served me well professionally, coming into play during key developer tasks like pull requests and maintaining code. Upgrading code from working to readable (and, therefore maintainable), is truly worth the effort for both you and your employer.

Golang’s Basic Cleaning Products

Go has many code quality tools available, and these may already be directly incorporated into your editor or IDE, but…

Photo by Denise Jans on Unsplash

If you follow my writing, thank you, but also you’ll know I wander afield of software development from time to time…today I’m going to talk about a movie.

Women in Motion

I’m a Star Trek fan, and also interested in real-world space exploration so when I heard about Women in Motion, a documentary of Nichelle Nichols and her recruiting at NASA I had to immediately watch it.

I can’t recommend it enough. You’ll see what a truly amazing woman Nichelle is, realizing that the role of Uhura hardly merits even a mention in her many achievements. You’ll see the incredible impact her recruiting…

In working with external code I hit the following. The code provided a function for looking up a product’s price, returning the price if available and a possible error:

func Price(product string) (float64, error)

It was a simple function, and the error case was sensible, unknown product, out of stock, etc. However, I discovered that when the item was discontinued the function resulted in a panic from deep in the external code. While I’ll pursue reporting/fixing it, I needed to guard against it from my side immediately.

Go Recover Basics

Go has a mechanism for dealing with panics, it’s the function recover(). Recover…

Photo by ron dyar on Unsplash

This is just a self indulgent memory brought to mind by some recent Information Security discussions I’ve been in. We we talking about the lengths people will go to to circumvent processes that are too cumbersome.

My father served in the military in World War II, where, when filing a requisition form he had to submit seven (!) copies. Without photocopiers, or even carbon paper, it meant typing the long form up seven separate times. Why seven copies? Because different departments along the supply chain each wanted a copy. They realized different supply chains probably involved different numbers of departments…

The Shadow Knows…

In programming, there is a situation referred to as variable shadowing. It’s when you reuse a variable name in an inner scope that was already used in an outer scope. The new variable shadows the outer one, and changes made in the inner scope to the variable will not affect the value of the variable in the outer scope.

It’s a simple thing, a valid language feature, here’s an example of variable shadowing:

Running the above you’d see:

Number of presidents: 1

Makes sense. Now change presidents := 1 to presidents := 2 and you’ll get:


Graybeard code monkey, started on an Apple IIe, got a CS degree in the 80’s, and coded my way through C, C++, Objective-C, Java, Kotlin — and now Go.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store