Overview
What this challenge is about.
You write characterization tests for a ReturnsProcessor, then refactor it safely using the Mikado method. Earn a verifiable certificate.
The scenario
Devolve operates a single-tenant-per-retailer returns platform in the European e-commerce sector, where a botched return flow directly costs merchants refunds and shopper trust. The ReturnsProcessor class is the load-bearing center of that flow, so any change to it is felt in production within hours.
The Brief
What you'll do, and what you'll demonstrate.
Make a 4,000-line accidentally-grown PHP class safe to modify by refactoring it incrementally over four weeks, without changing its observable behavior or pausing the team's feature delivery.
Earning criteria — what you'll demonstrate
- Build a behavior-pinning safety net with characterization and approval testing before changing any structure
- Plan and execute structural change incrementally using the Mikado method's attempt-revert-record loop
- Decide between in-place refactoring and a strangler-pattern replacement based on risk and coupling
- Keep changes shippable in tiny, independently revertable steps that never freeze feature work
- Communicate a repeatable refactoring technique clearly enough for a peer to apply it unsupervised
Program Fit
Where this fits in your program.
Sharpens the same skills your degree expects you to demonstrate.
Aligned coursework coming soon.
Skills
Skills you'll demonstrate.
Each one shows up on your verified credential.
- Refactoring
Apply refactoring to solve real industry problems and demonstrate production-level capability.
- Mikado Method
Apply mikado method to solve real industry problems and demonstrate production-level capability.
- Characterization Testing
Apply characterization testing to solve real industry problems and demonstrate production-level capability.
- Technical Debt
Apply technical debt to solve real industry problems and demonstrate production-level capability.
- Code Quality
Apply code quality to solve real industry problems and demonstrate production-level capability.
- Strangler Pattern
Apply strangler pattern 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:
Senior Software Engineer
Owning a high-risk legacy hotspot end to end mirrors the senior engineer's mandate: make scary code safe to change. The work proves you can refactor under production pressure using disciplined, reversible steps rather than risky rewrites.
This challenge sharpens
- refactoring
- mikado-method
- technical-debt
Software Engineer in Test
Building a behavior-pinning safety net before any change is the core craft of an engineer in test. You demonstrate that you can characterize untrusted code, raise coverage on its public surface, and turn tests into a license to refactor safely.
This challenge sharpens
- characterization-testing
- code-quality
- refactoring
Staff / Modernization Engineer
Replacing a load-bearing class incrementally without freezing the roadmap is exactly how modernization engineers retire legacy systems. The strangler-pattern decision and the reusable playbook show you can lead long-lived migrations across a team.
This challenge sharpens
- strangler-pattern
- technical-debt
- mikado-method