Staff Application Software Engineer
Remote
Full Time
Mid Level
POSITION OVERVIEW
Hybrid position - Tuesday-Thursday in office; Monday & Friday from home, if desired.
The Staff Application Software Engineer is a senior individual contributor responsible for leading the design, development, and delivery of complex software applications supporting NovaTech’s smart automation and control solutions for electric utilities and critical infrastructure. This role serves as a technical authority within the software engineering team, driving architectural decisions, setting coding standards, and ensuring the reliability, scalability, and security of application software. The ideal candidate brings deep expertise in full-stack or specialized application development within industrial or utility-grade environments and a demonstrated ability to mentor engineers and collaborate across functions to deliver mission-critical solutions.KEY RESPONSIBILITIES
Software Architecture & Design
Education & Experience
Hybrid position - Tuesday-Thursday in office; Monday & Friday from home, if desired.
The Staff Application Software Engineer is a senior individual contributor responsible for leading the design, development, and delivery of complex software applications supporting NovaTech’s smart automation and control solutions for electric utilities and critical infrastructure. This role serves as a technical authority within the software engineering team, driving architectural decisions, setting coding standards, and ensuring the reliability, scalability, and security of application software. The ideal candidate brings deep expertise in full-stack or specialized application development within industrial or utility-grade environments and a demonstrated ability to mentor engineers and collaborate across functions to deliver mission-critical solutions.KEY RESPONSIBILITIES
Software Architecture & Design
- Lead the architectural design of embedded application software, ensuring alignment with NovaTech’s technology strategy and industry best practices
- Define and enforce software design patterns, coding standards, and development frameworks across the engineering team
- Evaluate and recommend technology platforms, languages, and tools to meet evolving product and operational requirements
- Conduct technical design reviews and provide authoritative guidance on complex engineering challenges
- Develop, test, and maintain high-quality application software for automation and control systems supporting electric utilities and critical infrastructure
- Own the full software development lifecycle for assigned applications, from requirements analysis through deployment and post-release support
- Write clean, well-documented, and performant code that meets functional requirements and security standards
- Troubleshoot and resolve complex software defects, performance issues, and integration failures in a timely manner
- Serve as the primary technical resource and subject matter expert for application software engineering within the team
- Provide hands-on mentorship and technical guidance to software engineers at all levels, supporting their professional growth
- Lead and participate in code reviews, providing constructive feedback to elevate code quality across the team
- Collaborate with the Director of Software Engineering to define technical roadmaps and engineering capacity plans
- Partner with kernel, web, and Windows development teams to define requirements and deliver integrated software solutions
- Engage with customers and stakeholders as a technical representative to understand operational needs and translate them into software capabilities
- Coordinate with cybersecurity and compliance teams to ensure application software adheres to applicable standards for critical infrastructure environments
- Identify and drive opportunities to improve development processes, tooling, automation, and software delivery pipelines
- Stay current with emerging technologies, industry trends, and best practices in application software engineering and industrial automation
- Contribute to and maintain internal technical documentation, including architecture diagrams, API specifications, and developer guides
Education & Experience
- Bachelor’s degree in Computer Science, Software Engineering, Electrical Engineering, or a related technical field - Required
- Master’s degree in Computer Science or Software Engineering - Preferred
- 8+ years of progressive experience in application software development - Required
- 3+ years in a senior or lead engineering role with demonstrated technical leadership responsibilities - Required
- Experience developing software for industrial automation, SCADA, energy management, or utility control systems - Preferred
- Experience working in or with critical infrastructure environments subject to NERC CIP or similar regulatory frameworks - Preferred
- Proficient in object-oriented C++ - Required
- Proficient in one or more object-oriented or systems programming languages such as Python or JavaScript - Preferred
- Experience with software architecture patterns including microservices, event-driven architecture, and RESTful API design - Required
- Proficiency with version control systems, CI/CD pipelines, and DevOps tooling (e.g., Git, Jenkins, Azure DevOps) - Required
- Familiarity with industrial communication protocols such as DNP3, Modbus, IEC 61850, or OPC-UA - Preferred
- Experience with cloud platforms (AWS, Azure, or GCP) and containerization technologies such as Docker and Kubernetes - Preferred
- Knowledge of cybersecurity principles and secure coding practices applicable to critical infrastructure software, including IEC 62443-4-1 - Preferred
- Experience with relational and time-series databases relevant to operational technology environments - Preferred
- Strong analytical and problem-solving skills with the ability to decompose complex technical challenges into actionable solutions
- Exceptional verbal and written communication skills, including the ability to convey technical concepts to non-technical stakeholders
- Demonstrated ability to lead technical initiatives and influence engineering direction without direct management authority
- High degree of ownership, accountability, and attention to detail in delivering mission-critical software
- Collaborative mindset with the ability to work effectively in a cross-functional, multi-disciplinary team environment
- Commitment to continuous learning and staying current with evolving software engineering practices and technologies
Apply for this position
Required*