NEW courses available! Our Rust Self-Paced Training bundle has 2 new courses. View New Curriculum →
Ardan Labs

Blog Posts by Ardan Labs

Subscribe to our Newsletter

By signing up you get access to our FREE Training Bundle, Technical Tuesday releases, Special Offers, & Notifications on our latest content.

Dec 30, 2024

kubernetes training

Introduction: In the final episode of the Optimizing Databases on Kubernetes series, Jérôme Petazzoni dives into advanced backup and recovery techniques for PostgreSQL, …

Dec 23, 2024

kubernetes training

Introduction: In Episode 4 of the Optimizing Databases on Kubernetes series, Jérôme Petazzoni benchmarks the performance of various Kubernetes storage classes, including …

Dec 18, 2024

kubernetes training

Introduction: In Episode 3 of the Optimizing Databases on Kubernetes series, Jérôme Petazzoni introduces ZFS, a versatile file system renowned for its features like …

Dec 12, 2024

kubernetes training

Introduction: In this episode, Jérôme Petazzoni explores how Kubernetes and CNPG (Cloud Native PostgreSQL) work seamlessly to manage database operations during node …

Dec 9, 2024

kubernetes training

Introduction: In this introductory episode, Jérôme Petazzoni walks through the critical steps of provisioning a Kubernetes cluster tailored for running databases like …

Dec 5, 2024

rust training

Introduction: Welcome to Episode 7 of the Fearless Concurrency in Rust series! In this final episode, we explore advanced concurrency techniques that enable efficient, …

Nov 25, 2024

go training JSON

Introduction: Welcome to the final episode of the JSON for Engineers series! In this concluding session, we tackle the challenges of working with large JSON datasets, …

Nov 21, 2024

rust training

Introduction: Welcome to Episode 6 of the Fearless Concurrency in Rust series! In this episode, we explore the powerful concept of ARC (Atomic Reference Counting) and its …

Nov 14, 2024

go training JSON

Introduction: Welcome to Episode 4 of the JSON for Engineers series! In this episode, we tackle the complexities of working with JSON data, especially when dealing with …

Nov 8, 2024

rust training

Introduction: Welcome to Episode 5 of Fearless Concurrency in Rust! In this episode, Herbert Wolverson dives into advanced concurrency tools, focusing on RwLock for …

Oct 31, 2024

go training JSON

Introduction: Welcome to Episode 3 of JSON for Engineers! In this episode, Miki Tebeka explores the intricacies of JSON field mapping and value handling, especially when …

Oct 29, 2024

rust training

Introduction: As you embark on the journey from C or C++ to Rust, you’ll discover a world of exciting possibilities. Rust’s emphasis on safety, concurrency, …

Oct 25, 2024

rust training

Introduction: Welcome to Episode 4 of Fearless Concurrency in Rust! In this episode, we explore how Rust’s ownership and borrowing rules impact multithreaded programming, …

Oct 17, 2024

go training JSON

Introduction: Welcome to Episode 2 of JSON for Engineers! In this episode, we explore the unique characteristics of JSON as a schema-less format, discussing both its …

Oct 10, 2024

rust training

Introduction: Welcome to Episode 3 of the Fearless Concurrency series! In this episode, Herbert explores advanced threading techniques in Rust, focusing on scoped threads …

Oct 3, 2024

go training JSON

Introduction: Welcome to Episode 1 of JSON for Engineers! In this first episode, Miki Tebeka dives into the fundamentals of serialization, with a special focus on JSON, …

Sep 26, 2024

rust training

Introduction: Welcome to Episode 2 of the Fearless Concurrency in Rust series! In this episode, Herbert Wolverson dives into the fundamentals of threading in Rust, …

Sep 19, 2024

ai go training

Introduction: Welcome to the final episode of our Intro to Generative AI series! In this episode, Daniel Whitenack takes the concepts you’ve been learning and shows …

Sep 12, 2024

rust training

Introduction: In Episode 1 of the Fearless Concurrency in Rust series, Herbert Wolverson introduces the foundational concept of threads in programming, tracing their …

Sep 5, 2024

ai go training

Introduction: In Episode 6 of the Intro to Generative A.I. series, Daniel shifts the focus from basic search techniques to more dynamic, on-the-fly AI applications. He …

Aug 22, 2024

ai go training

Introduction: Welcome to Episode 5 of our Intro to Generative AI series! In this episode, Daniel explores practical techniques for enhancing AI models’ ability to …

Aug 8, 2024

ai go training

Introduction: Welcome to Episode 4 of our Intro to Generative AI series! In this episode, Daniel dives into the essential technique of prompt engineering, focusing on …

