Appreciate the good parts of C++, and leveraging the language to maximize the utility of our software models Develop APIs that can be used by non-expert C++ developers Train AI agents and non-expert C++ developers on idiomatic code and methods Help ensure our codebase is structured for effective use with AI-assisted development tools Write clear, self-documenting code with consistent conventions, meaningful naming, and well-organized modules Learn about the state of the art in SoC IP and chip-level architecture Work on data analysis pipelines, visualization methodologies, continuous regression testing Run performance simulations Careful analysis and presentation of simulation resultsBachelors degree Experience in hardware architecture and design issues Experience coding in C++ and Python and binding C++ to other languages Experience with computer architecture and software engineering principles Experience with data structures and algorithms Experience using software models to collect behavioral characteristics, and transforming that data into compelling performance analysisMS or PhD in CS, EE or related field 20+ years of relevant experience Experience with multi-paradigm software development in C++ Experience with multi-language programming environments, and selecting the right tool or language for the job Experience with compiler explorer and understanding the transformations the compiler is performing on your code Experience thinking about code as something that will be read by both humans and machines, and instituting conventions, structure, and documentation that make a codebase tractable for AI-assisted reasoning and navigation Experience with architectural, micro-architectural performance modeling. The end goal is to provide the best customer experience in the world by enabling all the CPUs, GPUs, Machine Learning, Camera, Display, and Connectivity components on our chips to work seamlessly together.