Principal Software Engineer

Principal Software Engineer Job Description Template

Our company is looking for a Principal Software Engineer to join our team.

Responsibilities:

  • Actively support the investigation, resolution and documentation of product anomalies;
  • Analyze and troubleshoot applications in a timely fashion;
  • Maintain applications;
  • Maintain availability for after-hours production support on an as-needed basis;
  • Collaborating with team leads, designers, architects, and product owners to ensure development aligns with business expectations;
  • Help develop, operate, and design an enterprise-wide messaging system;
  • Ensures software standards are met;
  • Designing, implementing, testing, integrating and debugging real-time embedded system software;
  • Work in an agile team environment as a member;
  • Provide support to internal and external customers;
  • Have knowledge of and ability to teach/mentor: Service Oriented Design and Implementations;
  • Work with SQA t3eam to define and review test strategies;
  • Ensure the availability and reliability of all of our systems at scale;
  • Responsible for consuming RESTful web-services in a Service-Oriented Architecture;
  • Working with the team to establish best practices, design patterns, and coding standards.

Requirements:

  • Good verbal and written communication skills;
  • Understand data structure concepts such as linked lists, dictionaries, arrays, custom object creation, etc;
  • Demonstrated experience in a software technical lead position;
  • Hardware bring up and Manufacturing;
  • Excellent technical design, problem solving, debugging and communication skills;
  • Bachelor’s degree or higher in Computer Science or similar area, OR 7+ years of equivalent industry experience;
  • 10 years of Software Design and Development experience;
  • Experience with both Linux and Windows;
  • Software Engineering experience developing in C++ and/or C;
  • Experience working in distributed, remote teams across multiple time zones a plus;
  • Self-motivated and results-oriented, with excellent interpersonal and communication skills;
  • 10+ years in experience in C++, C, C#, Java or related languages;
  • Experience with Kubernetes, Red Hat OpenShift, and container networking technologies is a plus;
  • Proven track record of delivering enterprise-class software and services at cloud scale;
  • 8 year of experience with one or more general purpose programming languages including: Java, C/C++, C#, Objective C, Python, JavaScript or Go.