principal software engineer jobs



The Principal Software Engineer mentors other engineers, leads small development teams and acts as an application owner, in addition to developing, improving and maintaining innovative software applications as part of a team or independently. This team member takes a lead role in design and code reviews, assists with delivery estimates and provides feedback about all aspects of the process – all while working with a variety of team members across the entire organization.  



Responsibilities


  • Develop progressive web apps using MVC/web API and C# through the full software development life cycle process
  • Unit-test all developed code
  • Work directly with business partners to determine technical solutions based on business needs
  • Mentor other Software Engineers to grow their technical skills
  • Understand general, undeveloped concepts and explain them concisely to others
  • Work with or without complete business requirements or specifications
  • Foster a collaborative environment on a cross-functional team
  • Improve standards and best practices

Requirements


  • 8 years of programming or related experience in object-oriented programming languages (C# or Java)
  • 8 years of experience with .NET 4.0+ or related frameworks
  • 8 years of experience in software testing and design
  • 8 years of database-related experience (SQL, MySQL, Oracle, etc.)
  • 8 years of experience working in a team environment
  • Experience with JavaScript and affiliated frameworks (Angular, Vue, React, etc.)
  • Experience with Git/Github
  • Experience as the lead engineer on multiple projects
  • Experience with web APIs (REST, SOAP)
  • Experience with design patterns
  • Experience mentoring others
  • Undergraduate degree in computer science or equivalent relevant experience
  • Exceptional verbal and written communication skills  

What’ll Make You Special


  • Some graduate coursework
  • Experience with .NET Core
  • Experience with cloud technologies (AWS, Azure, Google Cloud, etc.)
  • Experience with architectural patterns such as MVVM, MVC and MVP