Keeping My Skills Sharp
About a week ago I found out that my job as a Staff Engineer was eliminated as part of restructuring at Wayfair. This was the 5th time something like this had happened during my nearly three years there, so it wasn’t a complete shock.
As I dive into the job search, I wanted to find a way to keep my skills sharp. I really don’t like “grinding leetcode” as the kids say, for a few reasons. Leetcode skills are not the same as real world skills, and I want to do something that improves my real world programming abilities while also being fun. I’m fairly confident in my abilities to pass a technical interview, so I don’t feel the need to spend all my time on that.
My Goals During This Transition
During this job search period, I’m particularly focused on keeping my backend development skills fresh, exploring technologies I don’t use every day, and pushing myself to understand systems I typically just use rather than build. I want challenges that are both educational and engaging enough to keep me motivated. I also like having a structured course or project to help guide my learning and to keep engaged when I’m not interviewing or applying for new roles.
Learning Options I Considered
Building my own side projects
Of course I could just build something, and I am doing that too. I’m working on two different projects, one of which is a CLI written in go that will be an opensource tool for analyzing chess games using any UCI chess engine. The other is a web app in TypeScript that is also chess related. My main goal with these projects is to increase my skills with AI programming tools and to try to use the tools to write most of the code instead of using the tools as a fancy autocomplete. I’m exploring aidr, repomix, claude code, and windsurf.
Execute Program
Execute Program is an online learning platform from Gary Bernhardt that uses the science of spaced repetition to help you learn and remember programming concepts. There are courses on Python, Javascript, Typescript, SQL and regular expressions. The lessons are short and you’re just meant to spend a few minutes a day on them.
Pros: Science-backed learning approach, bite-sized lessons, built for experienced developers looking for a new skill Cons: Execute Program is really for learning a new language, and I don’t think it’s exactly what I’m looking for right now. If you wanted to spend 15 minutes every morning as a warm-up to your day, I think this would be a great option. Price: $39/month or $235/year
Boot.dev
Boot.dev is a platform that’s aimed at learning backend software development through building projects. There are courses in go, algorithms and data structures, sql and a lot more.
Pros: Project-based approach, focused on backend development Cons: Boot.dev is really aimed at beginners and most of the material is not particularly challenging for someone who has been programming for a long time. Price: $49/month or $348/year
Coding Challenges
Coding Challenges is a weekly substack that gives a new coding challenge every week. The challenges can vary quite a bit in complexity, from building your own URL shortener to building a Chess Engine. There’s some background and a few steps to get you started, but you’re mostly on your own. There are also some bigger courses such as Build a Redis Clone, which is a 6-week course that meets 3 times a week.
Pros: Wide variety of interesting projects, can choose based on interest Cons: I want something a little bit more structured than this. I don’t think you can complete a lot of these challenges in a week which I think would frustrate me. It’s a great resource for ideas though. Price: $8/month or $80/year
codecrafters.io
Codecrafters is another project based learning platform. Each project is in the form of Build Your Own X. Each project is broken down into multiple stages that you can work through at your own pace and in one of many different languages. As you commit code and push to their git remote, it will run tests based on your current stage.
Pros: Structured projects, multiple language options, builds real-world tools Cons: None for me so far Price: $120/quarter or $360/year
Why I Chose codecrafters.io
I decided to try codecrafters.io for several reasons. First, the “Build Your Own X” format directly addresses my goal of understanding systems I use but haven’t built. Second, the project structure offers guided learning without being too prescriptive. The stage-by-stage approach with automatic testing gives me both freedom and feedback.
I’ve started the Build your own SQLite project. I’m a few stages in and can start to parse a sqlite db file and read the schema. I’m really enjoying it so far. The project is challenging, but they have plenty of information in the stage, plus links to the right documentation you need to read to get through it. The last time I had to implement any part of a database was in college, so I’m refreshing old skills and learning more about a tool I’ve been using for years.
Got it! I’ll explore the developer education sites you mentioned, providing descriptions, pros and cons for each, and also listing any additional sites that cater to senior engineers.
Before I begin, do you have any specific areas of focus? For example, are you more interested in hands-on coding challenges, in-depth computer science learning, system design, or something else? This will help me refine the research.
You said: project based programming challanges that aren’t similar to leetcode ChatGPT said: Great! I’ll research developer education sites that focus on project-based programming challenges rather than algorithm-style problems like LeetCode.
I’ll provide descriptions of each site, their pros and cons, and highlight any additional platforms that cater to senior engineers looking for hands-on learning through real-world projects.
I’ll update you once I have the details ready!
Research completed in 8m · 32 sources Project-Based Developer Education Platforms Below we review four platforms focused on hands-on, project-based programming challenges (as opposed to algorithmic problem solving like LeetCode). Each section describes the platform and outlines its pros and cons. A final section provides additional similar platforms for senior engineers seeking real-world project practice. Coding Challenges (Substack by John Crickett) Description: Coding Challenges is a weekly newsletter and platform by John Crickett that provides coding challenge prompts focused on building real applications, not toy algorithms CODINGCHALLENGES.FYI . Each challenge walks you through creating a mini project (e.g. implementing a Unix tool or part of a system) and is designed to be doable in under 8 hours CODINGCHALLENGES.FYI . The challenges are language-agnostic, so you can use any programming language. The emphasis is on learning by doing – John advocates for practicing real-world software construction over solving abstract algorithm puzzles TECHLEADJOURNAL.DEV . The site hosts a library of 60+ project ideas with guidance on what to build and pointers to relevant documentation (for example, a Docker challenge includes links to Linux man pages), but it doesn’t hand-hold you with step-by-step solutions TECHLEADJOURNAL.DEV . Pros: Real-World Focus: Challenges simulate real software projects (e.g. building a tool or service), which helps you learn practical skills and technologies (file I/O, networking, etc.) rather than just data structures CODINGCHALLENGES.FYI . This means you end up with tangible projects you can run and showcase. Language Flexibility: You can solve the challenges in any language, so you can practice a new language or use one you’re comfortable with CODINGCHALLENGES.FYI . Regular Updates & Community: New challenges are released weekly, providing continuous learning opportunities. There’s an active community (Discord, etc.) where you can discuss solutions or get hints. This ongoing cadence can keep you motivated to practice consistently. Guidance Without Spoilers: Each challenge description points you toward the concepts or docs you’ll need (e.g. explaining what to research for implementing a mini-Docker or Redis), but leaves the actual implementation to you TECHLEADJOURNAL.DEV . This encourages independent problem-solving and learning how to learn. Cons: No Auto-Grading or IDE: This isn’t an interactive judge system – you work on projects locally. There’s no automated way to verify your solution besides provided hints or community feedback. You’ll need the discipline to test and validate your own work. Subscription for Full Content: The weekly newsletter is free, but some content (like detailed write-ups or courses) is behind a paid subscription (around $8/month) SIDESTACK.IO SIDESTACK.IO . Casual users get the challenge prompts, but paying unlocks deeper discussions, solutions, and discounts on any full courses. Moderate Time Commitment: While each project is intended to be under 8 hours, that’s still a significant block of time for a weekly challenge. Busy engineers might fall behind or feel pressure to finish weekly. There’s no penalty for skipping, but the backlog can grow. Not Beginner-Oriented: These challenges assume you have basic programming proficiency. A senior engineer will appreciate the open-ended nature, but less experienced devs might find the lack of step-by-step instructions challenging. There’s guidance on what to learn, but actually implementing the solution can be difficult without prior experience in the domain. CodeCrafters
Example profile on CodeCrafters showing completed “Build X from scratch” projects. Description: CodeCrafters is a platform offering advanced programming challenges where you recreate popular developer tools from scratch PHDECK.COM . It provides a hands-on, “learn-by-building” experience for experienced engineers. Challenges span multiple languages (Go, Python, Rust, C++, etc.) and include tasks like building your own Redis server, Docker container runtime, Git version control system, SQLite database, HTTP server, and more PHDECK.COM CODECRAFTERS.IO . The platform supplies a structured environment with test cases and a containerized runner that gives real-time feedback on your implementation. In essence, CodeCrafters guides you through implementing the low-level internals of real systems, helping you gain a deeper understanding of how these tools work under the hood. It’s deliberately challenging and geared towards those who want to push beyond tutorials for beginners CODECRAFTERS.IO . Pros: Highly Practical Projects: You end up writing substantial, real-world systems code – for example, a mini-Redis that can accept commands or a mini-Git that can commit changes. This is excellent for understanding system internals and “how the sausage is made” for tools we use daily PHDECK.COM . It’s a great way for senior devs to deepen their knowledge of networking, filesystems, parsing, etc. Multiple Language Support: For each project, you can choose from several programming languages. This lets you both learn the tool’s concepts and practice a language of your choice (e.g. implement “Build a Docker” in Rust or Go). Many users appreciate the variety of languages available PHDECK.COM PHDECK.COM . Interactive Feedback: The platform provides a test suite and runs your code in the cloud, giving you immediate feedback on whether your implementation meets the requirements (e.g. does your HTTP server respond correctly?). This “real-time feedback” makes the experience engaging and helps you iterate quickly, almost like having a coach or tests looking over your shoulder CODECRAFTERS.IO CODECRAFTERS.IO . Community and Credibility: CodeCrafters is used by engineers at top companies and even backed by industry leaders (like the co-founders of Instagram and Dropbox) CODECRAFTERS.IO CODECRAFTERS.IO . Completing these challenges can be a confidence boost and a notable achievement to mention. There’s also a Discord community for discussion and help. Cons: ** steep Difficulty & Time Investment:** These projects are hard. They can “ruin your weekend” (as one user joked) because of how deep you have to go CODECRAFTERS.IO . Expect to spend many hours (sometimes days) per challenge, especially if the domain is new to you. This is intentional for learning, but it may be tough to slot into a busy schedule. Paywall for Full Access: CodeCrafters has a free tier with limited access (usually you can try one challenge or a portion of it), but full content requires a subscription (~$30/month for individuals) CODECRAFTERS.IO CODECRAFTERS.IO . The free content is enough to get a taste, but serious learners likely need a paid plan to access all projects. Not a Guided Tutorial: While there are some hints and a step-by-step progression (you unlock stages of the project as you pass tests), it doesn’t teach concepts via explanatory text or videos like a traditional course. You often have to do external research (e.g. read protocol specs or library docs) to figure out how to implement a feature. This is great for learning if you’re self-driven, but can be frustrating if you prefer explicit instruction. Setup and Environment: You’ll be coding in your local environment or wherever you’re comfortable, then using the platform’s CLI to run tests in their cloud. This is fine for most, but it’s not as plug-and-play as browser-based coding sites. You might need to install dependencies or configure a dev environment for languages like Rust/C++, which could be a minor hurdle. Execute Program
An Execute Program review prompt for a Regular Expressions lesson, reinforcing concepts through interactive review. Description: Execute Program is an interactive learning platform created by Gary Bernhardt, focused on mastering programming languages and concepts through practice and spaced repetition REDDIT.COM . Instead of large projects, it offers courses on specific topics (currently things like modern JavaScript, TypeScript, Python, SQL, Regular Expressions, etc.) where you read brief lessons and immediately write code in the browser to answer exercises. The platform runs real code (it even loads a TypeScript compiler or a SQLite engine in your browser for the respective courses) and checks your answers instantly REDDIT.COM REDDIT.COM . A key feature is the built-in spaced repetition system: after completing lessons, Execute Program will schedule review questions in the days and weeks that follow to reinforce your memory of the material REDDIT.COM CODE.BRETTCHALUPA.COM . It essentially combines an interactive textbook with flashcard-like reviews, aimed at ensuring you truly retain new programming knowledge long-term. Pros: Interactive and Hands-On: You’re actively writing code as you go through lessons, not just reading or watching. Every concept taught (e.g. a JavaScript array method or a TypeScript type) is immediately followed by an interactive exercise where you must apply it, which solidifies understanding CODE.BRETTCHALUPA.COM . Spaced Repetition = Long-Term Retention: The platform’s use of spaced repetition is a standout feature. It reminds you to review concepts at expanding intervals (days, then weeks later) so you don’t forget what you learned REDDIT.COM CODE.BRETTCHALUPA.COM . This is great for senior engineers brushing up on fundamentals – the knowledge really sticks and becomes second nature. High-Quality Content: The courses are crafted by an experienced engineer (Gary Bernhardt) known for attention to detail. The material often goes beyond syntax – for example, the JavaScript course covers tricky behaviors and the SQL course delves into real querying scenarios. It’s been described as “university-level” rigor in terms of accuracy and depth, but delivered in a very accessible way CODE.BRETTCHALUPA.COM . Focus on Practical Fundamentals: Execute Program doesn’t teach you to build an app per se, but it deeply drills core skills (like writing correct SQL queries or understanding TypeScript’s type system) that are immediately useful in real projects. Senior devs can fill gaps in their knowledge or get up to speed on a new technology (e.g. learn Regex properly, or dive into advanced TypeScript) in an active way. Cons: Limited Topic Range: The library of courses is relatively small and focused mainly on web dev and programming language fundamentals (JavaScript, TypeScript, Python, SQL, etc.) CODE.BRETTCHALUPA.COM . If you’re looking to learn something outside these areas, Execute Program may not have content for it yet. It’s expanding slowly, but it’s not like there are hundreds of courses. Not Project-Based: While it fits the spirit of “not algorithm-focused,” it’s fair to note that Execute Program doesn’t have you build full projects. You’ll write lots of small code snippets and solve mini-problems, but you won’t come out with a standalone application or portfolio piece. It’s more about improving your knowledge and skill fluency than producing artifacts. Daily Commitment Needed: The spaced repetition model works best if you log in regularly to do your reviews and a bit of new material. If you stop coming back, you’ll accumulate a review backlog or forget things. Some users might find the “daily quiz” aspect burdensome over time, especially if juggling many responsibilities. Cost: Execute Program is a paid product (approximately $39 per month, with discounts for annual plans) CODE.BRETTCHALUPA.COM . There’s no free tier beyond an initial trial for some lessons. For the depth it provides, many find it worth it, but the price is substantial compared to free resources, which could be a downside if budget is a concern. Boot.dev Description: Boot.dev is a gamified, self-paced online platform specifically for back-end web development BOOT.DEV . It offers a structured curriculum (a “Backend Developer” career path) composed of multiple courses that teach you Python, Go, data structures & algorithms, databases (SQL), APIs, Docker, Kubernetes, and more – all with hands-on coding exercises. The learning experience is interactive and text-based (no long videos), often framed as completing quests or challenges to keep it engaging. As you progress, you build several personal projects which can be used for your portfolio, and even tackle a final capstone project geared toward making you job-ready BOOT.DEV . Boot.dev is targeted at learners who prefer doing over watching; it tries to combat the boredom of traditional online courses by breaking lessons into bite-sized, interactive chunks and adding a layer of RPG-like progress (levels, achievements). Pros: Project-Centric Curriculum: Throughout the program, you create multiple small-scale back-end applications and scripts. These projects reinforce what you learn in each module and by the end you have tangible results (e.g. a JSON API, a web crawler, etc.) to show on your resume BOOT.DEV . The platform explicitly encourages adding the projects to your portfolio. Backend Focus: Unlike many platforms that concentrate on front-end or generic coding, Boot.dev is “laser focused” on backend development (server-side languages, databases, architecture) BOOT.DEV . This niche focus means the content is very relevant if you want to become (or improve as) a backend engineer – covering things like HTTP, servers, and deployment which some broader programs gloss over. Engaging and Gamified: Lessons are designed to keep you engaged with short reading segments followed by an immediate coding quiz or challenge. There’s a sense of progression (levels, XP, etc.), which can motivate you to keep going. If you find it hard to stick with dry online courses, Boot.dev’s approach of “learn by doing, with a touch of fun” can be effective BOOT.DEV . Affordable & Accessible: The platform markets itself as an affordable alternative to bootcamps – “learn for the price of a gym membership” BOOT.DEV . It has a subscription model (with a free trial for initial chapters) that is much cheaper than a formal bootcamp or degree. Also, everything runs in the browser, so you don’t need to set up a complex dev environment to start coding through their exercises. Cons: Not Advanced Enough for Some Seniors: Since Boot.dev aims to take someone from beginner to employable, it starts with fundamentals (e.g. basic Python syntax, simple data structures). A senior engineer might find the early parts of the curriculum too elementary. The depth on certain advanced topics may also not satisfy someone with years of experience – it’s more geared toward junior-intermediate level by the end. Linear Learning Path: The structured curriculum is a double-edged sword. You have to follow the path through each course in sequence. If you only want to target a specific skill (say learn Go fast, or just brush up on SQL), you might feel constrained by the format. Skipping ahead is not the intended use, though you can test out of some basics. Newish Platform: Boot.dev (founded by Lane Wagner) is a relatively new platform, and while content is growing, it’s not as time-tested as some larger sites. The community is smaller (though there is a Discord). A senior engineer may find fewer peer learners at their level compared to more established or broader platforms. Requires Subscription for Full Content: Similar to others, Boot.dev lets you try the first parts of each course free in a read-only interactive mode, but to do the full exercises and projects you need a paid membership. The cost is modest (around $25/mo), but it’s not completely free beyond previews. Additional Platforms for Hands-On Project Learning For more project-based learning, consider these platforms and resources which also emphasize “learning by building” (especially useful for experienced developers looking to sharpen skills through real-world projects): freeCodeCamp – A well-known free coding curriculum. It offers multiple certifications that require building projects, and even includes collaborations with nonprofits for real applications. Its extensive curriculum covers web development from beginner to intermediate, and all content is 100% free and self-paced ALGOCADEMY.COM ALGOCADEMY.COM . Pros: Huge community, lots of practice projects, broad range of topics. Cons: Mainly aimed at beginners-to-juniors and can be too structured or slow for some seniors, and there’s less focus on advanced computer science concepts. The Odin Project – An open-source full-stack web development curriculum that is completely project-based. From day one, you’ll be building actual websites and applications and using tools like Git/GitHub for version control ALGOCADEMY.COM . It integrates external resources (like documentation and blog tutorials) and has you build portfolio-ready projects at each step. Pros: Free, community-supported (active Discord), emphasizes real development workflows and reading official docs. Cons: Focused on web dev (HTML, CSS, JS, Ruby on Rails, etc.) so not as relevant if you want other domains; also requires a lot of self-direction and can be challenging without the “hand-holding” of an instructor ALGOCADEMY.COM . JetBrains Academy (Hyperskill) – A platform that provides project-based courses in various programming tracks (Java, Kotlin, Python, Web Dev, etc.), developed by the makers of IntelliJ IDEA. You learn by building one large project incrementally, with many smaller coding tasks (stages) that add features to the project. The education style is akin to a university course but very hands-on, with “many practical, real-world projects” embedded in the curriculum HYPERSKILL.ORG . Pros: Structured learning paths up to job-ready level, great integration with JetBrains IDEs, suitable for learners from beginner to advanced (you can skip ahead if you prove proficiency). Cons: Full access requires a subscription (though there’s a free tier for some content), and the heavy project focus means it can take a while before you feel “done” with a track. Exercism.io – A free practice platform offering exercises in 75+ programming languages with a focus on mentorship and improving coding style EXERCISM.ORG . Exercism’s problems are not exactly full projects, but they are more about implementing modules or solving tasks in a way that mirrors real-world coding (with tests provided) rather than puzzle tricks. You can request feedback from volunteer mentors on your solutions, which is invaluable for improving as a senior engineer looking for refinement. Pros: Completely free, wide language selection (great for picking up a new language by doing idiomatic exercises), human feedback aspect. Cons: Exercises are typically small in scope (functions, classes, etc.), so you won’t build large applications here. It’s more for honing language-specific skills or coding best practices than system design. DevChallenges.io – A platform with real-life web and full-stack project challenges to help you build a portfolio. It provides specifications/designs for things like responsive websites, front-end apps, or small full-stack apps. You work on the project on your own, then submit your solution (with a GitHub repo and live demo link) for community feedback DEVCHALLENGES.IO DEVCHALLENGES.IO . Pros: Focus on building portfolio-ready projects, active community reviewing each other’s code, covers modern tech (React, Vue, Tailwind, etc.). Cons: Skews toward front-end and UI-heavy projects (though some backend included), and the quality of feedback can vary since it’s peer-driven. Codementor DevProjects – A collection of curated project ideas and challenges designed by senior developers, hosted by Codementor CODEMENTOR.IO . These range from beginner to advanced and span web, mobile, and other categories. It’s less of an interactive platform and more of a repository of project descriptions, but it’s useful for inspiration and structured project prompts. Pros: Free and wide-ranging, helps experienced devs find interesting project ideas to build (with defined requirements to simulate working for a “client”). Cons: No integrated environment or feedback system – you undertake the project on your own, so you must be self-motivated to complete and perhaps seek out your own code review. Each of the above options caters to learning by doing. Depending on your goals – be it brushing up on fundamentals, diving into system internals, or creating portfolio projects – you can pick the platform that best suits your needs. All of these de-emphasize classic algorithmic puzzles in favor of practical coding experience, which is ideal for senior engineers looking to level up through real-world practice.