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 database technology.
- 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.
- Desired candidate will be interested in working with new and different types of data (for example integrating semi-structured with relational).
- SQL server/TSQL experience
- Linux shell scripting
- Azure tools and data stores
- Excellent communication skills both written and oral ability to communicate complex data in easily understandable terms
- .Net, Scala or Java background is a plus
- Hadoop experience is a plus.