Software Engineering
Software Engineer
Software engineers turn intent into code that other people rely on, often without ever meeting them. The craft is broader than the languages — Python, Go, Java rotate in and out of fashion — and centers on judgment: which abstraction to introduce, which test to write first, which review comment matters and which is taste dressed up as principle.
AI tools like Copilot and Claude Code accelerate the typing but raise the bar on knowing what to build. Strong engineers care about the people who'll maintain their code in two years, including their future selves.
Students drawn to this path often started building things in high school and never stopped. Growth comes from shipping real systems, taking ownership when they break, and reading code written by people better than you.
US$163,883 median salary in United States¹
- CodeSeniorNew
Scale an HPC MPI Workload Across a Multi-Node Cluster
Receive the MPI weather model (Fortran 2018 + C, ~22,000 lines), 4 weeks of strong-scaling logs (1 to 256 ranks), and access to AWS ParallelCluster with EFA-enabled c7gn instanc…
- Hpc Programming
- Mpi
- Parallel Performance
Advanced Concurrency and Parallel Computing - AnalysisSeniorNew
Memory Consistency Model Audit of a Lock-Free Queue
Read the SPSC queue source (around 200 lines of C++). For each atomic operation, classify the required ordering and verify the chosen memory_order is sufficient under both x86-T…
- Memory Consistency
- Concurrency
- Lock Free Programming
Advanced Computer Architecture - CodeSeniorNew
Vectorize a Risk-Calculation Engine for a Mid-Cap Bank
Receive the existing pricer (C++17, scalar, around 600 lines), 2 weeks of representative input data (around 50M paths), the validation harness, and access to an Intel Ice Lake-S…
- Vectorization
- Avx 512
- Simd
Performance Engineering of Software Systems - CodeSeniorNew
Rebuild a Fair Single-Selfie Avatar Pipeline at NorthRoom
Using the prior-attempt postmortem (provided), the cohort manifest (provided), the FairFace public image set (provided link), the FLAME face-model resource (provided link), and …
- Digital Humans
- Geometry Processing
- 3d Rendering
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
- CodeSeniorNew
Build a Lock-Free MPMC Queue for a Trading-Backend Hot Path
Implement Vyukov's bounded MPMC queue in C++20 using atomic operations with explicit memory orderings (relaxed where safe, acquire/release on the enqueue/dequeue handshake). Use…
- Lock Free Algorithms
- Memory Models
- Cpp
Advanced Concurrency and Parallel Computing - CodeSeniorNew
Design an In-House Bare-Metal Bootloader for a Smartwatch Prototype
Working only from the provided materials, design and implement a bare-metal C bootloader for the Cortex-M4 target with no operating system, a custom linker script, and vector-ta…
- C Programming
- Manual Memory Management
- Pointers
Open coursework - AnalysisSeniorNew
Diagnose a Hard-Real-Time Failure in an Automotive ECU
Receive anonymized AUTOSAR runnable + task traces (CSV + Vector CANalyzer .blf), 8 hours covering 3 failure events. Identify timing budget per task and runnable. Reproduce on th…
- Autosar
- Real Time Debugging
- Can Bus Analysis
Open coursework - CodeSeniorNew
Port a Numerical Kernel from CPU to GPU for a CFD Simulator
Receive the existing CFD solver (C++17 + OpenMP, around 8,000 lines, the hot kernel is a 7-point stencil sweep over a 512^3 grid), the validation harness, and access to an A100 …
- Gpu Programming
- Cuda
- Parallelism
Performance Engineering of Software Systems - 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.
- 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 - CodeSeniorNew
Diagnose Heap Corruption in a Trading Firm's Order Gateway
Working only from the materials in this case file, reconstruct what is corrupting the heap. Read the representative order-pool allocator module (item: gateway-allocator-module) …
- Cpp Programming
- Manual Memory Management
- Pointers
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
Program Analysis - AnalysisSeniorNew
Diagnose Clock Skew in a HFT Order Matching System
Receive anonymized PTP grandmaster + slave logs (nanosecond resolution, 30 days, 3 cabinets) plus a synthetic order-flow generator. Identify the drift pattern (likely candidate:…
- Logical Clocks
- Ptp Time Sync
- Cpp Programming
Distributed Systems 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
- CodeSeniorNew
Real-Time Global Illumination for an Indie Game
Survey 3 candidate GI techniques: voxel cone tracing (VXGI-style), screen-space GI (SSGI), and irradiance probe volumes. Pick one and justify based on quality/perf trade-offs fo…
- Physically Based Rendering
- Global Illumination
- Gpu Pipeline
Open coursework - CodeSeniorNew
Prototype an Augmented-Reality Hip-Implant Planning Overlay
Build a HoloLens 2 application that loads a three-dimensional bone scan from the sample medical imaging data ('hip-dicom-samples'), renders it as a placeable hologram, and lets …
- Ar Development
- Mixed Reality Applications
- 3d Interaction
Open coursework - CodeSeniorNew
Build Co-Located Mixed-Reality Engine Inspection Training
Build a Unity prototype that supports three people wearing Magic Leap 2 headsets (or Quest 3 with passthrough as a fallback) in the same physical room, all seeing one shared vir…
- Mixed Reality Applications
- Multiplayer Xr
- Shared Anchors
Open coursework - CodeSeniorNew
Envoy WASM Filter for Per-Tenant Rate Limiting
Implement the filter in Rust using the proxy-wasm-rust-sdk. The filter computes a (tenant_id, endpoint, method) key, calls a Redis token-bucket service via a sidecar HTTP client…
- Envoy
- Wasm
- Rust Programming
Service Mesh and Microservices Networking - CodeSeniorNew
GPU-Accelerated Numerical Optimization for Portfolio Construction
Implement a primal-dual interior-point solver for box-constrained QP in CUDA. Use cuSPARSE for sparse matrix-vector multiply and cuSOLVER for the inner Newton system. Benchmark …
- Numerical Optimization
- Interior Point Method
- Cuda
Scientific Computing and Numerical Methods - CodeSeniorNew
Cache-Optimize a Graph-Analytics Kernel for a Social Platform
Receive the existing kernel (C++ + OpenMP, around 1,200 lines), the 1.8B-edge graph (CSR format, around 14GB), and target hardware (dual-socket AMD EPYC 9354, 384GB DDR5, 256MB …
- Cache Optimization
- Graph Algorithms
- Memory Hierarchy
Performance Engineering of Software Systems - 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 - CodeSeniorNew
PDE Solver for Subsurface Reservoir Flow
Implement MPFA-O discretization for pressure on a tetrahedral mesh with explicit fault transmissibility (Aavatsmark et al. 2002 formulation). Couple to a temperature equation vi…
- Numerical Pdes
- Finite Volume
- Newton Krylov
Scientific Computing and Numerical Methods - 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 - AnalysisSeniorNew
Amortized-Analysis Investigation of a Production Telemetry Cache
Working only from the three provided materials — the de-identified incident record (incident-record), the representative cache source module (cache-source), and the recorded ope…
- Amortized Analysis
- Data Structures
- Algorithm Analysis
Open coursework - CodeSeniorNew
Port a CPU Monte-Carlo Simulator to GPU for an Energy Trader
Receive the existing simulator (C++17 + OpenMP, around 5,000 lines), the test book (around 8,000 spread options), and access to an H100 80GB. Port to CUDA: random-number generat…
- Gpu Programming
- Cuda
- Monte Carlo
Advanced Concurrency and Parallel Computing - CodeSeniorNew
Physically-Based Path Tracer for a Product Visualization Studio
Build a path tracer in C++ with: ray-triangle and ray-sphere intersection on a BVH (bounding volume hierarchy), Lambertian diffuse and Cook-Torrance GGX specular BRDFs, multiple…
- Physically Based Rendering
- Path Tracing
- Shading And Lighting
Advanced Computer Graphics
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.
Related roles you may want to explore
Browse all roles →Software Engineering
Backend Engineer
Behind every app a user touches, there's a quieter system doing the actual work — routing requests, holding state, refusing bad input politely. Backend engineers build and care for that hidden layer. The role is part craft, part diplomacy: you're designing APIs that other engineers will lean on for years, and a careless schema choice can echo through a company for a long time. Good work here looks like code that's boring in the best way — predictable under load, easy for the next person to read, observable when something breaks. Students grow into this role by getting comfortable with Python or another server language, then learning how databases really behave when traffic spikes.
Software Engineering
Frontend Engineer
Every button a user clicks, every loading state they wait through, every form that almost-but-not-quite works, all of it passed through a frontend engineer's editor. This is the discipline that decides how software feels. The role lives at a peculiar intersection of design empathy, performance budgets, and accessibility standards, which is why students who like both visual craft and systems thinking often find a home here. You'd grow into it by building real things in React or Next.js, reading other people's code, and developing taste for what feels right. Tools like GitHub Copilot accelerate the typing; the judgement about when to refactor and when to ship is still yours. Strong frontend engineers care that a screen reader can navigate their work.
Software Engineering
Full-Stack Engineer
Picture the small startup team where one engineer ships a feature from the database schema to the deployed button. That generalist mindset is what the full-stack engineer brings, even at larger companies. The role exists because most useful software doesn't respect the boundary between client and server, and someone needs to reason about both. Students grow into this by being curious past their comfort zone, picking up PostgreSQL when they came for React, learning OAuth flows when they came for UI. The work rewards people who'd rather understand a whole system than perfect one slice of it. Strong full-stack engineers know when to ask a specialist for help, which is itself a skill worth developing early.
Software Engineering
Mobile Engineer
Open the app on your phone and tap something. The fact that it responded instantly, didn't drain your battery, and worked on a five-year-old device is not an accident — a mobile engineer obsessed over that. This role is for people who care about craft at the interface where software meets a human's pocket. Expect days writing native code against the Android SDK or iOS, profiling animations, fighting flaky tests, and shepherding releases through App Store Connect. Students grow into it by shipping their own small app and feeling the gap between a demo and something a stranger would actually use. Strong mobile engineers treat accessibility as a baseline, not a feature.
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.
¹ Median annual salary computed from the salary histogram of 50 current Adzuna job postings for "Software Engineer" in United States, fetched May 2026. Skills come from the disciplines tagged on live Ewance challenges for this role.
Portrait: Photo by Donald Teel on Unsplash.



















































































