GitHub is the world’s leading platform for agentic software development. In this role, the Senior Software Engineer, Data Engineering, will enhance the collaboration experience by designing, prototyping, implementing, and supporting user experiences while providing technical leadership and ensuring the quality of the systems built.
Responsibilities:
- Design, develop, test and ship high-quality technical solutions that scale across multiple GitHub services and become intimately familiar with the systems you build and take pride in writing maintainable code
- Provide technical leadership, mentorship, pairing opportunities, and code reviews to encourage the growth of others; support teams in producing extensible and maintainable code, ensuring integration with downstream dependencies and adherence to quality standards
- Own and advocate for the health and quality of the systems that the team builds, including participating in on-call for first responder rotations and live incidents
- Write architecture briefs and proposals and carry out code experiments
- Design and implement APIs to facilitate seamless integration between software components
- Utilize CI/CD tools to set up automated pipelines for continuous integration and delivery
- Collaborate with cross-functional teams and partner with stakeholders and lead discussions for technical solutions, including design and cost considerations
- Create and guide others in 1) developing clear testing plans to assure solution quality, reliability, and performance; 2) defining success metrics; and 3) integrating customer feedback for continuous improvement - all while ensuring system architecture meets security and compliance standards
- Maintain executional and operational excellence within and potentially across teams/organizations
- Apply debugging tools and telemetry to verify assumptions, proactively resolve issues, and optimize code performance and maintainability
- Drive and support technical roadmap that aligns with product goals, ensuring that engineering efforts are strategically prioritized and incorporating the adoption of new technologies and methodologies where applicable
Requirements:
- 6+ years experience in Software Engineering, Computer Science, or related technical discipline with proven experience maintaining and delivering production software coding in languages including, but not limited to, C, C++, C#, Java, JavaScript, Go, Ruby, Rust, or Python
- OR Associate's Degree in Computer Science, Electrical Engineering, Electronics Engineering, Math, Physics, Computer Engineering, Computer Science, or related field AND 5+ years experience in Software Engineering, Computer Science, or related technical discipline with proven experience maintaining and delivering production software coding in languages including, but not limited to, C, C++, C#, Java, JavaScript, Go, Ruby, Rust, or Python
- OR Bachelor's Degree in Computer Science, Electrical Engineering, Electronics Engineering, Math, Physics, Computer Engineering, Computer Science, or related field AND 4+ years experience in Software Engineering, Computer Science, or related technical discipline with proven experience maintaining and delivering production software coding in languages including, but not limited to, C, C++, C#, Java, JavaScript, Go, Ruby, Rust, or Python
- OR Master's Degree in Computer Science, Electrical Engineering, Electronics Engineering, Math, Physics, Computer Engineering, Computer Science, or related field AND 2+ years experience in Software Engineering, Computer Science, or related technical discipline with proven experience maintaining and delivering production software coding in languages including, but not limited to, C, C++, C#, Java, JavaScript, Go, Ruby, Rust, or Python
- OR Doctorate in Computer Science, Electrical Engineering, Electronics Engineering, Math, Physics, Computer Engineering, Computer Science, or related field
- OR equivalent experience
- Experience with large-scale system architecture and design, particularly in cloud-based environments, with a strong understanding of distributed systems and microservices
- Experience working closely with product management, design, and other engineering teams to drive cross-functional projects and deliver high-quality products
- Experience in one or more scripting languages (e.g., Bash, Python, or a similar language)
- Experience with cloud environments and/or Cloud Native Compute Foundation (CNCF) concepts
- Experience working with both relational (e.g. mysql) and most importantly non-relational datastores (e.g. Cosmos)
- Experience working with Azure resource such as Azure Storage (blob and table particularly), Azure Redis Cache, Azure Data Explorer Clusters
- Experience operating Cosmos DB clusters at scale