Software Engineer
Field Services
Apex North Carolina Direct Hire Nov 24, 2020

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.