Computer & Information Sciences
Software Development Challenges
Real software-development projects on Ewance — write, test, and ship working code against briefs that mirror the job. Solve them to build a portfolio of verified, recruiter-checkable proof you can do the work — not just describe it.
Recommended challenges
- CodeBeginnerNew
Design and Implement a C++ Telemetry Aggregator With Inheritance
Implement a TelemetrySource abstract base class with virtual sample() and timestamp() methods, 6 concrete subclasses (one per sensor family), and a TelemetryBus that polymorphic…
- Systems Language Proficiency (Go, Rust, C++)
- Inheritance
- Polymorphism
Object-Oriented Programming and Design - CodeIntermediateNew
Compile a Subset of C to WebAssembly
Define a documented C subset: int and bool types, locals, if/else, while, function calls, return. Build a compiler in any host language (TypeScript or Rust preferred) that produ…
- Code Generation
- Webassembly
- Intermediate Representation
Compiler Construction - CodeIntermediateNew
Property-Based Testing for a SEPA Payments Library
Read the SEPA Pain.001 XSD (XML Schema Definition) and pick 5 invariants the parser MUST preserve (e.g., 'sum of transactions equals control sum', 'IBAN passes mod-97 check', 'c…
- Property Based Testing
- Fuzz Testing
- Systems Language Proficiency (Go, Rust, C++)
Software Testing and Quality Assurance - CodeBeginnerNew
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 …
- Python Or Javascript
- Design Patterns
- Refactoring
Object-Oriented Programming and Design Practice your coursework on real scenarios.
Every challenge is shaped from real-world context — not generic exercises. The work mirrors what your degree prepares you for.
Why Ewance
- StrategyBeginnerNew
Design a Risk-Based Test Strategy for a Telehealth Release
Run a risk-scoring workshop with the 3 QA engineers and 2 tech leads (template provided). For each of the 7 modules, score probability of failure, customer impact, and regulator…
- Risk Based Testing
- Test Strategy
- Test Planning
Software Testing and Quality Assurance - CodeBeginnerNew
Build an End-to-End Test Suite for a Checkout Flow
Inventory the last 6 months of production checkout incidents (anonymized export provided). Pick the top 7 user journeys (1 happy path + 6 highest-incident edge cases) and write …
- End To End Testing
- Playwright
- Ci Cd
Software Testing and Quality Assurance - CodeBeginnerNew
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 - CodeIntermediateNew
Port a Legacy C Image Pipeline from x86 to ARM64
Clone the 12k-line C codebase (provided). Set up an ARM64 cross-compile toolchain (clang or gcc). Identify portability issues: endianness assumptions, pointer-size casts, inline…
- C Programming
- Manual Memory Management
- Pointers
Imperative and Low-Level Programming - 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.
- CodeIntermediateNew
Stand Up Contract Testing for a Microservices Backend
Inventory the 18 services and pick the 6 producer-consumer pairs with the most staging breakages in the last 90 days. Stand up a Pact broker (self-hosted or PactFlow trial). For…
- Contract Testing
- Pact
- Microservices Patterns
Software Testing and Quality Assurance - CodeBeginnerNew
Implement an Expression Evaluator Using Recursion and Higher-Order Functions
Implement in Python (or TypeScript). Build a tokenizer, a recursive-descent parser producing an abstract syntax tree (AST), and a tree-walking evaluator. Use higher-order functi…
- Recursion
- Higher Order Functions
- Parsing
Programming Abstractions - CodeBeginnerNew
Apply Property-Based Testing to a Currency-Conversion Module
Rewrite the conversion module in F#: use units of measure for currency types, immutable value types for amounts, no floating-point arithmetic (Decimal only). Build property test…
- Fsharp
- Property Based Testing
- Fscheck
Functional Programming - CodeIntermediateNew
Profile-Guided Optimization for a Production JavaScript Bundler
Read the bundler's existing release-build pipeline (Rust + Cargo). Design and implement a PGO workflow using Rust's profile-guided LLVM PGO: instrument build, training run on th…
- Profile Guided Optimization
- Llvm
- Benchmarking
Advanced Compilers and Program Optimization Build a verifiable portfolio.
Submissions become evidence. Reviewers with shipping experience score against a rubric; the result becomes a credential anyone can verify.
Why Ewance
- DesignIntermediateNew
Authentication + RBAC for a Multi-Workspace SaaS
Design the auth architecture: identity provider (managed), session model (JWT with rotation), workspace-membership claims, RBAC permission model (4 default roles, custom-role ca…
- Authentication
- Rbac
- Sso
Engineering Software as a Service - CodeBeginnerNew
Build a Lexer and Parser for a Domain Query Language
Take the 1-page grammar sketch and the 12,000-query corpus (anonymized). Hand-write a lexer that emits tokens with source positions (line and column). Build a recursive-descent …
- Lexing
- Recursive Descent Parsing
- Abstract Syntax Trees
Compiler Construction - CodeBeginnerNew
Design a Domain Model for a Library Loan System (Java)
Implement, in Java 21, an Item type hierarchy (Book, AudioBook, Periodical, EquipmentLoan — each with sub-type-specific rules), Member with eligibility logic, Loan as an aggrega…
- Python Or Javascript
- Oo Design
- Domain Modeling
Object-Oriented Programming and Design - CodeBeginnerNew
Performance Optimization for a Slow Storefront
Run Lighthouse + WebPageTest baselines on 3 representative pages (home, product detail, cart). Set up Real User Monitoring (RUM) via Vercel Analytics or web-vitals.js. Ship 5 di…
- Web Performance
- Web Performance (Lighthouse, Core Web Vitals)
- Nextjs
Web Application Development - CodeBeginnerNew
REST API + Admin Dashboard for a Tutoring Marketplace
Map the 5 operator workflows by shadowing 2 operators for 4 hours (recordings provided). Design REST endpoints (Open API spec) covering each workflow with role-based scopes (ope…
- REST API Design
- Vuejs
- Rbac
Web Application Development - CodeBeginnerNew
Build a Plugin-Based Notification Framework With Observer + Factory
Implement, in Java 21: an EventBus that supports typed subscriptions, a NotificationChannel interface with concrete subtypes (Push, Email, InApp, SMS), an AbstractChannelFactory…
- Python Or Javascript
- Design Patterns
- Oo Design
Object-Oriented Programming and Design - CodeSeniorNew
Abstract-Interpretation-Based Configuration Validator for a SaaS Platform
Define an abstract domain capturing relations between configuration fields (e.g. 'if billing.plan = enterprise then features.audit_log = true'). Implement an abstract-interpreta…
- Abstract Interpretation
- Static Analysis
- Rust Programming
Program Analysis - CodeIntermediateNew
Native iOS HealthKit Integration for a Cardiac Rehab Startup
Build a SwiftUI app targeting iOS 17+ that requests HealthKit read scopes (heart rate, HRV, resting HR, workouts), reads the last 7 days on launch and subscribes to live updates…
- Mobile Development
- Ios Swift
- Healthkit
Mobile Application Development - CodeIntermediateNew
Design Error Recovery for a Friendly Compiler
Read the existing parser (recursive-descent, in Rust). Design and implement a panic-mode error recovery strategy with synchronization tokens (statement boundary, end of block, s…
- Error Recovery
- Recursive Descent Parsing
- Diagnostic Design
Compiler Construction - CodeSeniorNew
Build a Symbolic-Execution-Based Test Generator for a Library
Pick KLEE for the symbolic-execution engine. Build LLVM bitcode for the library's C99 build target. Define symbolic inputs for the public parsing API (date strings up to 32 char…
- Symbolic Execution
- Klee
- Test Generation
Program Analysis - CodeIntermediateNew
Implement a Persistent Immutable List for a Collaborative-Editing Startup
Implement in Python (or TypeScript / Kotlin). Build a persistent immutable list with operations: get, set, append, pop, slice, concat. Use structural sharing (32-way vector trie…
- Data Abstraction
- Recursion
- Persistent Data Structures
Programming Abstractions - StrategyBeginnerNew
REST API Versioning Strategy for a 4-Year-Old Public API
Pick a versioning scheme (URI path vs header-based) and justify it against integrator behavior. Define the deprecation lifecycle: announce → deprecate → sunset, with concrete ti…
- REST API Design
- API Versioning
- Openapi
Engineering Software as a Service
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.



















































































