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
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 - 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
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 - 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 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
- Systems Language Proficiency (Go, Rust, C++)
Advanced Concurrency and Parallel Computing - 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
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 - 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 - 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.
- 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 - 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 - 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
Advanced Computer Graphics - CodeSeniorNew
Multiplayer Mixed-Reality Training for Aircraft Maintenance
Build a Unity-based prototype supporting 3 concurrent users on Magic Leap 2 (or Quest 3 passthrough as fallback) co-located in the same physical room. Implement: shared anchor f…
- Mixed Reality Applications
- Multiplayer Xr
- Shared Anchors
Virtual and Mixed Reality 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
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
AR Surgical-Planning Overlay for Orthopedic Implants
Receive 5 synthetic DICOM hip-anatomy datasets (no patient data; generated from public anatomical atlases) and CAD models for 3 implant SKUs. Build a HoloLens 2 prototype that l…
- Ar Development
- Mixed Reality Applications
- 3d Interaction
Virtual and Mixed Reality - 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…
- API Gateway Patterns (Kong, Envoy)
- Wasm
- Rust Programming
Service Mesh and Microservices Networking - 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 - 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
Digital Human Avatar Pipeline for a Conferencing Product
Build a Python pipeline: face detection + landmark extraction, FLAME (or equivalent) face-model fitting to landmarks + photometric loss, texture inference, and skinning weight a…
- Digital Humans
- Geometry Processing
- 3d Rendering
Advanced Computer Graphics - 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 - 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 - 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
Embedded Systems Engineering - 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
Diagnose Memory Corruption in a Trading-Firm Order Gateway
Read the 8k-line allocator + order-pool code (provided), plus 3 production crash dumps and 14 hours of pre-crash telemetry. Hypothesize root cause (likely candidates: use-after-…
- Cpp 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.
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.



















































































