Overview
What this challenge is about.
Build a suffix array in Rust over a DNA genome, implement count and locate for short reads, and earn a verifiable certificate.
The scenario
The company processes read-alignment jobs for genomics labs, where index build time and query latency directly bound how many samples a pipeline can clear per day. Their current FM-index baseline trades memory for speed, and the team wants to know whether a plain suffix array is a worthwhile in-memory alternative for their workload.
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.
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