Skip to content

learnbyfixing/learnbyfixing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Learn by Fixing

Hands-On Linux and DevOps Challenges.

Fix real Linux servers.

Practice your troubleshooting skills.

Try a free scenario

Screenshot

What is it?

Learn By Fixing is a platform where you practice Linux, Docker, and DevOps troubleshooting through hands-on challenges.

Each scenario gives you a broken Linux server and a terminal.

Your goal is simple: Fix it.

Who is this for?

These scenarios are built for engineers who want real-world troubleshooting practice:

  • Engineers preparing for DevOps or SRE interviews.
  • Developers moving into DevOps roles.
  • Engineers who want to get better at debugging production issues.

How does it work?

All scenarios run in a browser-based terminal. No installation required.

  1. Start a scenario.
  2. Investigate the problem from the terminal.
  3. Fix the issue.
  4. Click on "Check Solution" to verify your fix.

Stuck? You can reveal hints or view the full walkthrough anytime.

Scenarios

Here are some of the troubleshooting scenarios available on the platform:

Scenario Tags Skill level Try
Reloading without restarting Linux Beginner Link
Where is it logging? Linux Beginner Link
What is writing to this file? Linux Beginner Link
My app's port is already taken Linux Beginner Link
Too much logging Linux Beginner Link
Wrong version Linux Beginner Link
Program not found Linux Beginner Link
Errors only Linux Beginner Link
Don't overwrite previous reports Linux Beginner Link
That Kubernetes secret is wrong Linux Beginner Link
Exiting vi the wrong way Linux Beginner Link
Where shall I put the config file? Linux Beginner Link
Port already used, but which one? Linux Intermediate Link
A verbose Docker container Docker Beginner Link
Reloading without restarting the Docker container Linux Intermediate Link
Docker image is too big Docker Intermediate Link
Containerized app does not start Docker Intermediate Link
Broken Docker Compose file Docker Intermediate Link

Guides

These guides cover the core concepts used in the scenarios:

Guide Description
Signals Learn about signals, the most common ones, and how to send them in Linux.
File descriptors Learn about file descriptors, the three standard ones, and what tools you can use to work with them.
Environment variables Learn about env vars, the most common ones, and how to work with them in Linux.
Shell redirection Learn how to redirect input and output when running a program from the shell.
Pipes Learn how pipes work and how to connect commands using them.
System calls and strace Learn how to inspect system calls using strace.

Why did I build this?

After years of running mentoring sessions and technical interviews, one thing kept bothering me:

Creating realistic troubleshooting scenarios is too much work.

To simulate a simple issue, you need to:

  • Provision infrastructure with Terraform.
  • Configure everything with Ansible.
  • Break things on purpose.
  • Write validation scripts.
  • Tear everything down to avoid cloud costs.

That's a lot of overhead for a 30-minute debugging exercise.

What I actually wanted was troubleshooting practice, not building something from scratch.

So I built Learn By Fixing: a platform with ready-to-use scenarios where you can immediately practice your troubleshooting skills.