Introducing our new training format that provides you a mix of self-paced courses and live Q&A discussions with the instructors every week.
At the start of every course session, the instructor will host a video call to answer questions and go over the curriculum.
Every week your instructor will assign the video lessons you need to watch in preparation for the next discussion.
The instructor will host a live Q&A to answer and expand on any questions from that week's lessons.
After your completed session, we have many options for you to continue your self-paced education with Ardan.
The Q&A portion of the training will be recorded, and the recordings will be made available to the participants.
Starting October 2023
This class helps experienced engineers become effective with the Go programming language by writing code to solve common programming tasks.
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.
You need to know how to program and core concepts of working with computers (such as files, HTTP, memory management…)
You should have the following installed on your computer prior to the workshop:
Strings & Formatted Output:What is a string?Unicode basicsUsing ftm package for formatted output
Calling REST APIs:Making HTTP calls with net/httpDefining structsSerializing JSON
Working with Files:Handling errorsUsing defer to manage resourcesWorking with io.Reader & io.Writer interfaces
Sorting:Working with slicesWriting methodsUnderstanding interfaces
Catching Panics:The built-in recover functionNamed return values
Processing Text:Reading line by line with bufio.ScannerUsing regular expressions
Distributing Work:Using goroutines & channelsUsing the sync package to coordinate work
Timeouts & Cancellation:Working with multiple channels using selectUsing context for timeouts & cancellationsStandard library support for context
Testing Your Code:Working with the testing packageUsing testifyManaging dependencies with go mod
Structuring Your Code:Writing sub-packages
Writing an HTTP Server:Writing handlersUsing gorilla/mux for routing
Adding Metrics & Logging:Using expvar for metricsUsing the log package and a look at user/zap
Configuration Patterns:Reading environment variables and a look at external packagesUsing the flag package for command line processing
This class teaches you how to build production-level services in Go, leveraging the power of Kubernetes.
The Ultimate Go Service with Kubernetes class has been designed over the past 5 years and goes beyond just being a Go service class. This course teaches you how to build production-level services in Go, leveraging the power of Kubernetes.
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.
Introduction:1.0 - Intro - (01:00)1.1 - Design Philosophy, Guidelines, What to Expect - (03:00)1.2 - Tooling to Install - (05:00)
Modules:2.0 - Intro - (01:00)2.1 - Adding Dependencies - (23:00)2.2 - Module Mirrors - (19:00)2.3 - Checksum Database - (05:00)2.4 - Vendoring - (05:00)2.5 - MVS Algorithm - (18:00)
Kubernetes:3.0 - Intro - (01:00)3.1 - Tooling Installation - (05:00)3.2 - Understanding Clusters, Nodes & Pods - (10:00)3.3 - Write Basic Service for Testing - (08:00)3.4 - Zarf Layer - (11:00)3.4.2 - Kind Configuration - (06:00)3.4.3 - Core K8s Configuration - (17:00)3.4.4 - K8s Quotas / Patching - (19:00)
Initial Service Design:4.0 - Intro - (01:00)4.1 - Project Layers, Policies, and Guidelines - (18:00)4.2 - Prepare Project - (19:00)4.3 - Logging Support - (17:00)4.4 - Configuration Support - (22:00)4.5 - Debugging / Metrics Support - (22:00)4.6 - Shutdown Signaling & Load Shedding - (11:00)
HTTP Routing Basics:5.0 - Intro - (01:00)5.1 - Basic Structure of an HTTP Router - (11:00)5.2 - Add a Readiness, Liveness & Test Handler - (24:00)
Web Framework:6.0 Intro - (01:00)6.1 Custom Router - (18:00)6.2 Custom Handler Function - (13:00)6.3 Middleware Support - (09:00)6.4 Sending Responses - (05:00)
Middleware:7.0 - Intro - (01:00)7.1 - Logging - (14:00)7.2 - Request Context - (16:00)7.3.1 - Understanding what Error Handling Means - (15:00)7.3.2 - Declaring Custom Error Types - (17:00)7.3.3 - Consistent Handling & Response - (13:00)7.4 - Panic Handling - (09:00)7.5 - Metrics - (18:00)
JSON Web Tokens (JWT):8.0 - Intro - (01:00)8.1 - Understanding JWT - (09:00)8.2 - Private/Public Key Generation - (12:00)8.3 - Token Generation - (21:00)8.4 - Token Signature Validation - (07:00)
Authentication / Authorization:9.0 - Intro - (01:00)9.1 - Auth Package - (11:00)9.2 - Implementation of an In-Memory Key Store - (09:00)9.3 - Middleware - (14:00)9.4 - Auth Unit Test - (20:00)
Database Support:10.0 - Intro - (01:00)10.1 - Kubernetes Support for Postgres - (10:00)10.2 - Using Sqlx - (01:00)10.3 - Update Readiness Handler to Perform DB Checks - (06:00)
Database Migrations and Seeding:11.0 - Intro - (01:00)11.1 - Maintaining Database Schemas - (16:00)11.2 - Seeding Data - (05:00)11.3 - Init Containers - (10:00)
Business Packages:12.0 - Intro -(01:00)12.1 - Design Philosophies, Policies, & Guidelines -(12:00)12.2 - User Data Models & API Precision -(18:00)12.3 - Data Model Validation -(08:00)12.4 - User CRUD Data Business Package APIs -(27:00)12.5 - User Core Business Package APIs -(08:00)
Testing Data Business Packages:13.0 - Intro - (01:00)13.1 - Support for Starting and Stopping Containers - (14:00)13.2 - Support for Starting & Stopping a Unit Test - (11:00)13.3 - Write User CRUD Data Unit Tests - (12:00)
Rest API:14.0 - Intro - (01:00)14.1 - Writing User Web Handlers - (14:00)14.2 - Support for Starting & Stopping an Integration Test - (04:00)14.3 - Write Integration Tests for Users - (11:00)
Open Telemetry:15.0 - Intro -(01:00)15.1 - Integrate OTEL Web Handler into the Framework -(12:00)15.2 - Integrate OTEL into Service Startup -(09:00)15.3 - Add Zipkin into POD -(11:00)15.4 - Add Tracing Calls Inside Functions to Trace -(08:00)
Review Service Project:16.0 - Intro - (01:00)16.1 - Check For Dependency Upgrades - (07:00)16.2 - Rebuild and Run the Project - (07:00)
This class helps experienced engineers become effective with the Rust programming language by writing code to solve common programming tasks.
The Ultimate Rust Foundations class starts with an introduction to Rust, and why you benefit from using – both as a foundation, and within your existing ecosystem.
Bill has been developing software for more than 30 years. In 2013, he became a pioneer using Go and now has trained over 30,000 engineers that work for Fortune 100 companies. He also is the author of Go in Action, the Ultimate Go Notebook, and is the main contributor to our blog.
Miki is a software developer with more than 20 years of experience. He has taught many workshops on various technical subjects all over the world at companies such as AT&T, Oracle, Dropbox, J.P. Morgan, and others.
Herbert has been developing software professionally for more than 20 years. Starting with Pascal, and then moving on to C and C++, Herbert has developed custom applications ranging from web-server filters to games. Herbert is the author of Hands-on Rust and Rust Brain Teasers.
We've built our reputation as educators and bring that mentality to every project. When you partner with us, your team will learn best practices and grow along the way.
Years in Business
Reach out and let us know what you are interested in.
Please fill out the form below, and we'll get back to you soon.
Check your email for confirmation of your sent message. We'll get back to you shortly.
Ardan Labs Copyrights © 2023