“Do a lot of work. Finish a lot of work. Share a lot of work.”

Image for post
Image for post
Murphy’s snow angel isn’t perfect, but she still has something to show for her effort

I’ve dabbled in game development for a long time but I haven’t had much to show for it. I don’t finish, let alone publish, projects because I get bogged down with questions like, “Am I ever going to be able to finish this?” and “Is this the best way to be spending my time?”

This is the year that changes. This is the year that I start publishing games. And here’s why it’s going to be different:

Clearly defined purpose

One of my previous colleagues was notorious for…

Image for post
Image for post
Even Murphy is already using Go Modules

November, 2020 — Go Modules (the standard for Go dependency management) had been out for over 2 years since its experimental release in go1.11, but Compass was still vendoring dependencies. Changing the dependency management tool for a monorepo isn’t an easy task, so we put it off for as long as possible. However, we were experiencing issues with an end-of-life’d vendoring tool, hundreds of megabytes of vendored dependencies, and an inability to integrate some of the latest and greatest dependencies. We couldn’t wait any longer — we needed to catch up with the world.

This is the story of that…

“Do a lot of work. Finish a lot of work. Share a lot of work.”

Image for post
Image for post
Deciding on a game engine takes a lot of thinking

I am a software engineer today because of the Starcraft Campaign Editor. Back in 4th grade, my friends and I played the original Starcraft everyday before school, after school, and on weekends. We often played custom campaigns which, I learned, can be made by anyone with the Campaign Editor. I had my first game engine in front of me. I spent hours and hours on it, never really finishing any of my “games”. But it gave me my first window into programming and game development.

Why you should review code & how to get started

Image for post
Image for post
Murphy reviews code. Be like Murphy.

Why review code?

I perform code reviews because:

  • It gives me practice reading code.
  • I learn more about the code base.
  • I learn different styles and approaches to writing code.
  • I understand what people are working on and what is changing.
  • It helps my teammates improve their code, catch bugs, and get their code through the door.
  • It earns respect from teammates.

Hopefully, you’re convinced you should make code review a habit. However, the biggest hurdle probably isn’t motivation, but uncertainty on how to get started.

Tips for reviewing code

Reviewing code when you’re starting at a company can feel daunting. Not only because of “imposter syndrome”…

Transitioning the code review tool of a monorepo

Image for post
Image for post
Photo by Patrick Hendry on Unsplash

This is part of a blog series on managing monorepos. If you haven’t already, check out https://medium.com/compass-true-north/repositories-one-or-many-f9da590611af. More to come in the next few weeks!

At Compass, we have over 350 software engineers collaborating on a single monolithic repository (see our post on multi-repo vs monorepo) that is home to hundreds of our backend services.

We were using Gerrit as a code review tool for this monorepo but decided to switch over to Github. This is the story of that transition.

Why did we do this?

The benefits of Github that fueled the transition include:

  1. Many engineers have a preference for the Github UI over…

Nathaniel Morihara

Software Engineer @ Compass. nathanielmorihara.com

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