As a control systems developer, you will be part of a highly independent cross functional feature team, which writes cross-platform applications using exciting web technologies like node, angular and electron using TypeScript as a programming language. The team is focused on refreshing and redesigning legacy applications by building a new ecosystem of highly compatible apps and modules. The team employs innovative and modern design philosophies in regular day to day development, such as:
- Microservice based architecture, a framework to provide scalable and shareable functionality.
- 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.
Job Responsibilities:
- 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 modules on the newly redesigned 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 software support for new Extron hardware.
- Build shareable modules that support other Extron product teams in their feature development and automation efforts.
- Author unit and integration tests to maintain testing coverage requirements.
- Write page object models to help support E2E automation.
- Engage with teams to raise the bar by participating in efforts like training, process improvements, developing internal software tools and utilities, etc.
Experience Required:
- BS/MS in Computer Science / Computer Engineering.
- 3+ years' experience developing applications in Typescript, JavaScript, and Python.
- Experience in developing shareable modules/services/libraries.
- Experience in agile software development process (SCRUM/Kanban).
- Experience in writing Unit/Integration tests using Jasmine, Mocha, or other JS frameworks.
- Solid understanding of system design, data structures and design principles.
- Excellent written and verbal communication skills to collaborate with cross functional teams.
- Experience in source control tools like GitHub, bitbucket or similar.
- Experience in either of C++, C# or Java is a plus.
- 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.