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
- 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
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 - DesignSeniorNew
Design a Semantic Configuration Validator Using Abstract Interpretation
Using the configuration schema reference, the three incident post-mortems, and the 200-configuration validation set provided, design an abstract domain that captures relations b…
- Abstract Interpretation
- Static Analysis
- Rust Programming
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 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
- 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 - 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 - CodeBeginnerNew
Convert an Imperative Recommendation Service to Pure Functional Style
Take the Python ranking module (around 900 lines). Identify side-effects (DB reads, cache lookups, logging, time) and lift them to the boundary. Rewrite the ranking core in Scal…
- Scala Programming
- Pure Functions
- Functional Core Imperative Shell
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 - 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.
- 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
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 - 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
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 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
- 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 - CodeIntermediateNew
Offline-First Flutter App for HVAC Field Service Technicians
Build a Flutter prototype that runs against the mock API described in the Mock API Specification, seeded with the Work Orders Seed Dataset and the Asset History and Parts Catalo…
- Mobile Development
- Flutter
- Offline First Design
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
Design a Playwright Checkout Test Suite That Blocks Bad Merges
Using the checkout incident export, identify the single most valuable happy path plus the six edge cases tied to the most frequent and most severe past incidents (for example fa…
- End To End Testing
- Playwright
- Ci Cd
Open coursework - 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 - CodeIntermediateNew
Multi-Tenant SaaS Backend with Postgres Row Security
Design the multi-tenant schema: shared tables with a tenant_id column, indexed appropriately. Write a forward + backward migration (using Drizzle or Prisma). Implement Postgres …
- Multi Tenant Architecture
- Postgresql
- Row Level Security
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 - 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 - ResearchIntermediateNew
Differential Fuzzing Campaign on a Production C Compiler Backend
Using the incident case file and the campaign scope brief, stand up a Csmith-based generator that produces at least 200,000 random but valid C programs across the two-week windo…
- Fuzzing
- Differential Testing
- Test Case Minimization
Open coursework - 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
Open coursework - CodeSeniorNew
Design a Polyhedral Loop-Tiling Strategy for a Tensor DSL
Study the DSL's IR (provided, MLIR-based with linalg-style ops). Choose a tiling strategy (rectangular tiling with cost-modeled tile sizes is the safe baseline; full polyhedral …
- Polyhedral Analysis
- Loop Tiling
- Mlir
Advanced Compilers and Program Optimization - 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
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.



















































































