As a senior developer on the control systems team, 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. In addition to regular feature development, you will bring your expertise to influence, promote and evolve areas like framework architecture, system design, coding practices, security and performance.
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.
- Participate in defining the user facing features by collaborating with product and QA teams.
- Design and develop shareable services and modules with a wholistic framework level perspective, ensuring the requirements of high scalability, performance and efficiency are maintained.
- Collaborate with principle engineers, firmware and hardware teams to solve complex system-level problems by implementing industry standards, best practices, new and emerging technologies, tooling, design and architecture.
- Find creative ways to maximize the benefit from the IaC CI/CD framework.
- Build shareable modules that support other Extron product teams in their feature development and automation efforts.
- Author and maintain technical documentation to support consumption of and contribution towards the framework by other teams.
- Author unit and integration tests to maintain testing coverage requirements.
- Engage with teams to influence overall culture by participating in efforts like mentoring, training, process improvements, developing internal software tools and utilities, etc.
- BS/MS in Computer Science / Computer Engineering.
- 3+ years’ experience in NodeJS and Angular.
- Solid understanding of system design, data structures, Object oriented programming and design patterns.
- Proficient in developing API / Services.
- Experience working on Agile software development environment (SCRUM/KANBAN).
- Experience with automation testing frameworks like Jasmine, Mocha, or other JS frameworks.
- Experience in training and mentoring developers.
- Excellent written and verbal communication skills to collaborate with cross functional teams.
- Experience in either of C++, C# or Java.
- Experience in network programming and network security is a plus.