Principal Software Engineer
Scottsdale, AZ
Who are we looking for?
SkyTouch Technology is an early innovator of cloud-based, mobile-enabled property management solutions aka PMS for the hospitality industry.
Over the last 10+ years, our PMS software, SkyTouch Hotel OS®, has been successfully implemented in over 6,500 hotels worldwide.
With our proven track record, we have both disrupted the industry and changed the face of hotel operations management, becoming the premier cloud-based PMS solution for value, scalability, and mobility through industry-leading onboarding, training, and service.
As a company that relies heavily on continuing innovation, we always need the help of highly qualified and motivated individuals who want to help move us to the next level.
The Principal Software Engineer has the highest level of technical competence and the skill set necessary to address all areas of software engineering, problem resolution, application architecture and system implementation.
The Principal Software Engineer leads multiple large-scale projects and serves as a consultant and mentor to software engineers in all areas of development.
Are you someone who is a quick learner, like solving complex business problems, have hands-on expertise in building cloud-native applications, can balance long term technical vision with short term project goals, drive competing priorities, can resolve production issues in real-time and mentor software engineers to perform at their highest potential?
We invite you to apply today for our Principal Software Engineer role.
Your Responsibilities
- Serve as the application architect across multiple development teams and provides guidance on the design and rollout of the software.
- Serve as a technical leader working closely with other cross-functional teams to meet current and future business needs.
- Author logical architecture diagrams and other architecture artifacts to support the organization.
- Reviews and provides timely feedback on conceptual and physical architecture diagrams.
- Write secure, stable, and maintainable code. Creates libraries and frameworks that have a direct and positive impact on the engineering organization.
- Identifies opportunities to automate manual activities.
- Perform peer code review for the software engineers and provide comments and suggestions to improve it.
- Assist in creating the work-load model to be used during performance testing.
- Reviews the performance testing results and helps the engineering manager in accepting the results.
- Perform application performance monitoring to troubleshoot and resolve production issues.
- Assist in the selection of new tools and technologies by keeping up with current technological standards, creating proof of concepts, and performing cost-benefit analysis.
- Help define, enhance, and promote the development of best practices and guidelines to ensure continuous improvement in resilience, quality, scalability, and performance within the engineering staff.
- Actively participate in moving SkyTouch Technology’s technical roadmap forward by participating in internal architectural governance discussions with other Principal Engineers, System Architects, and other technology leaders.
- Partner with the engineering leadership to incorporate process improvements into the software development practices.
- Partner with engineering leadership to ensure the software engineers have the relevant training, certification, and tools required to perform optimally and deliver quality software products.
- Assist the engineering manager by providing peer feedback for reviews, establish interview criteria, and participate in the interview process of candidates.
- Provide coaching and mentorship to software engineers across the organization.
- Provide internal software development presentations.
Your Experience, Skills & Competencies
- Bachelor’s degree in computer science, or related field, from a four-year college or university. Master’s degree or post graduate degree or equivalent work experience preferred.
- Minimum of 10 years relevant experience in software development, information systems, or equivalent technical environment, inclusive of experience in the development of distributed systems, cloud platforms, and API-based architecture, 8 years of related development experience and 4 years of experience serving a development team technical lead / or architecture experience.
- Expert in all aspects of the software development lifecycle : design, functional and technical requirements, coding, debugging, testing, release, and operational support.
- Expertise architectural and software design patterns, system design concepts, software algorithms, software development best practices.
- Expert in designing and building application service APIs using standard specifications such as Swagger or OpenAPI.
- Experience in designing systems using Enterprise Integration Patterns and various message broker technologies like JMS, SQS, SNS, Kinesis or Kafka.
- Proficiency in defining application and system boundaries and an understanding of Domain-Driven Design.
- Expertise in defining and implementing non-functional requirements such as scalability, availability, and security.
- Expert knowledge of Java programming language is required. Functional knowledge of other languages such as Python, JavaScript is acceptable.
- Expert-level knowledge of building RESTful microservices using Spring development framework.
- Expert in developing applications with relational databases such as PostgreSQL and SQL Server. Experience in analyzing and tuning database query performance.
Familiarity with non-relational or NOSQL database technologies like AWS DynamoDB.
- Expertise in application profiling and performance tuning using at least one application monitoring tools like AppDynamics.
- Hands-on expertise in building cloud-native solutions using AWS. Has obtained associate or professional level certifications like AWS Certified Solutions Architect.
- Understanding of Infrastructure as Code concepts and best practices.
- Experience in building and deploying containerized applications in the cloud.
- Experience in developing single page applications using Angular or React.
- Experience with Jenkins, CI / CD best practices using build tools like Maven, Jenkins etc., Familiarity with OWASP top 10, Source Code Analysis Tools, SAST and DAST tools.
- Proficient in Microsoft Outlook, Excel, PowerPoint, and Word
Demonstrates the following key competencies :
- Drives Results - Consistently achieving results, even under tough circumstances.
- Decision Quality - Making good and timely decisions that keep the organization moving forward.
- Persuades - Using compelling arguments to gain the support and commitment of others.
- Manages Ambiguity - Operating effectively, even when things are not certain or the way forward is not clear.
- Ensures accountability - Holding self and others accountable to meet commitments.
- Values Differences - Recognizing the value that different perspectives and cultures bring to an organization.
Your Team
This is an individual contributor role that will report to the Director of Software Engineering. You will have 4 peer teammates and collaborate with cross functional departments on a regular basis.
Your Work Location
As our Principal Software Engineer, you will be based in our beautiful, state-of-the-art technology hub in Scottsdale, AZ.
In October 2021, Choice opened a newly constructed world class technology center.
Right now, our associates in Scottsdale, AZ are working in a hybrid environment, up to 4 days per week in the office and virtually from your home office the remaining days.
We provide flexibility and encourage ongoing communication with your leadership to establish expectations about your unique needs.
PLEASE NOTE : This role is eligible for sponsorship
Ability to model Choice’s Cultural Values : Welcome and Respect Everyone, Be Bold, Be Quick, Listen, Be Curious and Show Integrity.