Hiring a Principal Software Engineer in Salt Lake City, UT
Our client, a pioneer in customer interaction and contact center software, is looking for a Principal Software Engineer. The client’s team consists of experienced and forward-thinking engineers who are constantly envisioning how to solve our customer’s problems using current and emerging technology. They think and develop in real-time systems because that is the world in which our customers live. They store, organize, and utilize terabytes of data; they process hundreds of thousands of concurrent, real-time media streams and ensure high levels of availability and scalability. They solve tough problems for our customers so they don’t have to and they deliver them a fully-featured cloud-based service platform.
What we’re looking for in a Principal Software Engineer
Passion and an entrepreneurial spirit for finding simple and sustainable solutions to complex problems. Ability to work within an Agile-inspired methodology to own and continuously deliver cloud-native software that is responsive, scalable, testable, automated, and sustainably managed. We are looking for engineers who are pragmatic and objective in their selection and use of technology frameworks and languages (i.e. best tool for the job); technology platform diversity and ability to rapidly apply engineering value to/with any platform is highly desirable. Finally, as a Principal Engineer, we want experts who are also teachers and mentors – leaders that think beyond organizational or geographical borders to raise the excellence bar for the company.
What to expect as a Principal Engineer
The opportunity to own one or many critical components of the overall technology platform which includes working with technical program management peers to understand and define the product backlog and break the work down into commercially prioritized and viable units that can be engineered using a design that you have largely conceived. This likely involves filling a technical supervisory role over other software engineers. As you will be required to own and support the software you deliver (either individually or as a team lead) it is expected that you provide and are accountable for estimates and commitments for properly designed, reviewed, tested, written, and packaged software to ensure a production-ready deployment.
Further specifics include (but are not limited to):
- Participate and drive design discussions and produce standard design artifacts for collaboration with team members and other stakeholders. Examples of design artifacts include (but are not limited to): UML-notated diagrams, data models (e.g. Entity-Relationship), API contract specifications, et cetera.
- Conduct and perform consistent design and code reviews providing tangible and actionable feedback.
- Participate in the definition and influence component Product Backlogs; influence Milestone/Sprint Backlog planning and detailed technical work breakdown and estimation exercises; participate in daily Scrum meetings and produce daily increments of software. Stand by your estimates and deliver without compromise to quality or schedule.
- Coding > 70% of your time in an Integrated Development Environment writing beautiful code designed for scale and performance, implemented with best practices and patterns, and quantifiable through tests.
- Work closely with QA, System, Network, and Voice engineers and architects to ensure a complete and sustainable software release that meets our technical standards for design and quality.
- Present content and mentor other engineers in technology trends, technology, patterns and practices; strive to be a go-to expert and trusted advisor within the global organization.
Qualifications and Desired Experience
- 10+ years of experience in producing software; last 2-4 contributing at a Senior or Principal level
- Expert-level experience with at least one mainstream programming language (C++, Java, or C#); expertise in more than one preferred
- Experience with RESTful web service design and implementation
- Experience with database systems using SQL; experience in NoSQL databases a plus
- Experience with public cloud technologies and infrastructure like Amazon Web Services or Microsoft Azure; if you don’t have experience with cloud the strong desire to gain it may suffice
- Knowledge and practice of Computer and Information Science topics such as algorithm analysis and design, data structures, et cetera; academic degree or equivalent experience a plus