BASIC FUNCTIONS: This position performs complex research, design, and software development assignments within a software functional area or product line, and provides direct input to project plans, schedules, and methodology in the development of cross-functional software products. This position performs software design typically across multiple systems; mentors more-junior members of the team; and talks to users/customers and translates their requests into solutions.
- 5+ years of Software Engineering experience
- BS Engineering/Computer Science or equivalent experiencerequired
- Advanced knowledge of software development methodologies (e.g., Agile, Waterfall).
- Strong proficiency with data manipulation language including optimization techniques.
- Strong understanding of normalized/dimensional data modeling principles.
- Strong knowledge of multiple data storage subsystems.
- Strong research skills.
- Strong knowledge in industry best practices in development.
- Knowledge in using and developing applicable tool sets.
- Ability to interface competently with other technical personnel or team members to finalize requirements.
- Ability to work well with internal and external technology resources.
- Knowledge of test-driven development.
- Ability to write and review portions of detailed specifications for the development of complex system components.
- Ability to complete complex bug fixes.
- Good oral and written communications skills.
- Interface with other technical personnel or team members to finalize requirements.
- Write and review portions of detailed specifications for the development of complex system components.
- Complete complex bug fixes.
- Work closely with other development team members to understand complex product requirements and translate them into software designs.
- Successfully implement development processes, coding best practices, and code reviews.
- Operate in various development environments (Agile, Waterfall, etc.) while collaborating with key stakeholders.
- Resolve complex technical issues as necessary.
- Train entry-level software engineers as directed by department management, ensuring they are knowledgeable in critical aspects of their roles.
- Keep abreast of new technology developments.
- Design and work with complex data models.
- Mentor less-senior software developers on development methodologies and optimization techniques.
- All other duties as assigned.