Computer Sciences Challenges
Explore computer science challenges on Ewance to equip yourself with job-relevant skills for a variety of roles. Learn programming techniques and build technical skills with challenges on software development, algorithm design, system architecture, and more.
Most Popular
- AnalysisBeginnerNew
Diagnose a Deadlock in a Multi-Threaded File Indexer
Clone the indexer repo (provided), set up reproduction with thread-sanitizer and helgrind, and produce a deterministic deadlock test case in under 5 minutes of runtime. Diagnose…
- Synchronization
- Deadlock Analysis
- C Programming
Operating Systems - CodeIntermediateNew
Build a User-Space File System with FUSE for a Storage Startup
Build a FUSE driver (your choice of Rust + fuser crate or Go + bazil/fuse) that proxies POSIX operations to the startup's existing S3-compatible REST API (mock provided). Suppor…
- File Systems
- Fuse
- Rust Programming
Operating Systems - CodeSeniorNew
Port a Microkernel IPC Mechanism to a New Architecture
Fork the project repository and port the synchronous IPC fast path to RISC-V (RV64GC). Preserve the existing fast-path invariants: register-only message passing for messages und…
- Microkernels
- Ipc
- Risc V
Advanced Operating Systems - CodeSeniorNew
Build a Unikernel for a Privacy-Focused VPN Provider
Choose either MirageOS or Unikraft as the unikernel framework. Build an image running a minimal WireGuard data plane (existing OCaml or Rust WireGuard reference implementation i…
- Unikernels
- Virtualization
- Wireguard
Advanced Operating Systems 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
Implement Distributed Shared Memory Over RDMA for a Trading Firm
Build a DSM library in C++ exposing a region API (allocate, read, write, free). Use ibverbs for RDMA primitives (one-sided read/write, atomics for the directory). Implement dire…
- Distributed Systems Design
- Rdma
- Consistency Models
Advanced Operating Systems - AnalysisIntermediateNew
Evaluate OS-Level Containment for a Multi-Tenant Edge Platform
Set up reproducible environments for gVisor, Firecracker, and Wasmtime on identical hardware (4 vCPU, 8 GB RAM). Run the platform's 4 workload archetypes (anonymized): API proxy…
- Containment
- Virtualization
- Wasm
Advanced Operating Systems - CodeIntermediateNew
Parallelize a Monte Carlo Risk Engine for a Quant Hedge Fund
Profile the existing engine (C++17, single-threaded). Identify the parallelism axis (per-path independence is the obvious one — but watch for the global RNG bottleneck). Impleme…
- Parallel Algorithms
- Shared Memory
- Work Stealing
Parallel and Distributed Algorithms - CodeSeniorNew
Design a Raft-Based Consensus Layer for a Multi-Region Database
Implement Raft in Go per the original Ongaro-Ousterhout paper: leader election, log replication with the safety property, snapshotting at 10K-entry granularity, and joint-consen…
- Distributed Consensus
- Raft
- Fault Tolerance
Parallel and Distributed Algorithms - 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
GPU-Parallel Graph Coloring for an EDA Tools Vendor
Implement Jones-Plassmann graph coloring in CUDA (or HIP if AMD hardware available). Input: a 12-million-node graph in CSR format (compressed sparse row). Output: a valid colori…
- Parallel Algorithms
- Gpu Programming
- Cuda
Parallel and Distributed Algorithms - CodeSeniorNew
Design a Lock-Free Concurrent Skip List for a Time-Series Database
Implement Fraser's lock-free skip list in Rust with marked pointers for logical deletion. Validate under loom for all interleavings up to 4 threads (or use shuttle if loom can't…
- Lock Free
- Concurrent Data Structures
- Rust Programming
Parallel and Distributed Algorithms - CodeIntermediateNew
Implement Bulk Synchronous Parallel PageRank on a 1.5B-Edge Graph
Choose either Apache Spark + GraphX (Pregel API) or a vanilla MPI + C++ implementation. Run 25 iterations of PageRank on the 1.5B-edge graph (graph file format provided: CSR par…
- Parallel Algorithms
- Bsp
- Graph Algorithms
Parallel and Distributed Algorithms - DesignBeginnerNew
Design a Golden-Path Service Template for a Series-D Scale-Up
Design a golden-path template producing a Go (or Node) microservice with: REST + gRPC scaffolding, structured logging (slog or pino), OpenTelemetry tracing, Prometheus metrics, …
- Platform Engineering
- Golden Paths
- Backstage
Platform Engineering 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
- StrategyIntermediateNew
Build a Business Case for a Hardware-Software Bundle at an IoT Vendor
Build a 5-year financial model (Excel or Google Sheets) covering 3 scenarios: hardware-only, SaaS-only, bundled-per-asset. Account for hardware-revenue recognition (upfront vs a…
- Business Case
- Three Statement Modeling
- Pricing Strategy & Elasticity
Product Management for Software Engineers - 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 - 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 - 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 - 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
Bloom Filter Cache to Cut Origin Load at a CDN Edge
Given a target false-positive rate of 1 percent at 200 million keys per shard, compute the optimal bit-array size (m) and hash-function count (k) using the canonical formulas. I…
- Bloom Filters
- Probabilistic Data Structures
- Hash Functions
Randomized Algorithms - CodeSeniorNew
HyperLogLog Cardinality for Real-Time Ad-Auction Analytics
Implement HyperLogLog with precision parameter p in {12, 14, 16} (4KB, 16KB, 64KB sketches) and benchmark relative error on a replayed 3-hour production trace (around 13 billion…
- Hyperloglog
- Probabilistic Data Structures
- Streaming Systems
Randomized Algorithms - AnalysisIntermediateNew
Randomized Load Balancer with the Power of Two Choices
Simulate four placement policies on a 24-hour anonymized connection-establishment trace (around 4.1 billion events): (1) random-1, (2) round-robin, (3) P2C with instantaneous lo…
- Power Of Two Choices
- Load Balancing
- Randomized Algorithms
Randomized Algorithms - CodeIntermediateNew
Reservoir Sampling for a Privacy-Preserving Telemetry Pipeline
Implement Vitter's Algorithm R (and the faster Algorithm L for bonus credit) producing a 90M-event uniform sample per day from a stream of 18B. Add per-key stratification (so lo…
- Reservoir Sampling
- Randomized Algorithms
- Streaming Systems
Randomized Algorithms - CodeIntermediateNew
Apply the Mikado Method to Untangle a Tax-Engine Class
Starting from the live codebase (Java 17, 73 percent line coverage), write a failing test that asserts the desired end state ('TaxCalculator is decomposed into per-country strat…
- Mikado Method
- Refactoring
- Strategy Pattern
Refactoring and Code Smell Detection - CodeIntermediateNew
Strangler-Fig Migration of a Monolithic Order Service
Stand up an HTTP facade in front of the monolith (Nginx or a small Go proxy) that routes by URL pattern. Slice 1: extract the order-status read endpoint, dual-write nothing, rou…
- Strangler Fig Pattern
- Refactoring
- Legacy Modernization
Refactoring and Code Smell Detection - DesignSeniorNew
Formal Specification of a Rate-Limit Service in TLA+
Specify the rate-limit service's lease-renewal protocol in TLA+ (PlusCal acceptable for readability). Model 3 invariants: (1) at most one node holds a lease for a tenant at any …
- Tla Plus
- Formal Specification
- Model Checking
Requirements Engineering
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.



















































































