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
Model a Trading Order Book with Algebraic Data Types in Haskell
Design ADTs for Side (Buy | Sell), OrderType (Limit | Market | StopLimit), Order, Trade, and BookState. Make illegal states unrepresentable (e.g. a Match can never produce a neg…
- Haskell
- Algebraic Data Types
- Property Based Testing
Functional Programming - CodeBeginnerNew
Build a Source-to-Source Migration Tool for a Legacy API
Use Python's libcst (concrete syntax tree library) to parse customer code while preserving formatting. For each of the 14 transformations, write a CST visitor that matches the v…
- Abstract Syntax Trees
- Source To Source Transformation
- Python
Open coursework - 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
Open coursework - 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 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
- 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 Safe Expression Evaluator for a Math-Learning App
Working only from the materials provided, build a self-contained expression evaluator in Python (TypeScript is acceptable if you mirror the same structure) that never calls eval…
- Recursion
- Higher Order Functions
- Parsing
Open coursework - 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
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
Open coursework - 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
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 - CodeBeginnerNew
Build a Readable Rules Language for Insurance Policies in OCaml
Design a small domain-specific language that covers the building blocks of policy rules: variables (insured amount, premium, deductible, named perils), expressions (arithmetic, …
- Ocaml
- Domain Specific Languages
- Parser Combinators
Open coursework - CodeIntermediateNew
Multi-Tenant Schema Migration for a Series-B HR SaaS
Design a 4-phase migration: (1) add new columns + tables, dual-write on every workflow mutation, (2) backfill 3.4 TB in chunks of around 50k rows per minute with throttling and …
- Multi Tenant Architecture
- Schema Migration
- Dual Write
Open coursework - CodeBeginnerNew
Case File: Smart-Pointer Refactor of a Game-Engine Module
Work only from the four supplied items: the representative entity-component-system module slice, the before-refactor heaptrack leak readout, the de-identified incident log, and …
- Cpp Programming
- Manual Memory Management
- Pointers
Open coursework Get recognized by recruiters and employers.
Credentials are blockchain-anchored via LearnCoin — tamper-evident, portable, link-shareable on LinkedIn and beyond.
Why Ewance
- DesignSeniorNew
Design a Symbolic-Execution Test-Generation Pipeline for a Date-Time Library
Design a generation pipeline that turns the public parsing and arithmetic surface of the supplied library module into branch-covering test inputs using a symbolic-execution engi…
- Symbolic Execution
- Klee
- Test Generation
Open coursework - DesignSeniorNew
Design an AVX-512 Vectorization Proposal for a Hot Simulation Kernel
Working only from the provided scalar kernel module, the benchmark dataset, the profiling readout, and the target-environment brief, propose and justify a vectorization design f…
- Vectorization
- Llvm
- Loop Optimization
Open coursework - DesignBeginnerNew
Add Constant Folding and Dead Code Elimination to a Teaching Compiler
Using the provided intermediate-representation specification, design and propose constant folding and dead code elimination as two intermediate-representation-to-intermediate-re…
- Intermediate Representation
- Constant Folding
- Dead Code Elimination
Open coursework - CodeIntermediateNew
Kill Surviving Mutants in a Travel Pricing Service
Work entirely from the provided pricing module (pricing-module) and its existing test suite (existing-tests), using the scenario facts in the briefing document (challenge-brief)…
- Mutation Testing
- Java
- Junit
Open coursework - CodeIntermediateNew
Property-Based Testing to Harden a SEPA Payments Parser
Work only from the four supplied items: the de-identified incident log of the last four quarterly parser failures (incident-log), the representative parser module (parser-module…
- Property Based Testing
- Fuzz Testing
- Go
Open coursework - 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 - DesignBeginnerNew
Design an Offline-First Android Field-Survey App for Wildlife Rangers
Using only the four provided materials, design a native Android application in Kotlin (with Jetpack Compose for the interface) that targets the rangers' rugged handsets describe…
- Mobile Development
- Android Kotlin
- Sensors
Open coursework - CodeIntermediateNew
Build a CodeQL Query Pack to Catch Logging of Personal Data
Using the provided personal-data source and logging-sink specification, write CodeQL data-flow queries for Java and Python that detect personal data travelling from a source (re…
- Static Analysis
- Codeql
- Data Flow Analysis
Open coursework - DesignIntermediateNew
Add Profile-Guided Optimization to a Production JavaScript Bundler
Design and implement a profile-guided optimization workflow for the bundler using Rust's LLVM-based PGO: an instrumented build, a training run over the eight-project benchmark c…
- Profile Guided Optimization
- Llvm
- Benchmarking
Open coursework - DesignBeginnerNew
Design a Lexer and Parser for a Customer Query Language
Using the grammar sketch, the query corpus sample, the Abstract Syntax Tree schema, and the edge-case suite provided to you, write a design proposal for a new lexer and parser t…
- Lexing
- Recursive Descent Parsing
- Abstract Syntax Trees
Open coursework - CodeIntermediateNew
Write a Linux Device Driver for a Custom Sensor Board
Read the SPI sensor datasheet (provided) and the existing user-space hack (around 600 lines of C). Write a Linux kernel module (target kernel 6.6 LTS) that registers a hwmon dev…
- C Programming
- Os Interfaces
- Kernel Development
Imperative and Low-Level Programming - CodeIntermediateNew
Unify a Logistics Driver App and Add Bluetooth Vehicle Telematics
Working only from the materials provided, build a React Native app (Expo bare workflow) that replaces the three legacy flows documented in the case file — optimized route view, …
- Mobile Development
- React Native
- Ble
Open coursework
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.



















































































