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.
5 interactive live sessions
Lifetime access to course materials
In-depth lessons
Direct access to instructor
Projects to apply learnings
Guided feedback & reflection
Private community of peers
Course certificate upon completion
Maven Satisfaction Guarantee
This course is backed by Maven’s guarantee. You can receive a full refund within 14 days after the course ends, provided you meet the completion criteria in our refund policy.
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