JOBSEARCHER

Sr Embedded Software Engineer

ARCHIVED

We can't find an active application page for this role right now. It may reopen or be listed elsewhere. Use Next Steps to search for an active apply link and similar live jobs.

Platforms Storage Embedded Software Engineer is responsible for building storage solutions for all of Appko’s clients services. You will be responsible for development of all drivers, firmware, tools etc. for flash, spindles and the next-generation disruptive storage technologies (like persistent memory). We are designing linux drivers, modifying kernel storage stack, user space interfaces optimized for Flash, Persistent memory innovating unique capabilities to maximize performance for Search, the Colossus/D stack and Cloud. With Cloud, we are exploring innovations in the Flash interfaces, driver and firmware for Virtualized environments.The team also innovates and designs software solutions to enhance storage security and storage management; performance demands across various types of storage workloads. (online bulk, archive, online, low latency block etc.) We are also supporting our client in developing and maintaining flash analytics infrastructure to help monitor, troubleshoot, derive insights on the storage devices in the fleet.Areas of focus and impactKernel storage stack, linux drivers, firmware; user space interfaces optimized for Flash and HDD to maximize performance, security, capacitySystems software/firmware design for flash and non-volatile memorySoftware solutions to enhance storage securityEnd-to-end storage system performance optimizationDevelop innovative approaches to take the next generation of Flash devices to new places (things like disaggregated storage, NVMe over fabrics etc.)Develop and maintain platform storage analytics infrastructure to help monitor, troubleshoot and derive insights on the storage devices in the fleet (imagine knowing fully and in real time what all of our storage devices are doing throughout their lifecycle; more importantly, imagine knowing this at scale, and using this to make better lifecycle, design decisions)Software tools and utilities to optimize the lifecycle of our storage devicesStorage device management and controlREQUIRED SKILLSC, C++, Software Development, Operating SystemsPREFERRED SKILLS AND QUALIFICATIONSStorage, Solid-State Drives, Kernel Drivers, Embedded SystemsHaving as many of these specific qualifications is a plus, but transferable skills/experiences may be equally valuableExcellent programming, problem solving and debugging skillsKnowledge of Linux Kernel Storage I/O stackExperience with solid state and disk based storage technologies, storage protocols (NVMe, SATA/ATA/SAS)Minimum qualifications:BA/BS degree or equivalent practical experience.4+ years of work experience programming in C and C++.2+ years of experience with embedded system programming experience.Soft SkillsProblem solver - should have strong problem-solving skills and be able to work through issues systematically to find the root cause of the problem.Attention to detail -  Small mistakes can have significant consequences, and a great embedded engineer should be able to pay close attention to detail and ensure that all components are working together correctly.Continuous Learning - should be able to stay up-to-date with the latest trends and advancements. They should be curious, self-motivated, and always looking for ways to improve their skills and knowledge.Time Management - should have strong time management skills, including the ability to prioritize tasks, manage multiple projects simultaneously, and meet deadlines.Excellent communication and collaboration skills - ability to work in a team, and the willingness to learn and adapt. Passion - should also have a passion for technology and be able to work through complex problems with patience and persistence.