4.9 (5)
5 Days
·Cohort-based Course
Code a network server from scratch. Master network programming, concurrency, testing, and systems software while building a Redis server.
4.9 (5)
5 Days
·Cohort-based Course
Code a network server from scratch. Master network programming, concurrency, testing, and systems software while building a Redis server.
Course overview
Challenge yourself by implementing a lite version of a Redis server. Starting from scratch we’ll work through building a clone of the original Redis server and extending it to support the RESP2 protocol and some additional commands.
This course is entirely project focused. The goal of the course is not just to learn how to write a server, but also how to approach the problem of server software. Part of the course involves group discussion about problem decomposition, coding techniques, design tradeoffs, testing, and other related topics. The rest of the time is spent working on individual coding.
Coding examples are written in Python. However, the project involves no third-party libraries, esoteric language-specific features, or language-dependent tooling. As such, you're free to implement the project in any programming language that you wish. Writing a server is a great way to learn a new programming language too.
01
Mid-level developers who want to learn how to sharpen their skills, improve their unit testing and gain experience code reviewing.
02
Senior+ developers who want to learn from their peers and gain insights on how others tackle real-world problems with a hands on project.
03
Engineering Managers - who want to remain hands on and refresh their understanding of current software development methodologies.
Learn about Redis, how it's built, and the data structures behind it
Redis is one of the most widely used key-value / NoSQL databases. It's also a great example of the power of Open Source software, great code and great documentation.
Develop your parsing skills.
These can be applied to a variety of problems including data munging, scraping, protocol implementation and more.
Understanding network programming.
This can be applied to making more robust, secure and scalable distributed systems.
Experience handling concurrency and parallelism in software.
Giving you the core skills to build scalable distributed systems.
Improved testing skills.
Network servers are complex system software with components that can interact in non-trivial ways. Figuring out how to test them is a challenge. You’ll explore unit and integration testing.
An introduction to Test Driven Development.
TDD is a great way to develop core components of system software, you’ll learn how it can help.
Experience pair / mob programming.
Optionally pair or mob with your peers and experience collaborative development practices.
Develop your code review skills.
Experience reviewing code written in different programming languages and styles.
Live sessions taught by John Crickett
Join live for real-time learning and direct access to the instructor.
Lifetime access to course materials
Continue to learn beyond cohort with session recordings and syllabus content.
Private community of peers
Get support and stay accountable with other like-minded students.
Certificate upon completion
Earn a certificate to share with your employer or add to LinkedIn.
Maven Guarantee
This course is backed by the Maven guarantee. Students are eligible for a full refund up until the halfway point of the course.
Build A Redis Server Clone: Master Systems Programming Through Practice
Dec
9
Dec
10
Dec
11
Dec
12
Dec
13
I'm a software engineer and sometimes a manager of software engineers. I've worked as both a senior individual contributor (Staff+) and a senior manager (VP Engineering, Head of Software Development).
I've worked across many tech stacks. I've spent most of the last six years building distributed systems with Python and Flask deployed on AWS using CloudFormation and some CDK.
Recently I've done some TypeScript/JavaScript, React and Next.js on the frontend with Node.js and Express on the backend. All deployed on AWS using CDK.
For most of my career before that I worked in C++. I'm coming the full circle now and currently learning Rust. Coding Challenges was born out of the process of learning Rust by building real-world applications.
Be the first to know about upcoming cohorts
6 hours per day
Monday to Friday
08:00 to 14:00 PT
For 6 hours per day we will work on building a working, tested clone of a Redis server.
Sign up to be the first to know about course updates.
Be the first to know about upcoming cohorts