Plantation, FL (HQ), Sunnyvale, CA, Toronto, ON, Tel Aviv, Israel, Zurich, Switzerland, Culver City, CA
Seeking candidates with extensive experience in embedded software on Linux or Android. Engineer that will lead performance and be responsible for analysis, design and software development to reach required Performance targets. Candidate must be able demonstrate extraordinary skills in attention to system Performance development: understanding complex software systems, design maintainable and scalable software, performance features, lead of investigation and fixing bottlenecks with focus on graphics. Seeking strong communication skills and the ability to work in an environment with interdisciplinary teams.
Provide technical leadership to software engineering teams focusing on graphics performance.
Lead technology selection, architecture and planning activities for Performance, Power and Reliability of product design for all layers.
Work with customers and suppliers to develop and integrate innovative solutions for product graphics stack.
Investigate next generation technologies for applicability to solve current and future technical challenge.
Follow industry trends and developments to rapidly absorb new knowledge bases and incorporate them into new and existing architectures
Experience in establishing performance processes: from early system requirements to product KPIs, design, coding, testing, validation
Experience in hardware analysis and its impact to KPIs
Experience in performance oriented system architecture design
Experience in practical performance:
performance test setup according to KPIs
data statistical evaluation and testing stabilization
problems diagnosing, bottleneck localization and analysis
producing patches which solves findings
Extensive experience with system analysis for embedded systems for latency, system interconnect, throughput and bandwidth problems
GPU profiling and analysis with focusing on OpenGL/Vulkan problems.
Extensive software development experience with C/C++, Linux software development environment; experience with Linux Inter-process Communication(IPC) & Multi-threading programming
Ability to establish test cycle: explain for testers essential parts of testing for performance/latency, timings and data collection principles
Excellent communication, training and documentation skills
Experience in below areas are a plus:
Development experience for Linux/Android Vulkan graphics drivers
Development experience for Linux kernel, and device drivers
Memory profiling and analysis using valgrind, smem; of memory layout (heap, stack, bss/data, text) and in general how VMM works in Linux
Resources and power management for embedded system
ELF format organization, ARM EABI, stack organization and how use it in practice will be great plus
Performance tools development
Master degree in Computer Science
Your information will be kept confidential according to Equal Employment Opportunities guidelines.