About the Role: 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. Key Responsibilities: • 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. • Expertise in development languages including but not limited to: Java/J2EE, JavaScript, JSP, C/C++, HTML, XML, SQL, Windows, UNIX, and .Net. • 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.