Software Engineer -Java + DB Microservices Eng Backend
Date: May 11, 2023
Location: Pune, MH, IN
Company: Houghton Mifflin Harcourt
Staff Software Engineer — Java and Database Back End for the HMH Reporting Platform
HMH Software Engineering
HMH Software Engineering provides cutting edge, individualized learning experiences to millions of students across the United States. We are as driven by this mission as we are by continuously improving ourselves and the way we work. Our offices are high energy, collaborative beehives of activity where work is centered on small, autonomous teams that build great software. We trust each other, hold ourselves and our teammates accountable for results, and improve student outcomes with each release.
At HMH we constantly experiment with new approaches and novel ways of solving problems. We often succeed and sometimes stumble — either way we learn and move forward with more confidence than we had the day before. We are as passionate about new technologies and engineering craftsmanship as we are about transforming the EdTech industry itself.
We’re not just looking for hands on a keyboard to pound out code, we’re looking for talented teammates and colleagues who contribute as much as they receive and thrive working with us.
If this sounds like you let’s talk.
The Opportunity - Staff Software Engineer
Staff Software Engineers personify the notion of constant improvement as they work with their team to build software that delivers on our mission to improve student outcomes. You’re not afraid to try new things even if they don’t work out as expected. You are independent, self-directed, high energy and as eager to contribute to your team as you are to progress on your own path to software craftsmanship. You’ll thrive working in a fast-paced, low friction environment where you are exposed to a wide range of cutting-edge technologies.
Reporting Platform:
You will be working on the Reporting Platform that is part of the HMH Educational Online/Digital Learning Platform using cutting-edge technologies. The Reporting team builds highly scalable and available platform. The platform is built using Microservices Architecture, Java microservices backend, REACT JavaScript UI Frontend, REST APIs, AWS RDS Postgres Database, AWS Cloud technologies, AWS Kafka, AWS Kinesis, Spark with Scala, Kubernetes or Mesos orchestration, Apache Airflow scheduler, DataDog for logging/monitoring/alerting, Concourse CI or Jenkins, Maven, etc.
Responsibilities:
- Work collaboratively as part of a software development team producing the code that matters to the students and teachers who use HMH products and services.
- Eagerly learn and apply new cutting-edge technologies.
- Contribute to our engineering culture and ever-improving concept of engineering best practices.
- Implement Java Spring Boot Application Microservices.
- Implement complex queries and stored procedures to support REST APIs and batch rollups of reports data for customer organizations.
- Writing, designing, testing, implementing, and maintaining database applications/procedures using SQL or other database programming languages.
- Resolve performance issues, performance tuning of database systems, queries, indexing.
- Use of Apache Airflow scheduler to setup DB jobs to run automatically.
- Manage and create data import and export processes (ETL) into the databases and create and manage data integration scripts using file transfers, API calls, and/or other methods.
- Develop solutions using AWS database technologies like RDS Postgres and Aurora Postgres.
- Provide support for systems architecture for Reporting Platform.
- Setting up Monitor Dashboards and Alerts using DataDog to proactively catch issues.
- Diagnose and troubleshoot database errors.
- Create automation for repeating database tasks.
- DevOps knowledge to automate deployments using Jenkins or Concourse.
Skills & Experience
Successful Candidates must demonstrate an appropriate combination of:
- 1 to 4 years of Experience in Java and Spring Boot framework for developing web-based application microservices.
- Databases Postgres preferred, SQL query experience, Query performance tuning, and ETL jobs including stored procedures.
- Considerable experience with Cloud technologies.
- Advanced knowledge of database security and performance monitoring standards.
- Understanding of relational and dimensional data modeling.
- Logical and systematic problem-solving skills.
- Ability to work collaboratively and effectively in both small and large teams and cross-functional environments while contributing to the larger goals of an engineering team. You know how to make your team better one step at a time.
- Full understanding of Agile software development methodologies and practices.
- Strong communication skills — both verbal and written.
- Passionate curiosity and a desire to learn and grow throughout your career
- Extensive experience working with technologies and concepts such:
- Architectural concepts such as micro-services and separation of concerns
- In-depth knowledge of class-based, object-oriented programming and design patterns
- Behavior-driven or test-driven development
- JVM-based languages such as Java and Scala
- Development frameworks such as Spring Boot
- Database technologies such as SQL, Aurora, Redshift, Liquibase or Flyway
- Strong command of SQL. SQL server tools, ETL jobs including stored procedures.
- Considerable experience with Cloud technologies.
- Unit-testing frameworks such as jUnit
- Knowledge of DataDog for setting up monitoring and alerting dashboards.
- Performance testing frameworks such as Gatling
- Development tools such as GitHub, Jira, Jenkins and Maven
- Cloud technologies such as AWS and Azure
- Data Center Operating Technologies such as Kubernetes, Apache Mesos, Apache Aurora, and TerraForm and container services such as Docker.
Required Education:
- A BS/MS in Computer Science, Computer Engineering, or a STEM field.