Provides technical expertise to design, develop and maintain software components and products that support H&R Block business applications. In addition, provides lead role for day-to-day functional tasks in the team, developer support and maintaining the development environment. Uses tools, languages, coding standards and best practices to develop new product features and maintain year over year product functionality and enhancements. Creates and executes unit tests and addresses defects. Works closely with the QA, UX and other related teams to ensure consistent understanding of requirements and approach.
In addition, assists in planning and implementation of a strategic direction for the product.
ESSENTIAL DUTIES AND RESPONSIBILITIES
- Designs, develops and maintains complex software components
- Creates and maintains documentation of design approaches
- Creates and maintains documentation on internal architecture of the system. Leads architectural changes in the system.
- Identifies product design features to support scalability, usability and better performance.
- Assists and drives technical design and code reviews for all new enhancements and maintenance work delivered by the development team.
- Understands complex business and functional requirements and produces technical specifications and product requirements.
- Establishes best practices in coding and development within the team. Ensures consistency of the use of best practices within the team. Designs and develops reusable code components. Positively and proactively leads and influences the team.
- Provides advice and guidance to associate, senior and software engineer roles in the effective use of coding principles and best practices. Develops reusable code components.
- Creates, maintains and executes unit test and alpha test plans
- Maintains development environment and creates build.
- Maintains and improves current knowledge on the latest technologies relevant to the role regarding algorithms, language, design methodology, third-party development tools, application platforms, hardware compatibility and operating systems.
- Mentors and coaches other team members on the latest technological advances within the current technology used. Leads by example.
- Bachelor’s degree in Computer Science, Information Technology, or related field, or the equivalent through a combination of education and work experience.
- Eight years application development experience or equivalent experience as a technical team lead also to include short-term and long-range strategic planning, systems analysis and design.
- Experience in all phases of the software development lifecycle.
- Experience in data and process modeling of business requirements.
- Demonstrated effective time management, planning and organization skills with the ability to successfully handle multiple tasks, projects and priorities in a fast paced matrix-managed environment.
- Experience using software applications such as Visio, Microsoft Project, PowerPoint, Word, and Excel.
- Effective oral, written and interpersonal communication skills. Strong presentation and facilitation skills necessary to communicate and persuade a wide range of audiences.
- Demonstrated leadership abilities, decision making, analytical and problem-solving skills. Ability to develop creative solutions to assigned projects.
- DevOps experience
- Azure experience
- Experience with containers
- Experience with Chef automated testing is a plus
- Master’s Degree or eight to twelve years application development and support experience.
- Experience with a structured methodology and CASE tools.
- Experience with relational database technology and operating systems.