Principal Software Engineer Job Description
Principal Software Engineer Duties & Responsibilities
To write an effective principal software engineer job description, begin by listing detailed duties, responsibilities and expectations. We have included principal software engineer job description templates that you can modify and use.
Sample responsibilities for this position include:
Principal Software Engineer Qualifications
Qualifications for a job description may include education, certification, and experience.
Licensing or Certifications for Principal Software Engineer
List any licenses or certifications required by the position: IAT, AWS, DODI, II, III, X509, TLS, DO-178, SSL, NSA
Education for Principal Software Engineer
Typically a job would require a certain level of education.
Employers hiring for the principal software engineer job most commonly would prefer for their future employee to have a relevant degree such as University and Bachelor's Degree in Engineering, Science, Mathematics, Technology, Software Engineering, Computer Science, Computer Engineering, Electrical Engineering, Software Development, Physics
Skills for Principal Software Engineer
Desired skills for principal software engineer include:
Desired experience for principal software engineer includes:
Principal Software Engineer Examples
Principal Software Engineer Job Description
- Leads the analysis, design and development of systems, processes and algorithms for the online search platform
- Acts as a servant-leader across multiple delivery teams to provide architectural feedback, champion best practices, and foster learning knowledge sharing between teams
- Provides support to engineering teams as a technical decision maker as needed
- Collaborates with fellow Engineers, Product Owners, Scum Masters and Business Stakeholders to design solutions that provide business value and ensure technical excellence in platform performance, autonomy, resilience, scalability, composability, and security
- Responsible for building and evolving application systems including, design, coding, testing, debugging and writing appropriate documentation as part of a delivery team
- Implements API and integration solutions using standard protocols such as REST, SOAP and others
- Acts as a technologist proposing innovative techniques, tools and ideas that consider the impact across multiple environments and technologies
- Responsible for mentoring Software Engineers and Senior Software Engineers
- Analyze the interactions between the human and the systems through user interviews and architectural analysis
- Identify and capture operator tasking, skill level, and system requirements
- Any mobile experience (iOs, Android)
- Interest in containers/VM ecosystem (Docker, CoreOS, Vagrant, Mesos)
- Lead and mentor other software engineers in the team
- Strong Knowledge in database engines, distributed systems, cloud computing
- BS, MS or PhD in computer science, engineering or a related field
- Experience designing and delivering large scale web services
Principal Software Engineer Job Description
- Minimum two years of experience with OLAP preferred
- Minimum two years of experience with Ruby on Rails preferred
- Build solutions that enable sophisticated automation and workflows
- Develop high performance and scalable solutions that extract, transform, and load big data
- Help the team leverage and contribute to open source technologies
- Development of Connectivity Solutions for Cloud Services and on premise applications
- Influence and champion Connectivity frameworks (Software Development Kits) to enable productive development of Connectivity solutions
- Influence product direction and architecture while developing our next generation Connectivity solutions
- Sustaining product base by responding to reported problems, investigating the cause and working out solutions
- Provide technical leadership to a team of skilled engineers focusing on research & development of these solutions while enhancing and maintaining existing products
- Must have experience with version control software (CVS, SVN, GIT)
- Must have experience using Maven and Ant build managers
- Agile development, SCRUM a distinct advantage
- Master's (preferred) or Bachelor's degree in Computer Science, Software Engineering or a related field
- 7-10 years of experience in testing and supporting routing products preferred
- Masters Degree in Computer Science or Related Discipline is a plus
Principal Software Engineer Job Description
- Work closely with other departments on optimizing performance of gaming platforms as required by Scientific Games business units
- Maintain up to date knowledge on new programming methods, best coding practices, and new software technologies in 2D and 3D graphics
- Work closely with 3rd party software providers representing Scientific Games best interest
- Able to lead projects from inception to completion with limited supervision
- Help direct the technology of the gaming platform
- Actively work with scientists in the scientific group to understand their needs
- Define proper solution(s) to meet their scientific needs
- Perform rapid prototyping to refine the requirements with proper documentation
- Work with internal and external software teams, where appropriate to design solutions to meet scientists’ needs
- Implement the solutions to support the scientists’ work
- 7+ years of experience building scalable, distributed services
- Experience in building event-driven distributed systems
- Knowledge and understanding of Reactive Programming
- NoSQL and big data technology experience is a plus
- Experience with data caching technologies and in-memory databases such as MemCached and Redis
- Knowledge of rule/event and workflow engines (Drools, Activiti, Graph)
Principal Software Engineer Job Description
- Explore new technologies related to the computer hardware, software, and architectures and make recommendations for their introduction into the developmental and operational environments
- Assist in transitioning computer hardware and software design solutions to an operational environment
- Work with other engineers and contractors to promote customer and consumer satisfaction, optimize data security, and help ensure optimal user interfaces
- Understand the available architectures and technologies, assess the promising options efficiently
- Work with the automation and performance teams to support testing and production deployments so that the system performs well as we experience rapid growth
- Contribute, shape and improve the way we use and manage infrastructure and our internal processes
- Review and Support our current cloud deployment as needed
- Create software architecture (embedded, O.S., and Application layer) for complex electromechanical devices
- Lead the product development team in the adoption and use of best practices and software design methodologies
- Work with Quality Assurance and Research and Development to maintain an approved internal Quality System that meets the requirements of GMP’s, QSR, ISO 9001, and IEC62304
- An understanding of AJAX and other Web 2.0 technologies preferred
- Strong database skills in SQL and NoSQL structures (MySQL is a must and Postgres is desirable)
- Ability to work well independently or with remote teams
- A sense of humor and an appreciation for BBQ
- 8+ years of experience working in a networking and/or distributed systems
- 8+ years of experience in professional software development is a must have
Principal Software Engineer Job Description
- Defines multiple technology options to new and maturing business capabilities and understands the financial, legal and technical impact of technology architecture alternatives
- Communicate complex ideas appropriately to varied levels from engineers, business partners, to executives
- Proactively influence key business stakeholders, executives, directors, process owners, and program managers to ensure that program/ enterprise architecture technology objectives are met
- Accounts for security, analytics, diagnostics when defining architectural designs and runways
- Develop enterprise architecture technology strategies in the client devices domain in the video streaming space
- Plans, coordinates and communicates enterprise technology domain principles for client devices in the video streaming technology field
- Supports the development of frameworks and governance decisions at multiple levels of management
- Ensures compliance with Enterprise Architecture governance standard encourages enterprise technology solution reuse
- Design and implement features and functionality for upcoming major and minor releases
- Work with the product architect on the technical design of core components
- Fluent in C++, with experience in STL, Boost, or similar libraries
- Experience with network application programming/development
- Hands on experience with scalable distributed systems and databases
- Experience with Messaging Protocols is highly desirable
- Additional experience in Python, JavaScript, or other related languages desirable
- 5+ years” experience in development of data intensive applications