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
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 - CodeBeginnerNew
Add Constant Folding and Dead Code Elimination to a Toy Compiler
Fork the repo, read the IR specification (3-address code, register-based, documented in /docs/ir.md). Implement constant folding as an IR-to-IR pass: any operation on literal op…
- Intermediate Representation
- Constant Folding
- Dead Code Elimination
Compiler Construction - CodeBeginnerNew
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 - 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
- Go
Software Testing and Quality Assurance Develop in-demand professional skills.
Each challenge names the skills it strengthens. Over time, your profile fills with the competences a hiring manager would actually look for.
Why Ewance
- 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…
- Java
- Design Patterns
- Oo Design
Object-Oriented Programming and Design - CodeSeniorNew
Detect Use-After-Free with Pointer Analysis in a C++ Codebase
Build the codebase with compilation database (compile_commands.json). Write a custom Clang static-analyzer checker (or extend an existing one) that flags resource-handle uses af…
- Pointer Analysis
- Static Analysis
- Use After Free
Program Analysis - 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 - CodeBeginnerNew
Build a Functional Image-Filter Pipeline for a Photography SaaS
Design a Filter as a function from (pixel matrix → pixel matrix). Build a compose helper that takes a list of filters and returns a single composed filter (function composition)…
- Higher Order Functions
- Function Composition
- Abstraction
Programming Abstractions - Browse challenges
Explore role
Strategy Analyst
Frame the business question, model the options, build the recommendation. From market sizing to competitive analysis, this role is where strategy consulting meets in-house decision-making.
- 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…
- Java
- Oo Design
- Domain Modeling
Object-Oriented Programming and Design - CodeBeginnerNew
CI/CD Pipeline for a SaaS Monorepo with 14 Services
Set up Nx (or Turborepo) for affected-graph computation. Configure remote build cache (S3-backed) so cached steps skip across runs and developers. Parallelize jobs in GitHub Act…
- Ci Cd
- Monorepo
- Nx
Engineering Software as a Service - CodeSeniorNew
Auto-Vectorize an Inner Loop for AVX-512
Profile the existing kernel on a 12-dataset benchmark (provided). Pick one of two strategies: (a) add an LLVM IR-level vectorization pass plugged into the existing pipeline, or …
- Vectorization
- Llvm
- Loop Optimization
Advanced Compilers and Program Optimization - 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 Get recognized by recruiters and employers.
Credentials are blockchain-anchored via LearnCoin — tamper-evident, portable, link-shareable on LinkedIn and beyond.
Why Ewance
- CodeBeginnerNew
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 - 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 - AnalysisIntermediateNew
Mutation Testing on a Critical Pricing Service
Run PIT against the pricing service to get a baseline mutation score per class. Identify the 5 classes with the largest gap between line coverage and mutation score (these are t…
- Mutation Testing
- Java
- Junit
Software Testing and Quality Assurance - 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 - CodeIntermediateNew
Build a Metered-Billing System for a Usage-Based SaaS
Build an event-ingest API (Express + Redis Streams) that receives usage events with idempotency keys. Aggregate hourly into Postgres rollups using a windowed worker that survive…
- Metered Billing
- Idempotency
- Event Aggregation
Engineering Software as a Service - 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
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
- Vuejs
- Rbac
Web Application Development - CodeIntermediateNew
Implement an SSA-Based Sparse Conditional Constant Propagation Pass
Read the IR specification (SSA form, phi nodes, typed values). Implement SCCP as a single combined worklist algorithm operating on the SSA lattice (top / constant / bottom) and …
- Static Single Assignment
- Dataflow Analysis
- Constant Propagation
Advanced Compilers and Program Optimization - CodeIntermediateNew
Build a Dataflow-Based Dead-Code Detector for a Python Monorepo
Build a Python tool using libcst (or ast + jedi) that constructs a call graph across the monorepo. Account for indirect references (entry points in setup.py / pyproject.toml, dy…
- Dataflow Analysis
- Ast
- Call Graph
Program Analysis - CodeBeginnerNew
Build a Booking Web App for a Boutique Hotel Group
Design the data model (properties, rooms, availability, bookings, guests). Build the Next.js app with the App Router: 4 public pages (search, results, room detail, checkout), 1 …
- Nextjs
- React
- REST API
Web Application Development - 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
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.



















































































