Provides technical expertise to design and develop software components and products that support H&R Block business applications. 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.
- Designs, develops and maintains complex software components
- Creates and maintains documentation of design approaches
- Creates and maintains documentation on internal architecture of the system. Provides direction in architectural changes in the system.
- Proposes product design features to support scalability, usability and better performance.
- Leads technical design and code reviews for all new enhancements and maintenance work delivered by the development team.
- Understands complex business and functional requirements and provides direction in 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.
- Creates, maintains and executes complex unit test and alpha test plans
- 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.
- Bachelor's degree with emphasis in systems development or related area or the equivalent through a combination of education and work experience.
- Five to six years IT experience to include short-term and long-range planning, budgeting, systems analysis and design
- Experience in data and process modeling of business requirements.
- Knowledge and experience of relational databasetechnology.
- Knowledge of all phases of the systems development life cycle.
- Exposure to client/server and/or web development.
- Demonstrated decision making, analytical and problem solving skills.
- 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.
- Experience with C# best practices, Design patterns, solid principles, unit testing is a plus.