Implement a User-Space Shell with Process and Signal Handling
Overview
What this challenge is about.
Implement a User-Space Shell with Process and Signal Handling. Intermediate challenge in code. Writing production code that solves real engineering problems,...
The Brief
What you'll do, and what you'll demonstrate.
Implement a POSIX-style shell in C with pipelines, redirection, background jobs, and proper signal handling against a 25-case test script.
This is not a coding exercise. It is the work a software engineer does between a Jira ticket and a merged PR. That distinction matters to every hiring manager who has seen candidates solve LeetCode problems and none who have shipped production code under real constraints.
When you finish, you will have something most graduates do not: a real-world deliverable, verified by Ewance, that you can show to a hiring manager and say "I did this. Here is the proof."
Earning criteria — what you'll demonstrate
- Use fork/exec/wait/pipe/dup2 to implement Unix process semantics
- Handle SIGCHLD and SIGINT correctly without race conditions
- Implement built-ins that must run in the shell process (cd) vs. children (others)
- Write a test script that exercises the tricky cases, not just happy paths
Program Fit
Where this fits in your program.
Sharpens the same skills your degree expects you to demonstrate.
Computer Systems and Organization
Bachelor · Systems
Strong alignment
This challenge maps to Computer Systems and Organization at the Bachelor level. It sharpens the same practical skills your coursework expects — but in a real industry context with actual constraints and deliverables.
Skills
Skills you'll demonstrate.
Each one shows up on your verified credential.
- System Calls
Apply system calls to solve real industry problems and demonstrate production-level capability.
- Process Management
Apply process management to solve real industry problems and demonstrate production-level capability.
- Signal Handling
Apply signal handling to solve real industry problems and demonstrate production-level capability.
- C Programming
Apply c programming to solve real industry problems and demonstrate production-level capability.
- Ipc
Apply ipc to solve real industry problems and demonstrate production-level capability.
- Documentation
Apply documentation to solve real industry problems and demonstrate production-level capability.
Careers
Career paths this challenge builds toward
Completing this challenge demonstrates skills that transfer directly to these roles: