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
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
Compiler Construction - 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 - 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 - 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 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
- 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 - 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
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 - 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
Cross-Platform Logistics Driver App with Live Telematics
Build a React Native app (Expo bare workflow) covering: optimized route view, parcel-barcode scan, photo proof-of-delivery with EXIF (Exchangeable Image File Format) location st…
- Mobile Development
- React Native
- Ble
Mobile Application Development - 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
Build a DSL for Insurance-Policy Rules in OCaml
Design a small DSL covering: variables (insured amount, premium, deductible, named perils), expressions (arithmetic, conditionals, lookups against external tables like CRESTA zo…
- Ocaml
- Domain Specific Languages
- Parser Combinators
Functional Programming - CodeIntermediateNew
Real-Time Collaboration Whiteboard with WebSockets
Design the board state model (sticky notes + cursor positions) and pick a conflict-resolution approach (last-write-wins for v1, or operational-transform if scoping allows). Buil…
- Websockets
- React
- Nodejs
Web Application Development 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 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
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 - 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 - StrategyBeginnerNew
App Store Launch Strategy for a Bootstrapped SaaS Side-Project
Audit the team's current TestFlight build and Play internal-testing build. Produce: App Store Connect and Play Console store listings with optimized titles, subtitles, keyword r…
- App Distribution
- Store Listing
- Mobile Analytics
Mobile Application Development - 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…
- Cpp
- Inheritance
- Polymorphism
Object-Oriented Programming and Design - CodeIntermediateNew
Build a CodeQL Query Pack to Catch Logging-of-PII
Use CodeQL to write queries for Java and Python that detect data flow from PII sources (request parameters, database columns marked PII, user-profile fields) into logging sinks …
- Static Analysis
- Codeql
- Data Flow Analysis
Program Analysis - CodeIntermediateNew
Offline-First Mobile App for Field Service Technicians
Build a Flutter prototype against a mock API serving work orders, asset history, and a parts catalog. Implement: local-first storage with Drift (or Isar) for relational data and…
- Mobile Development
- Flutter
- Offline First Design
Mobile Application Development - 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
Engineering Software as a Service - 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 - CodeSeniorNew
Build a Bare-Metal Bootloader for a Wearable-Device Prototype
Write a bare-metal C bootloader for the Cortex-M4 target (no operating system, custom linker script, vector-table relocation). Implement: SHA-256 image validation (use a public-…
- C Programming
- Manual Memory Management
- Pointers
Imperative and Low-Level Programming - 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 - 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
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.



















































































