Software Developer II
Job Description
Responsibilities:
• Implement middleware for intelligent environment devices, mainly within a Linux environment as well as for Predix Machine.
• Capture system level requirements by brainstorming with Sr. Architects, Data Scientists, and Businesses & Product Managers.
• Execute in a fast pace delivery mode and focus in delivering tasks to meet the product release goal.
• Be responsible for the design, development and testing of multiple software modules.
• Ensure implementation meets design objectives.
• Investigate and evaluate new technologies.
• Establish yourself as a thought leader across the software organization related to edge-device and real-time software design and coding principals interfacing to cloud computing architectures.
• Collaborate with other software developers in the team to implement software that align and extend platforms and systems for industrial internet.
• Join a high-performing Agile team adept in the ways of scrum and test driven development.
Qualifications:
• BS in Computer Science, Electrical Engineering, or Computer Engineering.
• Minimum of 2 years software development experience.
• Networked Appliance Solutions experience, Strong knowledge of UDP, TCP and IP v4/6 specification.
• Experience in Object Oriented Design and Programming in Java and C++.
• Expert understanding of multi-threaded priority based systems.
• Multiprocessor/Multi-OS solutions experience.
• Experience in web services (REST, SOAP, WSDL etc.),using Apache Commons Suite & Maven.
• Experience with usage of Network/Packet Processor technologies.
• Experience in Socket programming.
• Experience with device management and control.
• Must be bilingual.Skills Requirement:
• Experience with MQTT messaging protocol.
• Experience in implementing Java OSGi modules and using an OSGi container.
• Experience with embedded OS development, kernel and device drivers.
• Experience with GIT software version control system.
• Experience with Agile management tools.
• Experience in designing with UML.
• Custom Platform Tool Chain and Build System experience desired.
• Knowledge of security/access control, scalability, high availability, concurrency, online diagnoses, deployment, upgrade/migration,internationalization, production support and other SaaS enterprise software issues.