Design and implement code ensuring scalability, performance and security
Code and implement new algorithms to solve complex problems
Aid in key architectural and technology decisions as well as design and code reviews
Maintain working technical knowledge of the domain and market
Work collaboratively with cross-functional distributed teams Engineering, QA and Product Management in all phases - Requirements, Development, Testing, Launch/Release
Document best practices and architectural references in developing and deploying product solutions
Work in an Agile development environment while continuously evaluating and improving engineering processes
Aid the IoT Solutions Engineering team in building reference architectures for key IoT use cases
Aid the IoT Solutions Engineering team in the evaluation and application of new technologies and partner offerings
Required
Bachelor’s Degree in Computer Science or related field (Master Degree preferred) or relevant experience
5-7+ years of professional experience in software development, or a combination of professional experience plus internship and/or Master Degree
Computer Science fundamentals in object-oriented design
Computer Science fundamentals in data structures, algorithm design, problem solving, and complexity analysis
Proficiency in, at least, one modern programming language such as Java, Go Lang, C/C++ or related
Working knowledge of Virtualization and Containerization stacks and tools. Experience with specific container and cluster orchestration technologies, such as Docker, Mesos, Kubernetes, Swarm, etc is a plus.
Experience working with Linux and Windows operating systems
Experience with DevOps procedures and tools to include Maven, Gradle or similar; CI tools - Jenkins or similar; SCM tools – Git or similar
Experience with unit, integration and blackbox testing procedures and tools like JUnit, TestNG, Cucumber, Postman, etc.
Experience in communicating with technical teams, and product management to collect requirements, describe and clarify software product features, technical designs, and product strategy
Experience in sharing knowledge with software engineers to improve their skills, and make them more effective product software engineers
Experience influencing software engineering best practices within your team
Strongly desired
Experience working with embedded devices and/or embedded systems
Good understanding of SDLC, Agile methodologies. Agile development experience as a SCRUM Master is a strong plus.
Working knowledge of Kafka, KStream or other related stream processing frameworks such as Samza, Flink
Working knowledge of IoT platforms (e.g. Azure IoT Suite, AWS IoT, Google IoT Core, SAP Leonardo, IBM Watson, Software AG Apama)
Working knowledge of OT (e.g. fieldbusses) and IT connectivity protocols
Experience working with open source software and communities