We’re looking for candidates having proven commercial experience (2+ year) in system/embedded programming, having system debugging and troubleshooting experience with confident knowledge of Linux as a user and enthusiastic about the target area. For more details, please see below.
We offer 4-to-6 weeks guided self-study to get on top of Simics and Modelling basics using DML.
Our client is world’s leading vendor in silicon and SW development.
Successful candidate must be able to:
- Study and understand technical specifications and Customer product architecture
- Study and understand Simics fundamentals: Simics user and developer documentation, Simics API functions
- Implement device models according to Simics manuals, hardware specifications and provided design notes under supervision of tech. leads
- Document model features for user and other model developers using Markdown
- Use DML (Device Modelling Language) to code modules as requested
- Use Python to code modules as requested (or)
- Use C language to code modules as requested (or)
- Use C++ language to code modules as requested (would be a plus)
- Understand DML version differences and be able to update model code to the latest DML version
- Being able to create unit tests for new or updated code
- Work with Make build system (understanding of device build routine and ability to create/update make-file content)
- Know how OS works, what is user mode and kernel mode, the role of drivers, OS boot process
- Integrate patches according to model development guide
- Understand CI flow and Jenkins pretest routine (being able to process pretest worklog)
- Describe daily workload using JIRA
The preference will be given to ambitious candidates who assotiate their professional grow path with building an ability to:
- Create requirements, high-level and detailed design of a functional device model or platform subsystem according to hardware specs
- Implement platform components without supervision
- Work with legacy code, understand how to refactor existing code according to updated design
- Understand system execution flows (reset, PCI enumeration, USB connect etc), know roles of the certain models there
- Know how different OS work, how to debug kernel and drivers, how to debug user level application using simulators (QEMU, Simics)
- Understand virtualization technologies, how functional simulators (QEMU/KVM, VirtualBox, Simics) utilize the technology
- Know UEFI at some level (execution phases, what is EFI driver, application, how to debug UEFI components)
- Able to take technical decisions on how to implement simulations which execute fast. This involves making the right decisions about simulation abstractions and tradeoffs. Able to optimize simulation execution
- Provide trainings and supervision to junior developers
Benefits:
- Stable, full-time and long-term employment
- Healthy work-life balance and friendly, caring atmosphere
- Career&proffesionnal development possibilities
- Good benefit package
- Cozy office/and possibility to work remotely
- Team and company events