5.0
(4 ratings)
4 Weeks
·Cohort-based Course
This course will help you become a better software engineer by building your own Redis server.
5.0
(4 ratings)
4 Weeks
·Cohort-based Course
This course will help you become a better software engineer by building your own Redis server.
Course overview
Course Content:
An introduction to Redis, how it’s built and the data structures it uses.
How to break a project down into steps.
Choosing a technology stack for a project.
The benefits and use of Architecture Decision Records.
Using Test Driven Development to develop software.
Automating build and test in a CI pipeline.
Code reviews - how to review code and the benefits of code reviews.
Network programming - how to write programs that talk over a network.
A look at the tradeoffs between threading and async when building servers.
Performance optimisation.
01
New developers who want to learn how to build robust software from scratch by breaking a project down into steps then managing delivery.
02
Mid-level developers who want to learn how to sharpen their skills, improve their unit testing and gain experience code reviewing.
03
Senior+ developers who want to learn from their peers and gain insights on how others tackle real-world problems with a hands on project.
04
Engineering Managers - who want to remain hands on and refresh their understanding of current software development methodologies.
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.
Learn how to break a software project into small achievable stages when developing from scratch.
Learn about these lightweight documents that capture important architectural decisions along with the when, how and why of the decision.
Learn when to make use of them in a software development project and how they can help us maintain high quality software.
Discover how test driven development can allow us to make progress on delivering software without needing a fully functional system.
Get to grips with the testing libraries in your chosen technology stack and use them to build high quality software.
Build a CI pipeline for your Redis Server to automate the build and test of the server allowing rapid iteration.
You will learn how to review code.
You will also learn how to review code you've never seen before, potentially in a programming language you've never used.
You'll be building a server that will accept incoming network connections and handle multiple concurrent clients.
Gain an understanding of the limitations of threading and the challenges of async code so you can make informed decision when building servers or other concurrent code.
Become a Better Software Developer by Building Your Own Redis Server
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.
01
Week 1 - Redis, ADRs and TDD.
Learn about Redis, architecture decision records and test driven development.
Write and share an ADR, review your peers ADR.
Build unit tests for a Redis protocol handler.
02
Week 2 - Data Structures, Threads and Async
Get into the meat of the project building on the core data structure, picking threads or async to handle concurrency.
Make your server handle multiple concurrent clients.
03
Week 3 - Performance and Demo Day
Complete the implementation of your Redis Server.
Profile it, tune it and then Demo it to your peers.
1:00pm - 2:00pm EST
For 45 minutes to an hour each Monday and Thursday there will be a live session to introduce the next projects and conduct peer reviews and group discussions led by me.
2-6 hours per week
You should expect to spend 2 to 6 hours per week to complete the assigned study and project work.
Active hands-on learning
This course builds on live workshops and hands-on projects
Interactive and project-based
You’ll be interacting with other learners through breakout rooms and project teams
Learn with a cohort of peers
Join a community of like-minded people who want to learn and grow alongside you