The Principal Software Engineer utilizes their deep professional software engineering experience to oversee entire project life cycles while serving as a technical leader to their project team. Highly proficient in their craft, the Principal Software Engineer provides architectural direction and technical guidance to other engineers while being effective communicators with non-technical team members. The Principal Software Engineer is responsible for the overall technical quality of the product.
● Oversee the entire technical lifecycle of a product including, but not limited to software/language/framework decisions, breaking down features into technical stories, and production readiness
● Write and demonstrate comprehension of complex software using expert level understanding of code patterns, application architecture, and best practices
● Serve as the technical lead for a team of software engineers
● Own the technical quality of their product
● Utilize Agentic AI tools to aid in the development of applications and institute best-practices for both maximizing team productivity and ensuring high-quality output.
● Leading fruitful discussions about and documenting architectural decisions
● Adapt the development process to fit the team and client needs
● Foster cross-functional collaboration as a technical liaison between engineering and other project disciplines (Design, Quality, Project Management, Strategy, Product, etc.).
● Own the technical review process for team members and provide ongoing technical feedback and recommendations
● Participate in the internal leadership of their respective domain; provide input to the strategic direction of the domain, assist with domain initiatives, and maintain best practices within the domain
● Utilize deep technical communication acumen to explain complex technical concerns across multiple levels of abstraction and audiences
● Assess the technical skills of prospective candidates and provide recommendations to hiring managers
● Provide ad-hoc technical support to other practitioners in the domain as needed
● Assist with sales requests as needed by providing technical recommendations and estimates to prospective clients
● Participate in other duties as assigned
Required:
● Undergraduate or graduate degree in a computer related field, coding bootcamp certificate, OR a thorough demonstration of self-taught software development skills
● 8+ years of software development experience, with a specific focus on .NET Core web application development.
● 4+ years’ experience building custom applications within Azure, with strong familiarity with the use of Azure products in cloud-scale web applications (Azure DevOps, Cosmos, Azure App Service, Azure Kubernetes Service, Azure Container Apps, Azure Blob Storage, Azure API Management, Azure Front Door, etc.)
● 2-3+ years of cloud application software architecture experience, including familiarity with common design patterns and approaches for solving typical application problems for their discipline.
● Proficient in DevOps practices for application development. Can setup and manage CI/CD pipelines to build, test, quality check, and deploy cloud based web applications.
● Comfortable with both serverless and container based architectures and familiar with event-driven development.
● Comfortable with the use of emerging agentic AI software development tools and passionate about increasing team productivity and quality through them.
● Ability to write complex software and demonstrated proficiency in explaining the “why” behind code
● Strong technical communication acumen; can explain complex technical problems to technical and non-technical audiences (clients, project members, team members, peers, etc.)
● Strong understanding of the development process and ability to maintain an iterative approach throughout the project lifecycle
Preferred (any of the below, not all):
● Introductory systems architecture experience
● Has experience or demonstrates the ability to participate in client pitches
● Has experience solutioning or estimating technical solutions as part of the pre-sales process
● Experience interviewing candidates for technical skillsets
● Exposure to full stack applications and coding skills outside of your specialization, especially Next.js and React based front-end web applications
● Experience with .NET desktop application development
● Data Engineering / ML Engineering experience
Any Gradute