Overview
What this challenge is about.
Index a Reference Genome with a Suffix Array in Rust. Advanced challenge in code. Writing production code that solves real engineering problems, earn a block...
The Brief
What you'll do, and what you'll demonstrate.
Build a correct, in-memory suffix-array index in Rust over a reference-genome subset and prove whether it beats the FM-index baseline on construction time, query latency, and memory.
This is not a coding exercise. It is the work a software engineer does between a Jira ticket and a merged PR. That distinction matters to every hiring manager who has seen candidates solve LeetCode problems and none who have shipped production code under real constraints.
When you finish, you will have something most graduates do not: a real-world deliverable, verified by Ewance, that you can show to a hiring manager and say "I did this. Here is the proof."
Earning criteria — what you'll demonstrate
- Implement a linear-time suffix-array construction algorithm correctly over a small alphabet
- Design count and locate query utilities and validate them against known ground-truth positions
- Benchmark CPU time and peak memory rigorously and compare against a baseline
- Design an ergonomic, low-ceremony Rust library API
- Communicate engineering trade-offs with evidence in a concise technical writeup
Program Fit
Where this fits in your program.
Sharpens the same skills your degree expects you to demonstrate.
Aligned coursework coming soon.
Skills
Skills you'll demonstrate.
Each one shows up on your verified credential.
- Suffix Arrays
Apply suffix arrays to solve real industry problems and demonstrate production-level capability.
- String Algorithms
Apply string algorithms to solve real industry problems and demonstrate production-level capability.
- Rust
Apply rust to solve real industry problems and demonstrate production-level capability.
- Benchmarking
Apply benchmarking to solve real industry problems and demonstrate production-level capability.
- Library Design
Apply library design to solve real industry problems and demonstrate production-level capability.
- Memory Analysis
Apply memory analysis to solve real industry problems and demonstrate production-level capability.
Careers
Career paths this challenge builds toward
Completing this challenge demonstrates skills that transfer directly to these roles:
Bioinformatics Software Engineer
This challenge mirrors the daily work of accelerating genomics pipelines: implementing string-indexing data structures, validating them against biological ground truth, and packaging them for a research team to consume in production.
This challenge sharpens
- suffix-arrays
- string-algorithms
- rust
Performance Engineer
Measuring construction time, query latency, and peak memory against a baseline and turning the numbers into a defensible recommendation is the core of performance engineering, where every optimization claim must be backed by reproducible evidence.
This challenge sharpens
- benchmarking
- memory-analysis
- rust
Systems Library Developer
Designing a clean, low-ceremony Rust API over a complex algorithm and proving it correct and fast prepares you to ship reusable systems libraries that other engineering teams depend on without friction.
This challenge sharpens
- library-design
- string-algorithms
- benchmarking