Overview
GitHub is seeking Principal Software Engineers to join our Engineering team. This role is focused on wide-reaching, cross-team work to improve GitHub’s engineering processes, systems, and architecture. Principal Software Engineers are focused on the most impactful work in engineering and provide guidance to engineering leadership and the organization to help build, scale, and maintain GitHub as the home for all developers.
Responsibilities
Drive department-wide conversations around technical issues and engineering practices, suggesting improvements and ideas as you see them
Ensure the team builds software that is architecturally consistent and of high quality, establishing patterns and best practices for the organization
Coordinate with engineering and product leads to define, prioritize, and task projects that help us meet business objectives
Provide technical leadership, mentorship, pairing opportunities, and code reviews to encourage the growth of others
Help cultivate an environment where team members are empowered and demonstrate a strong sense of ownership and belonging
A week in the life of a Principal Engineer might consist of:
Collaborating with other Principal Engineers to define the future of GitHub engineering and working together to implement that vision
Collaborating with design, analytics, support, and product management to understand the problems we want to solve and exploring how we can solve them
Digging in to the most important issues the department is tackling by asking questions, creating plans, recognizing pitfalls, and raising concerns
Discussing and collaboratively solving engineering and product problems with engineering collaborators in Slack or Zoom
Supporting company-wide initiatives
Bringing key plans and execution ideas to the management team
Mentoring other engineers at all experience levels
Responding to issues and review requests from other teams at GitHub
Reviewing your teammates' Pull Requests and providing helpful feedback
Serve as an engineering representative for critical customer conversations to discover what they love and what their pain points are
Embedding in a squad periodically to enable others to tackle challenges and stretch assignments
Qualifications
Required Qualifications:
Several years of experience designing, developing, shipping, and maintaining high quality software at scale.
Expert in Ruby, Go, .NET, JavaScript, TypeScript, or other modern programming language
Troubleshooting skills across network, application, caching, queuing, load-balancing, storage and distributed services layers.
Experience effectively contributing to technical strategy and roadmaps
Preferred Qualifications:
Ability to think critically about both system design and software engineering concepts and blend those perspectives pragmatically based on project needs
Understanding of production system monitoring and observability
Passionate about fostering good engineering practices and processes
Excellent analytical skills as well as both verbal and written communication skills. We’re a distributed team so strong (asynchronous) communication is critical.
Passionate about mentoring and helping your peers, both inside and outside of your team, to grow
Experience working asynchronously on a remote, distributed (does not have to be professional experience)
Any Graduate