6 months ago
San Jose, CA, USAIntern
Responsibilities
- Formalize locking protocols in TLA+ and Spin to prove the absence of deadlocks and circular waits.
- Apply ESBMC and CBMC bounded model checking to C source code for data races, pointer-safety issues, and invariant violations.
- Verify memory-barrier placement across ARMv8 and RISC-V hardware memory models.
- Use LLMs to synthesize formal invariants and environment harnesses, then audit the results for logical soundness.
- Analyze concurrency state-space explosion and investigate rare interleaving failures in kernel primitives.
Requirements
- Currently pursuing or have completed a PhD or Master’s degree in Computer Science, Computer Engineering, Applied Mathematics, or a related field, with relevant research projects and publications.
- Deep proficiency in C, including memory alignment, volatile keywords, and hardware interrupts.
- Ability to read ARMv8 assembly and assess whether compiler optimizations compromise synchronization.
- Strong understanding of L1/L2 cache coherency, MESI, lock hierarchies, weak-memory hardware, and memory barriers.
- Ability to model software as a discrete state machine and reason rigorously about formal proofs and model-checker failures.
Benefits
- Three-month, full-time research internship.
- Work focused on high-assurance concurrent-kernel verification and automated formal methods.
Tech Stack
C
