Instructure is a company dedicated to empowering individuals through intuitive educational products. As a Senior Software Engineer on the Platform Identity team, you will design and maintain identity and access management solutions that ensure secure authentication for millions of users.
Responsibilities:
- Design, develop, and deploy robust and scalable identity and access management (IAM) services, including authentication, authorization, user provisioning, and directory services
- Lead technical discussions, architectural reviews, and provide mentorship to junior and mid-level engineers within the team
- Collaborate closely with product managers, security engineers, and other engineering teams to define requirements, design solutions, and integrate identity services across Instructure's product ecosystem
- Implement and enforce best practices for security, data privacy, and compliance within identity systems
- Optimize existing identity solutions for performance, reliability, and maintainability. Participate in on-call rotation and provide support for production identity systems, troubleshooting and resolving complex issues efficiently
- Contribute to the continuous improvement of development processes, tools, and infrastructure
- Stay current with industry trends and emerging technologies in identity management and security
Requirements:
- Bachelor's degree in Computer Science, Software Engineering, or a related field; or equivalent practical experience
- 5+ years of professional software development experience, with a significant focus on identity and access management systems
- Strong proficiency in at least one modern programming language (e.g., Ruby, Go, Java, Python, C#) and experience with relevant frameworks
- Demonstrable experience with identity protocols and standards (e.g., OAuth 2.0, OpenID Connect, SAML, SCIM)
- Solid understanding of security principles, cryptography, and best practices for securing web applications and APIs
- Experience designing and building highly available, scalable, and fault-tolerant distributed systems
- Proficiency with relational databases (e.g., PostgreSQL, MySQL) and NoSQL databases
- Experience with cloud platforms (e.g., AWS, Azure, GCP) and containerization technologies (e.g., Docker, Kubernetes)
- Excellent problem-solving skills, with the ability to analyze complex technical issues and propose effective solutions
- Strong communication and interpersonal skills, with the ability to effectively collaborate with cross-functional teams