Sr Software Engineer

Apply now »

Date: Apr 10, 2024

Location: pune, MN, IN

Company: Houghton Mifflin Harcourt

Senior Software Engineer (Java)

 

HMH is a learning technology company committed to delivering connected solutions that engage learners, empower educators, and improve student outcomes. As a leading provider of K–12 core curriculum, supplemental and intervention solutions and professional learning services, HMH partners with educators and school districts to uncover solutions that unlock students' potential and extend teachers' capabilities. HMH serves more than 50 million students and 4 million educators in 150 countries.  

 

Software Engineering at HMH

Software Engineering at HMH is focused on building fantastic software to meet the challenges facing teachers and learners, enabling and supporting a wide range of next generation learning experiences. We design and build custom applications and services used by millions. We are creating teams full of innovative, eager software professionals to build the products that will transform our industry.

 

We are staffing small, self-contained development teams with people who love solving problems, building high quality products and services. We use a wide range of technologies and are building up a next generation microservices platform that can make our learning tools and content available to all our customers.

 

If you want to make a difference in the lives of students and teachers and understand what it takes to deliver high quality software, we would love to talk to you about this opportunity.

 

Technology Stack

You'll work with technologies such as Java, Spring Boot, Kafka, Aurora, Mesos, Jenkins etc.

This will be a hands-on coding role working as part of a cross-functional team alongside other developers, designers and quality engineers, within an agile development environment. We’re working on the development of our next generation learning platform and solutions utilizing the latest in server and web technologies.

 

 

Responsibilities:

  • Build high-quality, clean, scalable, and reusable code by enforcing best practices around software engineering architecture and processes (Code Reviews, Unit testing, etc.) on the team.
  • Work with the product owners to understand detailed requirements and own your code from design, implementation, test automation and delivery of high-quality product to our users.
  • Drive the design, prototype, implementation, and scale of cloud data platforms to tackle business needs.
  • Identify ways to improve data reliability, efficiency, and quality.
  • Plan and perform development tasks from design specifications.
  • Provide accurate time estimates for development tasks.
  • Construct and verify (unit test) software components to meet design specifications.
  • Perform quality assurance functions by collaborating with the cross-team members to identify and resolve software defects.
  • Provide mentoring on software design, construction, development methodologies, and best practices.
  • Participate in production support and on-call rotation for the services owned by the team.
  • Mentors less experienced engineers in understanding the ‘big picture’ of company objectives, constraints, inter-team dependencies, etc.
  • Participate in creating standards and ensuring team members adhere to standards, such as security patterns, logging patterns, etc.
  • Collaborate with project architects and cross-functional team members/vendors in different geographical locations and assist team members to prove the validity of new software technologies.
  • Promote AGILE processes among development and the business, including facilitation of scrums.
  • Have ownership over the things you build, help shape the product and technical vision, direction, and how we iterate.
  • Work closely with your product and design teammates for improved stability, reliability, and quality.
  • Perform other duties as assigned to ensure the success of the team and the entire organization.
  • Run numerous experiments in a fast-paced, analytical culture so you can quickly learn and adapt your work.
  • Promote a positive engineering culture through teamwork, engagement, and empowerment.
  • Function as the tech lead for various features and initiatives on the team.
  • Build and maintain CI/CD pipelines for services owned by team by following secure development practices.
  •  

 

Skills & Experience:

  • 5 to 8 years' experience in a relevant software development role
  • Excellent object-oriented design & programming skills, including the application of design patterns and avoidance of anti-patterns.
  • Strong Cloud platform skills:
  • AWS Lambda, Terraform, SNS, SQS, RDS, Kinesis, DynamoDB etc.
  • Experience building large-scale, enterprise applications with ReactJS, AngularJS.
  • Proficient with front-end technologies, such as HTML, CSS, JavaScript preferred.
  • Experience working in a collaborative team of application developers and source code repositories.
  • Deep knowledge of more than one programming language like Node.js/Java/ C# technology stack.
  • Demonstrable knowledge of AWS and Data Platform experience: Lambda, Dynamodb, RDS, S3, Kinesis, Snowflake.
  • Demonstrated ability to follow through with all tasks, promises and commitments.
  • Ability to communicate and work effectively within priorities.
  • Ability to advocate ideas and to objectively participate in design critiques.
  • Ability to work under tight timelines in a fast-paced environment.
  • Advanced understanding of software design concepts.
  • Understanding software development methodologies and principles.
  • Ability to solve large scale complex problems.
  • Ability to architect, design, implement, and maintain large scale systems.
  • Strong technical leadership and mentorship ability.
  • Working experience of modern Agile software development methodologies (i.e. Kanban, Scrum, Test Driven Development)

 


Job Segment: Web Design, Curriculum, Education, Creative

Apply now »