McGraw Hill logo

McGraw Hill

Lead Software Engineer

🇺🇸 Remote - US

🕑 Full-Time

💰 $150,000 - $170,000

💻 Software Engineering

🗓️ December 16th, 2022

Go Java TypeScript
Overview

­McGraw Hill is a learning science company that delivers personalized learning experiences that help students, parents, educators, and professionals drive results.  You can be a part of a strong, dedicated engineering team that makes a real difference in people’s lives every day!
 
Our engineering teams are looking for experienced, smart, and adaptable people.  We like problem solving. You must exhibit independent creativity while functioning cooperatively on a team. You have a sense of personal accountability, a curiosity to research new technologies and methodologies, and a pervasive desire to dig into complex issues while respecting timelines and team commitments. By building the next set of platform capabilities and a wealth of interactive and engaging digital resources, you will support instruction for our newest programs and products at McGraw Hill.
 
We are seeking a lead for one of our software engineering teams. Our teams develop new and existing back-end application code and APIs for a variety of our products as well as front-ends. McGraw Hill is heavily “API-first”, so we engineer back-ends that are consumed both by a product’s front-end, but potentially other services, teams, products, business units, and more. We build APIs that are potentially shared with others, not just within the product that hosts the API. As “single-page apps”, the front-end development is often performed in parallel with both back-end and front-end engineers working in close collaboration towards a shared end vision.
 
This is a team lead position. “Lead” can mean many things to many people. Leads at McGraw Hill contribute often directly to the codebase, and all of them mentor other team members with have a strong desire and motivation to grow the individuals on their team and the team. Leads are highly opinionated and back up their opinions with data and experience. Team leads care greatly about their engineers and other individual contributors. Leads are advocates for their team members and have as much interest on individual successes on the team as they do of the team’s success.
 
No candidate perfectly fits a job description. What we seek the most in candidates is the desire for personal growth, good communication, and commitment to delivering value for real users, not just shipping features. The ability to learn and adapt along with the belief in providing value to our teachers and students is more important than knowing every technology of our stack in great depth. If you feel you would help McGraw Hill, our teachers, and our students, and believe in building solutions for modern learning experiences, we want you to apply!
 
Why McGraw Hill?
  • We firmly believe in the mission of educating students and helping them succeed.
  • We operate in a collaborative and safe environment where everyone’s input is valued, trusted, and respected.
  • You’ll have the continual opportunity for horizontal and vertical movement and growth throughout the organization, including clear career paths for your long term personal and professional growth; we hire good people rather than filling team vacancies.
  • We have a mindset of “deliver value, not features”: we produce meaningful products and services for our students, teachers, administrators, and other users that further our educational mission rather than focus on the letter of requests; we “see the forest, not the trees”

About You:
  • You have demonstrated leadership experience in the past in a modern web engineering environment. Your motivation to lead is intrinsic and not from a belief that the sole means of career growth mandates management. At McGraw Hill, your opportunities for growth don’t require you to take your career a direction you’re not interested in.
  • You know that ceremonies (daily standups, sprint reviews, etc.) aren’t to be performed for their own sake, but you know why such ceremonies are held. You believe Agile and Scrum are mindsets and not a strict playbook that must be followed, but rather you run your team how best you—and they—feel will result in positive outcomes.
  • You have deep expertise developing both the front-end and back-end of modern web applications. Aligning with our stack is nice, but diversity of experience is better. It is essential to have leads who have extensive hands-on engineering expertise across the whole stack.
  • You see the need to build usability, accessibility, localization, and other important considerations into your products.
  • You design APIs that are meant to be consumed by others, so ease of use, simplistic design, and other attributes that benefit interoperability are key.
  • You believe in understanding why work is being done and empathizing with the users, not just implementing code and moving onto the next task.
  • You are outspoken in your beliefs while being able to back them up with experience and objective data.
  • You have demonstrated software delivery experience with a distributed product & engineering team.
  • You can work in a fast-paced software release environment, where you continuously deliver production-grade (near-zero downtime, fault-tolerant, etc.) software daily for a system with millions of users around the world.
  • You have contributed to the full software development life cycle, including writing application code, unit/integration/automation tests, documentation, and performance and security engineering.

What You’ll Do:
  • Make major hands-on and influential contributions to our web applications. Our products at McGraw Hill are used by millions of people every day. Some have an SLA of 99.99% uptime; stability and quality solutions are key!
  • Advocate for processes, either by maintaining existing ones, modifying them, adding new ones, or even eliminating processes, to improve the efficacy, quality, and morale of your team.
  • Work with product, engineering, SRE, and other leadership to understand how your solutions will be planned, developed, implemented, and supported.
  • Contribute to CI/CD processes to allow for smoother releases and increasing team confidence.
  • Use your interpersonal skills and ability to collaborate effectively with product sponsors and senior leadership in engineering and the greater business
  • Understand the business requirements of products, tasks, and stores, and if you identify possible gaps, ambiguities, missing scenarios, opportunities, etc., raise them with the team and with leadership so we can all improve them.
  • Work with a distributed team to solve problems quickly and collaboratively
  • Consider the full lifecycle of solutions when building them from initial conception to launch then maintenance all the way to sunsetting
  • Mentor junior engineers to help grow their professional careers

We have a very diverse stack that can vary across teams and projects. Some of the technologies we use include:
  • Go and Java
  • TypeScript, Angular, NgRx/RxJS, and Protractor
  • CircleCI, Sonarqube, Docker, and Kubernetes
  • Amazon Web Services (AWS): ECS, RDS, Lambda, and many other services
  • Github and NewRelic
  • JIRA, Confluence, Zoom, Slack, and Office 365
  • Python, Spark, and Databricks
  • MySQL, PostgreSQL, and other relational databases
  • DynamoDB and other NoSQL databases
  • Apache Spark and Kafka
 
The pay range for this position is between $150,000 - $170,000 annually, however, base pay offered may vary depending on job-related knowledge, skills, experience and location. An annual bonus plan may be provided as part of the compensation package, in addition to a full range of medical and/or other benefits, depending on the position offered.
45599
Apply Now