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 expertise with full stack application development we would love to talk to you.
- 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:
- Contribute significantly to application architecture
- Write Back End code: We write lots of micro-services using the tech stacks above
- Write 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
- Lead and influence a development team of 5-10 engineers
- Communicate across the organization
What you’ll bring:
- 10+ years of experience and a bachelor's degree in computer science or related field is preferred
- Exceptional technical competence that includes a portfolio of thought and technical leadership
- Proven track record as a leader in initiating, architecting and building distributed and scalable solutions across the complete stack: front-end, back-end, web services and database layers.
- Expertise in a wide range of technologies with the know-how to choose and apply the right technology for the job.
- 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
- Ability to test, analyze data and improve constantly
- Cloud familiarity (preference for AWS)
- Code reviews and version control (preference for git)
- 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