Job Description :
Principal Software Engineer (Memory)
Locations: Plantation, FL

Duration: 6+ Months

Seeking candidates with extensive experience in embedded software on Linux or Android. Engineer that will lead memory initiatives and be responsible for analysis, design and software development to reach required memory targets. Candidate must be able demonstrate extraordinary skills in attention to system software memory management, design and development frameworks, tools for detecting leaks, accounting memory in Linux, design maintainable and scalable software taking into account resources leaks, bad patterns, miss-use of APIs etc., lead of investigation and fixing bottlenecks. Seeking strong communication skills and the ability to work in an environment with interdisciplinary teams.

Experience in the domains below are a must:
? Experience defining memory KPIs and making proper system software architecture design, understand principles and design patterns of such systems, design testing cases and metrics
? Experience diagnosing and fixing memory/resource bottlenecks
? Experience in use Valgrind or similar tools including extensions and APIs
? ELF format organization and understanding how dynamic linker works
? Knowledge in ARM EABI, stack organization and how use it in practice (stack unwinding)
? Analysis of procfs, smaps, maps, and deep knowledge of physical meaning and usage of vss, pss, uss numbers
? System and application memory allocation, custom allocators, analysis for fragmentations, resources leaks
? Balance between RAM vs. Flash consumption, file systems advanced understanding
? Extensive software development experience with C/C++, Linux software development environment; experience in Linux IPC and multithreading programming
? Ability to establish test cycle: explain to testers essential parts of testing for memory/resources leaks in RAM or Flash
? Excellent communication, training and documentation skills

Experience in below areas are a plus:
? Development experience for Linux OS or Android; middleware, kernel, and device drivers
? Contribution to Open Source with accepted commits
? Advanced memory profiling and analysis taking into account CMA, PMM, ION, dmabuf or similar technologies
? Understanding difference Linux vs. Android linkers and ability to explain why this discrepancy was introduced by Android and its side effects
? Experience working on performance for computer vision, graphics, multimedia, gaming
? Memory profiling and analysis tools development e.g. memory leaks detectors, allocators, guards, etc.

Education:
Master degree in Computer Science


Principal Software Engineer (Performance)
Locations: Plantation, FL

Duration: 6+ Months


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. Seeking strong communication skills and the ability to work in an environment with interdisciplinary teams.

Experience in the domains below are a must:
? Experience in establishing performance processes: from product KPIs to design, coding, testing, validation
? Experience in hardware analysis and its impact to KPIs
? Experience in performance oriented system architecture design
? Experience in practical performance:
o performance test setup according to KPIs
o data statistical evaluation and testing stabilization
o problems diagnosing, bottleneck localization and analysis
o producing patches which solves findings
? Extensive experience with system analysis for embedded systems for latency, system interconnect, throughput and bandwidth problems
? CPU/GPU profiling and analysis.
? Extensive software development experience with C/C++, Linux software development environment; experience in Linux Inter-process Communication(IPC) & Multi-threading programming
? Excellent communication, training and documentation skills

Experience in below areas are a plus:
? 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

Education:
Master degree in Computer Science

Principal Software Engineer (Power)
Locations: Plantation, FL

Duration: 6+ Months

Seeking candidates with experience in embedded software on Linux or Android. Someone who is responsible for analysis and development software to reach required Power targets. Must be able to demonstrate technical skill of understanding complex software systems, power design of components which are maintainable and scale, diagnose and fix power bottlenecks. Seeking strong communication skills and the ability to work in an environment with interdisciplinary teams.

Experience in the domains below are a must:
? Experience in establishing a product-oriented power effort: from product KPIs to design, coding, testing, validation, and optimization
? Experience in hardware analysis and its impact to KPIs
? Experience in power oriented system architecture design
? Experience in practical power analysis and improvement:
o power test setup according to KPIs
o data statistical evaluation and testing stabilization
o problems diagnosing, bottleneck localization and analysis
o producing patches which solves findings
? Extensive experience with system analysis for embedded systems taking into account performance constraints e.g. for latency or bandwidth - balance in between power consumption and performance
? CPU/GPU profiling and analysis.
? Extensive software development experience with C/C++, Linux software development environment; experience in Linux Inter-process Communication(IPC) & Multi-threading programming
? Ability to establish test cycle: explain for testers essential parts of testing for power, timings and data collection principles
? Excellent communication, training and documentation skills

Experience in below areas are a plus:
? Development experience for Linux OS or Android; middleware, kernel, and device drivers
? Good understanding of architecture of SoC and sources to reduce power consumption by CPU, GPU, memory, and other peripheral devices
? Experience working on performance/power for computer vision, graphics, multimedia, gaming
? Tools for power measurement, analysis or profiling

Education:
Master degree in Computer Science


Looking forward for your response.
             

Similar Jobs you may be interested in ..