Post Job Free
Sign in

Staff Software Engineer - Backend

Company:
Houghton Mifflin
Location:
Pune, Maharashtra, India
Posted:
May 17, 2024
Apply

Description:

Staff Software Engineer

About HMH:

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.

About the role:

You will lead the technical direction of a cross-functional team that includes front-end and back-end engineers, designers and quality engineers You will be required to provide technical leadership and guidance for your team to innovate, solve problems and build high-quality software products and services. You will be the focal point for interactions with other Technical Leads, Engineering Managers, Architecture and product teams to determine the best technical solutions. You will enjoy contributing to development efforts, performing code reviews and promoting engineering best practice.

About the role:

You have proven experience leading teams of software engineers to design and deliver major software components

You enjoy actively contributing code, working with your cross-functional full-stack teams within an Agile development environment

You are able to contribute to technical leadership, collective ownership and delivery of component design, development and maintenance

You can collaborate across functional development teams to solve problems, transfer knowledge and contribute to overall product architecture (Microservices)

You pro-actively architect components, look ahead and avoid pitfalls for the team

You drive quality by initiating and managing code reviews

Leading Teams

You will be responsible for leading your team of 7-12 software engineers to deliver major software components and services, collaborating with other teams and functions to align solution delivery across the Technology Solutions Group

You will help build a collaborative, motivated, interdependent team who will work with product, design and architecture teams in the delivery of software products

You will ensure effective communication of solutions within the Engineering group and its stakeholders in the US, Canada, Europe and India

Engineering Expertise

You will use your engineering knowledge to identify and solve problems and to foresee potential issues and risks. You will manage risks within your team and ensure effective escalation of issues which impact other teams to your manager

You will promote a positive culture that stimulates innovative approaches to solving problems. You encourage proactive, open communication and collaboration within your team

You will ensure high quality standards and practices are followed in your team and the end product is robust, high-availability best-in-class software applications.

Technology Stack at HMH:

We give you the best tools and latest technologies to keep you learning and growing. Here’s a small sample of our tech stack;

Methodology - Scrum, Lean and Agile

Microservices - Java, Spring Boot, Maven, NodeJS,

Container technologies - AWS, Docker and Kubernetes

Development tools - GitHub, Jira, Confluence, Datadog

Database technologies - PostgreSQL, GraphQL, MySQL, Elastic Search and Redis

Operating frameworks - Apache Kafka

CI/CD - Jenkins, Concourse

QE tools - jUnit / xUnit, Mockito / Moq, Supertest, Ava

Web technologies - ReactJS, ECMAScript6, Node/NPM, Jenkins, GIT

You can find out more on our HMH Engineering Blog.

Skills & Experience:

8+ years of experience in Software Engineering

2+ years’ end-to-end people management experience

Experience with JavaScript frameworks (React, Polymer, Vue, Angular)

Possess a deep understanding of popular JavaScript design patterns and their appropriate application (e.g. Module, Factory, Observer, Facade, Adapter, MVC)

Experience developing with one or more modern JS frameworks (e.g. React, Polymer, Vue, Angular) understanding of their capabilities and appropriate application

Strong appreciation of User Experience (UX) best practice with an ability to envisage user behaviors, needs, and motivations.

Exposure to Accessibility, Internationalization and Security patterns on modern Web development projects

Knowledge about Micro Frontend

Hands on experience of unit testing library like React Testing Library (RTL) or Jest

Nice to have understanding of Jenkins.

Experience with Java development with exposure to frameworks such as Spring Boot

Experience with architectural concepts such as microservices and separation of concerns

Experience with cloud technologies such as AWS

Experience with container technologies such as Docker, Kubernetes and Mesos

Experience with messaging Systems such as Kafka and SQS

Experience with Database and Caching technologies such as SQL, Aurora, and Redis

Experience with development tools such as GitHub and Jira

Experience in Test Driven Development and automated testing tools like Junit, Cucumber, Mockito, Pact, SonarQube and Gatling

Experience working in an agile delivery framework

Preferred Experience:

Cloud technologies such as AWS

Container technologies such as Docker and Kubernetes

Development tools such as GitHub and Jira

Database technologies such as SQL, Aurora, and Redshift

Experience in a wide range of technologies and patterns across the full stack including micro frontends

Experience with Java development and frameworks such as Spring Boot

Experience with popular JavaScript design patterns and their appropriate application (e.g. Module, Factory, Observer, Facade, Adapter, MVC)

Experience with one or more modern JS frameworks (e.g., React, Polymer, Vue, Angular)

Operating frameworks such as Apache Mesos, Apache Kafka, Apache Spark, and Amazon Kinesis

Test Driven Development and automated test tools such as Junit, Cucumber, Mockito

Required Education:

Degree or Master’s in Computer Science or relevant discipline

Apply