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.