Aug 5, 2024

go training

Introduction: Welcome to Episode 12 of our Ultimate Software Design series! In this final installment, Bill guides us through the advanced implementation of transaction …

Jul 30, 2024

go training

Introduction: Welcome to Episode 11 of our Ultimate Software Design series! In this episode, Bill delves into the intricacies of implementing robust application layer …

Jul 25, 2024

ai go training

Introduction: Welcome to Episode 3 of our Intro to Generative AI series! In this episode, Daniel explores the critical aspect of prompt formatting when working with AI …

Jul 23, 2024

go training

Introduction: Welcome to Episode 10 of our Ultimate Software Design series! In this episode, Bill dives into the integration of authentication and authorization …

Jul 17, 2024

go training

Introduction: Welcome to Episode 9 of our Ultimate Software Design series! In this episode, Bill delves into the intricacies of implementing robust authorization and API …

Jul 6, 2024

ai go training

Introduction: Welcome to Episode 2 of our Intro to Generative AI series! In this segment, Daniel dives into the practical aspects of working with large language models …

Jul 2, 2024

go training

Introduction: In this segment, Bill delves into the fundamental aspects of authentication and authorization, equipping Go developers with essential knowledge and advanced …

Jun 20, 2024

ai go training

Introduction: Welcome to the first episode of our “Intro to Generative A.I” series! In this episode, Daniel dives into the intriguing world of large language …

Jun 20, 2024

go training

Introduction: Going into more detail on error handling, Bill provides a comprehensive overview of effective strategies and best practices for Go developers. By exploring …

Jun 14, 2024

go training

Introduction: Continue the dive into the complexities of Go’s concurrency model in this segment of the “Ultimate Software Design” series, where Bill …

Jun 11, 2024

go training

Introduction: In this installment, Bill delves into the concept of load shedding in Go, explaining its importance in managing GoRoutines and ensuring clean shutdowns. How …

Jun 3, 2024

go training

Introduction: In this detailed discussion, Bill delves into the critical aspects of networking within Kubernetes clusters, emphasizing the necessity of properly defining …

May 28, 2024

go training

Introduction: In this installment of the Ultimate Software Design series, Bill guides us through setting up a Kubernetes environment using Kubernetes inside Docker …

May 21, 2024

go training

Introduction: In this insightful episode, Bill dives deep into the realm of package design, shedding light on its crucial role in software development. Here are three key …

May 20, 2024

rust training

Introduction: Join Herbert in an insightful discussion on concurrency, where he tackles the complexities of data races and how various programming languages address them: …

May 14, 2024

go training

Introduction: Embark on a journey into the heart of software design with the Ultimate Software Design series, where Bill navigates through the intricacies of crafting …

May 13, 2024

rust training

Introduction: Delving into the intricate realm of type coercion, Herbert’s insights offer invaluable guidance for Rust developers grappling with the complexities of …

May 3, 2024

rust training

Introduction: Delving into the intricate realm of type coercion, Herbert’s insights offer invaluable guidance for Rust developers grappling with the complexities of …

Apr 29, 2024

rust training

Introduction: Delving into the critical issues of overflow and underflow, Herbert’s insights offer valuable takeaways for Rust developers: Rust’s static …

Apr 22, 2024

rust training

Introduction: Exploring the critical issues of “use after free” and “use after move,” Herbert’s insights offer a valuable understanding to Rust …

Apr 15, 2024

go training golang rust

Introduction: Rust’s memory safety features are advantageous to Rust developers because they: Ensure robust protection against buffer overflows and underflows, …

Apr 3, 2023

go training golang

Introduction In episode 9, Miki discussed how a command flag can be decoded into a user defined type with the Value interface. As a recap, the Value interface consists of …

Mar 27, 2023

go training golang

Introduction In episode 8, Miki developed a Go HTTP client that had a method to check the health of a theoretical API. The method would construct the request URL and …

Mar 20, 2023

go training golang

Introduction In episode 7, Miki discussed design considerations to keep in mind while creating interfaces in Go with the first idea he proposed being that an interface …

Mar 13, 2023

go training golang

Introduction In episode 6, Miki built a logger package with the aim of making it as versatile as possible. To achieve this, he constructed his logger object with a …

Mar 7, 2023

go training golang

Introduction In episode 5, Miki wrote a function that counted the number of lines in a file with interfaces. The first thing his function did was to open a file with Go’s …

Feb 27, 2023

go training golang

Introduction In episode 4, Miki defined an enumerated type that satisfied Go’s fmt.Stringer interface. By implementing the fmt.Stringer interface, Miki can specify how …

Feb 21, 2023

go training golang

