Comprehensive Go Code Audit
Has your team recently switched to Go?
Whether your depth of experience is in Java, C#, Ruby, Python, or any other language, Go has some unique charactaristics that trip up even the most experienced developers.I'll help you cut through the confusion with a specific action plan for improvement.
Are you overwhelmed finding the best way to use Go?
Go is often called a "simple" language, but simple syntax doesn't always mean simple to understand.
Have you ever thought:
- No inheretence?
- Error handling is just so verbose!
- Dependency management is strange
- How do I make effective use of
- What web framework or library should I use?
- How do I really take advantage of concurrency?
- Should I be using an ORM in Go?
How can you know you're not shooting yourself in the foot with every line of code you write in this new language?
Take control of your Go
Imagine knowing that you're not shooting yourself in the foot! Imagine having the confidence to move forward quickly with new features, even though the language is new to you and your team.
I'll review your current project, then provide you with the five highest-impact areas for improvement presented to you both in writing, and via two half-day interactive workshops. I will also stick around to support your entire team during the implementation phase for three months (or as long as you need).
I'll also provide a laundry list of lower-priority issues I discover during my audit that you can use to feed your improvement backlog when time permits.
How does it work?
My Comprehensive Go Code Audit is a fixed-length engagement that takes place initially over a 2- to 3-week time period, with ongoing support for 3 months. I will audit a single code repository* worked on by a single team of up to 10 engineers*. Here's how it works:
- Step 0. Prerequisites. As soon as payment is received, I will:
- Send you a signed copy of my standard NDA, so you can rest assured that your code is safe in my hands.
- Add your team to my private Slack group, for communication for the duration of the engagement
- Work with you to schedule the two interactive workshops (see below)
- Step 1. Share the Source Code. Before beginning, I will need access to your source code. Ideally, this is via GitHub, GitLab, BitBucket, or whatever online version control you currently use, but I can also audit a zip file of your Git repository. When sending a zip file, you are encouraged to encrypt it (PGP public key available upon request).
- Step 2. Workshop 1 (1-2 weeks after payment) During the first interactive workshop, I will:
- Present high-level findings on the health of your Go code base
- Identify the five highest-impact areas I see where your team can improve the code, its design, or structure
- Provide suggested action steps to implement these changes, and where appropriate, discuss any design trade-offs that may need to be considered
- Send you the "laundry list" of lower-impact items I discovered during my audit, which may be worth adding to your longer-term, lower-priority improvement backlog
- Take questions from the team, and requests for topics for the second work shop. Usually after the first workshop, the team has identified one to three areas for a deep dive during the second work shop
- Step 3. Workshop 2 (1-2 weeks after first) The agenda for the second workshop is mostly up to your individual team. Common topics include deep-dives into specific areas of concern such as error handling in Go, how to write Go middleware, or anything of particular relevance to the team. This session often includes mob programming, where we implement a feature togethr as a team.
- Step 4. Ongoing Support It's my goal to help your team succeed and achieve its goals with Go. As such, every code audit includes a minimum of three months of ongoing support (via Slack). Any time anyone on your team has a question for a Go expert, just ask me on the designated team Slack room, and I'll answer within one normal work day. If you would like more than three months of support, that is of course an option. Let's chat about what your team needs to succeed!
*Do you have more than one repository? Do you have more than one team? We can still work together! Contact me to discuss a customized arrangement!
Who are you, anyway?
Hi! I'm Jonathan Hall, and I've been programming in Go since 2015. Prior to that I was programming in a number of other languages since the age of 8 where I started on a Commodore 64.