Refactoring
If you like applying Refactoring, every challenge here gives you a chance to practice it on a real industry brief.
- CodeIntermediateNew
Apply SOLID Principles to a Notifications Subsystem
Read Notifier and the last 6 months of incidents touching it. Write a 4-page design document mapping each of the 5 SOLID principles to a specific change in the subsystem (Single…
- Solid Principles
- Design Patterns
- Refactoring
Software Design and Design Patterns - CodeIntermediateNew
Apply SOLID to a Java Reporting Service for a Renewable Energy Startup
Receive the legacy ReportService, 4 sample report templates (Daily Output, Monthly P&L, Annual Availability, Curtailment), and 22 fixtures (input dataset, expected report). Refa…
- Java
- Solid Principles
- Refactoring
Object-Oriented Programming and Design - CodeIntermediateNew
Characterization Tests for an Untested Pricing Engine
Drive the pricing engine with around 800 representative input vectors generated from anonymized production quotes (provided). For each vector, capture the current output as the …
- Characterization Tests
- Approval Testing
- Legacy Code
Refactoring and Code Smell Detection - CodeIntermediateNew
Refactor a Tangled Java Pricing Engine With Design Patterns
Start from a provided Java 21 codebase with the legacy PricingEngine class, 38 example fixtures (input cart, expected price), and one failing test demonstrating a bug from last …
- Java
- Design Patterns
- Refactoring
Object-Oriented Programming and Design Practice your coursework on real scenarios.
Every challenge is shaped from real industry context — not generic exercises. The work mirrors what your degree prepares you for.
Why Ewance
- CodeIntermediateNew
Refactor a Legacy Reporting Script for a Renewable-Energy Startup
Read the existing script and identify 5-7 distinct responsibilities tangled together. Refactor into 3 layers: data loaders (CSV, REST API), transformers (pure functions over row…
- Abstraction
- Higher Order Functions
- Refactoring
Programming Abstractions - StrategyIntermediateNew
Introduce XP Practices to a Legacy E-Commerce Codebase
Run a 6-week intervention with the 7-person checkout team. Week 1: baseline (current test coverage, defect-escape rate, story cycle time). Weeks 2-5: introduce TDD on all new co…
- Extreme Programming
- Test Driven Development
- Pair Programming
Agile Methods and Practices - CodeIntermediateNew
Replace Raw Pointers with Smart Pointers in a Game-Engine Module
Audit the 18k-line module for raw-pointer ownership patterns (owning, borrowing, shared). Refactor in 4 phases: (1) introduce unique_ptr for clearly-owning sites, (2) shared_ptr…
- Cpp Programming
- Manual Memory Management
- Pointers
Imperative and Low-Level Programming - StrategyIntermediateNew
IDE-Assisted Refactoring Bootcamp for a Junior Backend Team
Design a 5-day curriculum centered on 10 katas chosen for refactoring-pattern coverage (e.g., Gilded Rose for replace-conditional-with-polymorphism, Tennis kata for extract-meth…
- Refactoring
- Katas
- Ide Tooling
Refactoring and Code Smell Detection - Browse challenges
Explore role
Product Manager
Ship product that solves real user problems. Combine user research, prototyping, and stakeholder alignment to turn ambiguous briefs into measurable wins — the role at the centre of modern software teams.
How it works
From brief to credential, in six steps.
Step 01
Browse challenges aligned to your studies.
Step 02
Accept the one that fits your goals.
Step 03
Work through it with AI Copilot guidance.
Step 04
Submit for structured evaluation.
Step 05
Earn a verified credential.
Step 06
Add it to LinkedIn with one click.
Industry teams behind a decade of practitioner briefs
Hiring from this pool?
Sponsor a challenge and meet candidates through actual work.
Industry teams can shape briefs around the skills they hire for, then evaluate students on rubric-scored deliverables — not resumes.



















































































