Designs enhancements, updates, and programming changes for systems software, including networking, drivers, interfaces, and tools.
Assesses design, coding, programming, and integration activities required based on general goals and knowledge of overall architecture of product or solution.
Writes and executes complete test plans, protocols, and documentation for assigned portion of application; identifies, debugs, and creates solutions for issues with code and integration with application architecture.
Oversees a project team of other software system engineers, and development partners, to develop reliable, cost effective and high-quality solutions for assigned subsystem.
Collaborates and communicates with management, internal, and outsourced development partners regarding software system design status, project progress, and issue resolution.
Represents the system software engineering team for all phases of larger and more-complex development projects.
Provides guidance and mentoring to less-experienced staff members.
Requirements
Bachelor's or Master's degree in Computer Science, Computer Engineering, Information Systems, or equivalent
3-7 years of experience in the embedded software development
Expertise with multiple software systems design tools and languages (C, C++, python, and GO are frequently used)
Linux development
RESTful API
Strong assessment and problem-solving skills
Designing software systems running on multiple platform types
Software systems testing methodology, including writing and execution of test plans, debugging, and testing scripts and tools
Excellent written and verbal communication skills; mastery in English and local language
Ability to effectively communicate product architectures, design proposals and negotiate options at management levels.