At HMH, we are on a journey to change K-12 education landscape by building a ground breaking new learning platform to serve teachers and students. We are creating teams full of innovative, eager software professionals to build the products that will transform our industry. Our modern cloud platform development is under way, and we are advancing our next generation services using a variety of new technologies like micro-services, progressive web apps, data platform, machine learning, cloud-native and more.
Software Engineering at HMH:
- Software Engineering at HMH is focused on building fantastic software to meet the challenges facing teachers and students, enabling and supporting a wide range of state-of-the-art learning experiences. We build applications used by millions!
- Our self-contained development teams are filled with Engineers who love solving problems and building high-quality products and services.
- We use a wide range of technologies and are building the next-generation classroom.
If you want to make a difference in the lives of students and teachers, understand what it takes to deliver high-quality software and have solid back-end, automation and CI/CD skills we would love to talk to you.
Technology Stack:
- You'll work with technologies such as:
- Web: Typescript, Web Components, Progressive Web Apps and React
- Development: Node.js/Typescript and Spring Boot/Java
- API: REST, GraphQL, API Gateway
- Deployment: Github, Jenkins, Concourse CI
- Containers: Docker and Kubernetes
- Database: PostgreSQL, DynamoDB, Redis
- Cloud: AWS, Terraform
- Frameworks: Apache Mesos, Kafka, Spark, and Amazon Kinesis
What you’ll be doing:
- Write Back End code: We write lots of micro-services using the tech stacks above
- Create, maintain and improve state of the art CI/CD pipelines
- Contribute to Front End code: Our web applications are complex apps developed using React and Web Components
- Own something big, from start to finish
- Look ahead, find and avoid pitfalls for the team
- Eagerly learn and apply new cutting-edge technologies like functional programming, distributed computing, machine learning, advance data engineering, and serverless computing
- Contribute to our engineering culture and ever-improving concept of engineering best practices
What you’ll bring:
- 6+ years of experience and a bachelor's degree in computer science or related field is preferred
- Experience with Java or Node, as well as front-end (HTML/JS) but place the highest value on the ability to be productive in a wide range of environments, and learn to be productive quickly, even with unfamiliar tools
- Great at turning ideas into code, and making that code usable by your teammates
- Architectural concepts such as microservices and separation of concerns
- Understanding of software development processes
- Ability to test, analyze data and improve constantly
- Understanding of RESTful services (status codes, operation types, payload formats)
- Cloud familiarity (preference for AWS)
- Code reviews and version control (preference for git)
Nice to have:
- Experience with browser performance and security
Physical Requirements:
- Might be in a stationary position for a considerable time (sitting and/or standing)
- The person in this position needs to move about inside office to access file cabinets, office machinery, etc.
- Constantly operates a computer and other office productivity machinery, such as a calculator, copy machine, and computer printer
- Must be able to collaborate with colleagues via face to face, conference calls, and online meetings