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 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 Design
Web Application Development - 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 - 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
Refactor a Node.js Service into Scala with Effect Systems
Take the existing Node.js price-normalization code (provided). Rewrite in Scala 3 using ZIO (or Cats Effect) — model every effect explicitly (IO for side effects, Either or type…
- Scala Programming
- Zio Effects
- Cats Effect
Functional Programming 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
- 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 - DesignIntermediateNew
Design a Small Domain-Specific Language for Invoice Rules
Design a DSL grammar (BNF) covering: boolean conditions (and / or / not), comparison operators, customer-attribute references, line-attribute references, and action expressions …
- Abstraction
- Recursion
- Domain Specific Language
Programming Abstractions - 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 - 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 - 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 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 - 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 - 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 - 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 Get recognized by recruiters and employers.
Credentials are blockchain-anchored via LearnCoin — tamper-evident, portable, link-shareable on LinkedIn and beyond.
Why Ewance
- 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 - 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 - 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 - 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
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 Or Mysql
- Row Level Security
Web Application Development - 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 - 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 - 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
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 Or Javascript
Compiler Construction - 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 - 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 - 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
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.



















































































