Job Description
This role is responsible for C/C++ software development and Python, Shell scripting with extensive work in designing and building high-quality, high-performance embedded applications. You will be assigned to research, design, develop, and test embedded software solutions for our company line of products.
The successful candidate will be a responsible, motivated, self-started professional who is able to work alone as well as in a team environment.
Responsibilities
· Research, design and develop functional and performance enhancements for existing products and develop new software products and tools.
· Design and develop applications in C/C++ and Python on a Linux platform
· Analyze and code complex modules, define data structures, and specify test tools
· Solve problems and create solutions for embedded systems
· Troubleshoot, isolate, and resolve issues in complex systems and components
· Communicate effectively (written and verbal) with management, systems engineers and other software developers on ideas and solutions
· Successfully complete multiple simultaneous tasks in an environment with rapidly changing priorities
· Actively participate in a small, experienced, energetic team on a rapid, agile development schedule
· Write and maintain lower level device drivers and various hardware interfaces, in addition to higher level I/O subsystems in C/C++
· Design, develop and support desktop, server, and embedded software for various products
· Take ownership of projects and lead team members
· Plan, document and execute software testing activities
· Design and implement embedded software in line with best practices
· Perform rapid-prototyping to support functional requirement development
· Perform Deep dive analysis improving hardware, software interfaces
· Test and validate new software features within our products and solutions and/or on the test bench
Job Requirements
Experience and Skills:
· Min. 5 years of software engineering experience using C/C++, Python and Shell scripting on x86 and ARM.
· Well versed with cross compilation toolchains
· Strong Knowledge of the Linux environment, on desktop and embedded platforms
· Familiarity with NodeJS, REST API, and Microsoft platform (C#, WPF and WCF) is a big plus.
· Fluent in Virtualization (e.g. QEMU) and remote management.
· Hands-on experience developing, designing and testing IOT/embedded applications on Linux
· Experience in all phases of the software development life-cycle
· Thorough Networking knowledge including TCP/IP socket programming and routing
· Experience with source control and bug tracking tools
· Ability to read and interpret electronics schematic diagrams is a plus
· Early development planning
· Work with full life cycle of product(s)
· Design / Proof of Concept
· Ability to proactively drive technical solutions in a collaborative environment
EDUCATION
· Bachelor’s degree in Computer Science, Software Engineering, Electronics Engineering or related area is preferred
· Certifications are a plus
KEY COMPETENCIES
· Excellent verbal and written communication skills in English
· Effective organizational skills
· Must have a passion for delivering exceptional products
· Team Player
· Time and stress management skills
· Honest & trustworthy
· Works with a sense of urgency
· Complex problem solving skills
· Adaptability
· Attention to detail