EdgeX Software Engineer
Ubuntu is the most widely used Linux platform for innovation from cloud to connected devices. EdgeX Foundry is an open source platform for edge computing. Work with both technologies to further the future of IoT.
Responsibilities include snap packaging, participation in the upstream working project (workgoup meetings, code review, etc.), optimization of EdgeX for Ubuntu Core and Classic, SI/ODM/OEM developer support, documentation, developing, demonstrating, and presenting some of the most advanced operating systems and application technologies available in the enterprise world. The role is a fast-paced, problem-solving environment and the questions require answers that can be challenging yet very exciting. The right candidate must be resourceful, quick-thinking, and able to deliver on a wide variety of solutions across cloud, server, desktop and IoT technologies.
Key Responsibilities and Accountabilities
- Packaging Edge components in snaps
- Participation in the upstream project and representing Canonical and its partners
- Become a subject matter expert on EdgeX device and application services, including the associated SDKs, in order to provide expert guidance on building vertical solutions based on EdgeX
- Develop and present EdgeX related sales collateral such as presentations, how-to guides, and technical workshops documents
- Build strategic relationships within the EdgeX Foundry community, including key technology partners and customers
- Conduct yourself as a trusted technical advisor
- Leverage deep knowledge of Ubuntu and related technologies to provide technical subject matter expertise to the EdgeX community, partners, and customers for the development and implementation of complex IoT products and end-end solutions based on EdgeX.
- Work in conjunction with Canonicals IoT and Cloud sales, delivery and business development teams to grow existing customer accounts as well as winning new customers, including the interaction with other offices in the US
- Travel required; mix of domestic and international up to 30%
Required skills and experience
- BA/BS (or higher) degree in Computer Science or related engineering field
- 5 + years of experience as a software engineer
- A solid understanding of the makeup of a modern GNU/Linux distribution, Debian or Ubuntu preferred
- 2+ years of experience with Golang programming
- Experience with containers
- Experience with Linux packaging (Debian, RPM, Yocto)
- Experience with Security technologies (certs ) and best practices
- Experience with source control systems
- Knowledge of network protocols (TCP/IP, DHCP, ...)
- Knowledge and experience with REST API(s)
- Knowledge and experience with messaging architectures (DBus, SOAP, gRPC, pub/sub)
- Understanding of security issues in the IoT industry
Desired skills and experience
- Experience with modern languages such as Go, C/C++ or Python
- Experience with Access Control (JWT, OAuth, SSO)
- Experience with IoT protocols (Bacnet, LWM2M, Modbus, OPC-UA, )
- Familiarity with x86 and ARM SoC architectures and vendors
- Experience of deploying embedded and IoT solutions - from hardware, operating systems through applications and cloud services.
- Experience with agile methodologies