As a Software Engineer, you will work closely with senior, lead, or principal software engineers to design, develop, and maintain software components and products that support H&R Block business applications. Day to day, you'll use tools, languages, coding standards, and best practices to develop new product features and maintain year over year product functionality and enhancements. You will create and execute unit tests and address defects, work closely with the Quality Assurance, User Experience, and other related teams to ensure consistent understanding of requirements and approach, design, develop, and maintain software components, and create and maintain documentation of design approaches and internal architecture of the system. You will also participate in technical design and code reviews for all new enhancements and maintenance work delivered, understand business and functional requirements and produce technical specifications and product requirements, create, maintain, and execute unit test and alpha test plans, and maintain and improve 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.