Go Team Training Curriculum

Ultimate Go: Language Guide
There will be very little time spent on specific Go syntax. Our time will be spent learning how to read and comprehend Go code with a big focus on “if performance matters” then these things matter.
with Bill KennedyShow Details
Course Description
The Ultimate Go: Language Guide has been designed over the past 8 years and goes beyond just being a Go language class. There will be very little time spent on specific Go syntax. Our time will be spent learning how to read and comprehend Go code with a big focus on “if performance matters” then these things matter.
Course Outline
- Data-Oriented Design
- Memory Semantics and Allocations
- Mechanical Sympathy with Hardware and Runtime
- Data Semantics
- Polymorphism with Interfaces
- Decoupling Mechanics / Semantics
- Compositional Design
- Scheduler Semantics
- Goroutines
- Data Races
- Synchronization / Orchestration
- CPU and Memory Profiling
- Tracing Programs
- Micro/Macro level profiling

Practical Go for Developers
Training class helps experienced engineers get effective with the Go programming language and learn by writing code to solve common programming tasks.
with Miki TebekaShow Details
Course Description
The Practical Go for Developers training class helps experienced engineers get effective with the Go programming language and learn by writing code to solve common programming tasks.
Course Outline
- Strings & formatted output
- Calling REST APIs
- Working with files
- Interfaces & Panics
- Sorting
- Catching panics
- Processing text
- Concurrency
- Distributing work
- Timeouts & cancellation
- Project Engineering
- Testing your code
- Structuring your code
- Writing an HTTP server
- Adding metrics & logging
- Configuration patterns

Performance Go for Developers
This course is aimed for experienced Go developers who’d like to extend their knowledge.
with Miki TebekaShow Details
Course Description
The Performance Go for Developers training class is aimed for experienced Go developers who’d like to extend their knowledge.
Course Outline
- Writing custom errors and the case of the nil error
- Stronger abstractions with small interfaces and using type assertions
- Customizing behavior by implementing interfaces in the standard library
- Reducing code size by using generics
- Going faster with CPU optimization
- Reducing memory usage
- Writing middleware for common tasks
- Advanced JSON serialization
- Streaming responses for large dynamic data
- Securing your server
- Utilizing workspaces to developing two dependant modules (such as application & logging library)
- Using build tags for platform dependent code
- Task automation with “go generate”, code that writes code
- Avoiding mocks by spinning services

Practical Go Services
This course is for Go developers who need to improve writing services and learn industry best practices. During this workshop we’ll develop a web service and implement the topics we discuss.
with Miki TebekaShow Details
Course Description:
This workshop is for Go developers who need to improve writing services and learn industry best practices. During this workshop we’ll develop a web service and implement the topics we discuss.
Course Outline
- Writing a Web Service
- Storage & Health
- Testing & Performance
- Securing Your Application

Ultimate Go: Software Design with Kubernetes
This course teaches you how to build production-level services in Go, leveraging the power of a Domain Driven, Data Oriented Architecture deployed in Kubernetes.
with Bill KennedyShow Details
Course Description
From the beginning of the course, you will pair-program with your instructor Bill Kennedy as he walks you through the design philosophies, architectural decisions, and best practices as they apply to engineering a production-ready Go service.
With each new feature that is added to the service, you will learn how to deploy and manage the Kubernetes environment used to run the service. Throughout the class, the code being worked on is pushed to a repository for personal access and review.
Course Outline
- Introduction
- Deploy First Mentality
- Kubernetes
- Kubernetes Quotas
- Finish Initial Service Startup/Shutdown
- Web Framework
- Middleware
- JSON Web Tokens (JWT)
- Key Store
- Authentication / Authorization
- Domain Driven, Data-Oriented Architecture
- Database Support
- Database Migrations and Seeding
- API, App, Business, and Storage Implementation
- Testing
- Delegate and Transactions
- Observability
- Review Service Project

Ultimate Go: Advanced Engineering
This Course has been designed to teach advanced Go concepts by building a reference implementation of a blockchain in Go!
with Bill KennedyShow Details
Course Description
The Ultimate Go Advanced Engineering class has been designed over the past year and will teach advanced Go concepts by building a reference implementation of a blockchain in Go! The goal of this class is to share how to code complex engineering tasks required to build a blockchain technology.
From the beginning, you will pair-program with the instructor, walking through the design philosophies and guidelines used to engineer the code. Throughout the class, you will learn more about Go and the advanced engineering features of the language.
Course Outline
- Introduction
- Blockchain Fundamentals
- Genesis
- Digital Signatures
- Database
- Cryptographic Audit Trails
- Memory Pools
- Accepting Signed Transactions
- Mining
- Storage
- Peer to Peer Networking
- Wallets

Custom Practical Go Training and Boot Camps
Our custom hands-on Go training contains several modules that you can choose from to create a syllabus tailored to your needs - we have a lot of experience with Go and development at large. We can build the right training for you.
with Miki TebekaShow Details
Course Description:
Our custom hands-on Go training contains several modules that you can choose from to create a syllabus tailored to your needs. Feel free to reach out if you have a need that is not converted by the following topics - we have a lot of experience with Go and development at large.
These classes are led by Miki Tebeka. Miki has more than 25 years of experience developing software for clients, with 11 of those years writing code in Go. Miki is the author of several books, a LinkedIn Learning author and a very busy teacher. Miki teaching style is “hands on” - you’re going to write a lot of coding during these sessions.
- Each module takes between 3.5 and 4 hours to complete
- Some modules can be turned into 2 hour blocks
- Custom Training is taught Monday through Thursday for 4 hours each day
Modules Available
- Variables, Conditions & Loops
- Collections Types
- Functions
- Error Handling
- Structs & Methods
- Interfaces
- Goroutines & Channels
- The “sync” and “sync/atomic” packages
- Logging & Metrics
- Timeouts & Cancellations
- Project Management
- Testing
- HTTP Clients
- HTTP Servers
- Protocol Buffers
- gRPC Basics
- gRPC Topics *
- Writing Secure Go Code
- Static Analysis
- The Empty Interface
- Iota & Enums
- Working with Files
- Working with Relational Databases
- Calling non-Go Code
- Working with Time
- Configuration
- Networking
- Sorting
- Building
- Regular Expressions