As a control systems developer, you will be part of a highly independent cross functional feature team, which writes desktop applications using .NET, C# and TypeScript. The team is focused on core applications that form the backbone of control systems. The team employs innovative and modern design philosophies in regular day to day development, such as:
- Service based architecture, a framework to provide scalable and shareable functionality across apps.
- Developing UI as “Microfront-ends”, this allows sharing of UI modules without code duplication and gives us flexibility to package and build apps in a piece-meal fashion.
- Infrastructure as code (IaC), which will give you a taste of the continuous integration and delivery frameworks.
- Sophisticated network & web security to protect software and hardware communication channels.
- TDD approach to achieve highly automated unit, integration, regression and smoke test suites to minimize manual testing loads.
- Candidate will join a cross-functional feature team, building features in the control system suite of applications.
- Actively participate in defining the user facing features in the control system suite of applications by collaborating with product and QA teams.
- Design and develop shareable services and libraries on the applications’ framework to support the features.
- Author and maintain documentation to support consumption of and contribution towards the framework by other teams.
- Engage with principle engineers, firmware and hardware teams to add control software support for new Extron hardware.
- Build shareable modules that support other Extron product teams in feature development and automation efforts.
- Author unit and integration tests to maintain testing coverage requirements.
- Engage with teams to raise the bar by participating in efforts like training, process improvements, developing internal software tools and utilities, etc.
- BS/MS in Computer Science / Computer Engineering.
- 2+ years' experience developing application in C#, .NET and Python.
- Experience in developing shareable modules/services/libraries.
- Experience in agile software development process (SCRUM/Kanban).
- Experience in writing Unit/Integration tests.
- Solid understanding of system design, data structures and design principles.
- Experience in source control tools like Perforce, GitHub, bitbucket or similar.
- Excellent written and verbal communication skills to collaborate with cross functional teams.
- Experience in IaC and Continuous integration.
- Experience in network programming and network security is a plus.
- Experience in developing services for IoT devices is a plus.