Love your job!
Due to the growth of the business, our Plantation based client is seeking a top notch Principal Software Engineer with extensive experience in embedded software on Linux or Android to add to their team.
This is one of our best clients. Excellent compensation, benefits and work environment are all part of the deal! Florida has a beautiful climate and no winter!
The successful candidate will:
lead memory initiatives and be responsible for analysis, design and software development to reach required memory targets. Candidate must be able to demonstrate extraordinary skills in attention to system and applications 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
- ELF format organization and understanding how dynamic linker works
- Knowledge in ARM EABI, stack organization and how use it in practice (stack unwinding, symbolizing)
- Strong knowledge in system and application memory allocation, custom allocators, analysis for memory and swap fragmentations, resources leaks
- Ability to select and use memory allocation policy, choose or implement the best suitable allocator
- Experience in use Valgrind or similar tools including extensions and APIs
- Experience in optimization processes to keep latencies low in case of paging (including swapping)
- 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 Memory or Storage
- 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 considering CMA, PMM, ION, 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.
Doctorate or master’s degree in computer science or equivalent work experience