Introduction In episode 3, Miki implemented a type that satisfied Go’s error interface. The odd thing about his type was it would be considered not-nil although no value …

Feb 13, 2023

go training golang

Introduction In episode 2, Miki examined the impact interfaces have on the performance of a Go program. To perform this experiment, Miki invoked a type’s method in two …

Feb 8, 2023

go training golang

Introduction In episode 1, Miki had two functions that performed the similar operation, but returned different types. To refactor this, Miki rewrote both functions as a …

Jan 31, 2023

go training golang

Introduction Go interfaces are beneficial to Go developers because they: Allow interfaces to separate mechanism from behavior. Increase flexibility of function …
Introduction In episode 19, Bill designed and implemented the data structure for an account on his blockchain. This type will have a nonce field to ensure incoming …
Introduction In episode 17, Bill began to design an in-memory accounting database that will store the account balances on his blockchain. To build this database, Bill …
Introduction In episode 18, Bill defined the Go type that will represent a transaction and implemented the methods to validate one. While developing the transaction type, …

Jan 19, 2023

go training golang

Introduction Table tests are a great way to test different inputs and associated outputs for a function in Go. To write a table test, you define a slice of some data …
Introduction In episode 16, Bill implemented additional means of verification for his blockchain’s transactions. The first update he made was to verify if a transaction …
Introduction In episode 15, Bill architected a solution to ensure all the users on his blockchain were given a unique identifier. His approach consisted of essentially …

Jan 17, 2023

go training golang

Introduction When an API requires implementation details from the user, many developers use an interface for help. However, another way to allow developers to provide …

Jan 12, 2023

go training golang

Introduction In episode 14, Bill architected a solution to digitally sign the transactions on his blockchain. His solution retrieved the private key by : loading private …

Jan 12, 2023

go training golang

Introduction Google developed Go to be an alternative to C++ with the internet and scale in mind. Go’s toolchain automates tasks that are easily overlooked, and amongst …

Jan 11, 2023

go training golang

Introduction In episode 12, Bill laid out his strategy to handle data hashing on his blockchain. The first step he took was to create a package to handle the …

Jan 11, 2023

go training golang

Introduction In episode 13, Bill discussed the idea of adding salt to a hash and how modern crypto-currency blockchains use it to better interpret requests sent to nodes. …

Jan 4, 2023

go training golang

Introduction In episode 11, Bill highlighted the issue of identity verification and provided a solution to this problem. The solution proposed was to cryptographically …

Jan 3, 2023

go training golang

Introduction In episode 9, Bill introduced the idea of the genesis record and its role in his blockchain. As a recap, the genesis record will be used to customize the …

Jan 3, 2023

go training golang

Introduction In episode 10, Bill dove into the technical implementation of his genesis record and defined a custom Go type representing the record. While doing so, he …

Dec 20, 2022

go training golang

Introduction In episode 8, Bill wanted to build a blockchain in Go and began to lay the groundwork for the project. Go is a good choice because its standard library has …

Dec 19, 2022

go training golang

Introduction In episode 6, Bill gives an overview of what consensus algorithms are and how these algorithms ensure distributed databases are in sync. Moving forward Bill …

Dec 19, 2022

go training golang

Introduction In the first part of the series, Bill designed a dependency management system. The dependency manager needed to be distributed, transparent, …

Dec 16, 2022

go training golang

Introduction In this video, Paulo shows the benefit of leveraging generic functions to write less code that does more. He starts by walking you through an API server he …

Dec 16, 2022

go training golang

Introduction In case you missed episode 4, Bill attempted to integrate current database sharing solutions to solve the “database ownership” problem his dependency manager …

Dec 16, 2022

go training golang

Introduction In the last video, Bill left off talking about proof of work (PoW) algorithms. In a distributed and decentralized environment, PoW used to be the gold …

Dec 16, 2022

go training golang

Introduction Most apps that work with time values eventually need to display time to a user. Go has a unique way of allowing you to specify how to display time values …

Dec 14, 2022

go training golang

Introduction In episode 2, Bill designed a database for his dependency manager to enable Go developers to have reproducible,durable and secure builds. This database will …

Dec 14, 2022

go training golang

Introduction In episode 3, Bill needed to figure out how to share ownership of his dependency manager’s database in a secure and efficient manner. Bill is the only …

Dec 13, 2022

go training golang

Introduction In episode 1, Bill finished by describing the dependency management conundrum Go faced in its early days. Prior to the Go team providing the module system, …

Dec 12, 2022

go training golang

Introduction In this video, Bill will introduce the concepts of what a blockchain is, the benefits of a blockchain, and the network environment it operates in. Bill …