Directs the activities of a software applications development function for software application enhancements and new products. This position oversees the analysis, design, programming, debugging, and modification of computer programs for end user applications. Analyzes and investigates engineering tasks and prepares design specifications, analysis, and recommendations as appropriate. Interacts with project managers, marketing, sales, and users to define application requirements and/or necessary modifications. May also have responsibility for testing, documentation, and procedures for installation and maintenance. Selects, develops, and evaluates personnel ensuring the efficient operation of the function. Analyzes, designs, debugs, and modifies software enhancements and/or new products used in local, networked, or Internet-related computer programs.
Knowledge, Skills, Abilities, Experience, or Characteristics:
- Should have at least 5 years significant experience as a software engineer in a formal product development environment.
- Managed or supervised teams of 3 or more engineers for at least 2 years, with hiring and employee development responsibility.
- Minimum 2 years software engineering management or supervision
- Must have implemented successful solutions to a wide variety of challenges in application architecture, design and coding, functionality and usability, and optimization.
Helpful / Preferred
- Effective verbal communication skills to technical and non-technical audiences. Be able to effectively communicate technical concepts to non-technical people. Experience presenting to external customers a plus.
- Effective writing skills for both specification development, team communication, and technical planning for complex deployments
- Extensive Knowledge of Java, Ruby, and other high-level languages
- Experience in the development of large, complex web-based distributed applications
- Interfacing with external systems via web services (SOAP, REST, etc.)
- Experienced developing project plans and managing teams to deliver projects
- Knowledge and understanding of multiple development methodologies (Agile, Scrum, etc.)
- Managing teams and projects across large volumes of code
- Knowledge and understanding of continuous integration and test cycles
- Generalizing application logic, architecture, and schemas to support multiple complex application requirements
- Effective and accurate software change / enhancement estimation
- Experience implementing monitoring for large software applications
Physical and Mental Requirements
Job is physically comfortable; individual has discretion about walking, standing, etc.
Job requires a very high level of judgment, exceptional analytical ability and creativity in investigating major problems that require original and highly innovative solutions. Reasonable accommodations may be made to enable individuals with disabilities to perform essential functions.
Some travel may be involved for both training and customer facing issues.