Principal Software Engineer
Essential Duties and Responsibilities
- Contribute to the overall enterprise architecture and the development of product features within the backend services teams
- Identify, design, and participate in the breakdown of monolithic apps/services into AWS microservices using Lambda, API Gateway, and containerization
- Define and design service to service communications using AWS message broker and eventing services.
- Design and lead unification of all backend services APIs with simplified querying abilities using AWS AppSync GraphQL technologies
- Ensure standardized CI/CD pipeline adoption using GitHub Actions and Terraform through direct collaboration with team SRE
- Contribute and represent the backend services teams in Engineering architecture meetings ensuring a simplified, resilient, and redundant technology stack.
- Perform system analysis, design, development, and implementation of scalable enterprise solutions in a high transaction environment using client/server and web technologies and SOLID object-oriented and/or Functional design principles.
- Actively participate in meetings to review product requirements to clarify expected outcomes and acceptance criteria as you break down the work and provide estimates as to its completion
- Develop flowcharts, layouts, and documentation to define requirements and solutions.
- Design and develop database schemas, stored procedures, and other data access methods.
- Participate in Scrum ceremonies and estimation activities.
- Identify and implement changes to improve system performance and availability.
- Perform code reviews to validate the design and implementation of features and architectures in addition to finding bugs and estimating the code quality.
- Facilitate or work with experienced team members to conduct root cause analysis of system issues and implement corrective solutions.
- Mentor other software engineering team members.
- Collaborate with quality assurance efforts to develop software test plans.
- Deliver innovative solutions that increase application performance, usability, and fit for our target customers
- Drive standards-based architectures and supporting services
- Follow engineering best practices in a team environment to develop high-quality products including writing automated unit, component, and feature level testing
This position has no direct supervisory responsibilities but does serve as a coach and mentor for other positions in the department.
Travel Requirements: Less than 25%
- Bachelor’s Degree in Computer Science or related field
- AWS Certification Preferred
Knowledge, Skills, and Abilities
- Expert knowledge and usage of web libraries and frameworks such as React, React-Native, Vue, and Angular.
- Expert knowledge of database development functions such as joins, constraints, stored procedures, indexing and schema design as well as expertise in NoSQL solutions such as DynamoDB or MongoDB.
- Experience creating unit tests and testing tools such as Jest, Cypress, Detox, and others.
- Experience migrating Microsoft .NET / SQL Server applications to AWS
- Experience utilizing AWS Services such as EC2, S3, Lambda, API Gateway, SQS, ECS, and others
- Expert understanding of systems architecture, software algorithms, structures, and patterns
- Excellent object-oriented design and analysis skills
- Experience developing high-quality, multi-threaded applications
- Solid understanding of web and cloud technologies (AWS and Azure)
- Strong experience with CI/CD tools (GitHub Actions, Azure DevOps), patterns, and best practices
- Strong experience with infrastructure-as-code tools (Terraform, Helm), patterns and best practices
- Experience with Jira and Confluence
- Proven organizational and leadership skills
- Able to lead and manage large, complicated projects that require collaboration with multiple teams or team members.
- Excellent communication skills and be eager to work in a team environment with other dedicated engineers
- Positive attitude and team player
- Detail oriented and commitment to excellence
- Ability to lead and mentor software engineering teams
Working Conditions and Physical Requirements
- Dexterity of hands and fingers to operate a computer keyboard, mouse, tools, and to handle other computer components
- Ability to sit at workstation for long periods of time completing testing, documentation, or other assignments
- Lifting and transporting of moderately heavy objects, such as computers and peripherals
- Must be able to lift a minimum of 50 pounds
- Positive attitude, team player, good interpersonal communication skills and able to work across company departments.
This position has access to highly confidential, sensitive information relating to the employees, customers, and technologies of Sorenson Communications and CaptionCall. It is essential that applicant possess the requisite integrity to maintain the information in strictest confidence.
Equal Employment Opportunity:
Sorenson Communications is an Equal Opportunity, Affirmative Action Employer.