MUMBA Technologies Inc
Senior Embedded Software Engineer
MUMBA Technologies Inc, Sunnyvale, California, United States, 94087
Primary Function of PositionAs a Senior Software Engineer, you will work on the design and development of system software and digital applications for the latest hardware targeting end-users involved in surgical robotic procedures. The successful candidate must excel in an agile, focused, small-team environment and commit to high-quality research prototypes and supporting infrastructure. A strong sense of shared responsibility and shared reward is required.Essential Job DutiesThis position is responsible for all aspects of system software development, associated tooling, and infrastructure to explore and build a novel telesurgery system.Design, build, debug, and deploy real-time applications using C, C++, C#, Matlab, and Python on platforms like Linux, Windows, and real-time operating systems.Characterize and integrate a high-bandwidth, ultra-low-latency communication interface to develop a real-time tele-op system.Develop a modular, robust, fail-safe, ultra-low latency embedded streaming application.Build compelling prototypes to demonstrate the technical feasibility and to define the product roadmap.Construct a software pipeline to synchronize, encrypt, and transmit over a network efficiently.Participate in software architecture discussions, code reviews, and user studies design.Responsible for unit testing and integrating the code for function testing, robustness, and reliability.Cross-functional requirements discussions, ranging from customer-facing clinical needs to safety requirements.Translating early requirements into prototype implementations to evaluate and assess a novel and sophisticated robotic system.Apply good software engineering practices to write elegant, maintainable, reusable code.Create documentation for the developed features and techniques that were tried, rejected, or implemented.Required Skills and ExperienceProven track record in building real-time embedded systems, real-time applications, and/or embedded software.Experience with industrial embedded OS (e.g., Yocto, QNX) and cross-compilation is a plusDemonstrated proficiency in C, C++, C#, Python, and MATLAB.Experience with multi-threaded and multi-processor/multi-core systems.Hands-on experience with network interface and streaming protocols such as UDP, RTP, SRTP, SSL/TLS, and GStreamer.Experience with publish/subscribe architectures, REST interfaces, and interprocess communications.Hands-on experience building tools and software to evaluate network performance, characterize throughput, and efficiently interface with high-bandwidth networks.Proficiency in profiling and debugging system software to optimize performance.Strong communication skills and a commitment to collaborative team success.Exceptional programming skills with a deep understanding of software engineering principles and methodologies.Disciplined approach to debugging with a persistent attitude towards solving problems.Required Education and TrainingMinimum Masters degree or above in Computer Science, Computer Engineering, or a similar technical field. Advanced degrees preferred.A minimum of 8 years of experience developing and supporting embedded systems (or 5 years with a PhD).Preferred Skills and ExperienceHands-on engineering experience with proven ability to work effectively in a team environment.Ability to build and maintain relationships across supported organizations.Experience in all phases of the product development lifecycle, including design, implementation, debugging, verification, validation, and transfer to manufacturing.Knowledge of serial-arm robot kinematics.Knowledge of classical and modern servo control systems.Experience building digital applications interfacing with the latest AI/ML models.Experience with medical device software development life cycle is a plusExperience designing software products in a regulated industry or for mission-critical applicationsExperience with concepts of design input, design output, traceability, risk analysis, and mitigations.