Huawei is looking for an engineer with experience in programming at the Software/Hardware boundary. We wish to recruit somebody who can help us improve our processor emulation and verification pipeline.Key Responsibilities:
Person Specification Required:
- Analysis of the state-of-the-art methods for processor description, emulation, testing and verification.
- Identifying the performance bottlenecks of existing emulation, testing, verification methods and proposing improvements.
- Implementing processor emulation, testing and verification tools.
- Improving existing automation pipeline.
- University degree, ideally in CS or EE, or equivalent work experience.
- Programming experience in a mainstream low-level programming language (C/C++).
- Basic understanding of CPU instruction set architecture (e.g what is a cache, what is a pipeline) and assembly (e.g. what is an addressing mode).
- Understanding of the fundamentals of compilers.
- Familiarity with modern software engineering workflow based around Git, and CI/CD tooling.
Privacy Notice - Through applying for this position you agree to our privacy notice. For further details please follow the link below; https://www.huawei.com/en/privacy-policy
- Knowledge of at least one modern typed programming language (e.g. Rust, Scala, Haskell, Ocaml, F#, Idris).
- Knowledge of modern automated testing techniques (e.g. fuzzing).