Job title: Senior Software Developer
Job type: Permanent
Emp type: Full-time
Salary type: Annual
Salary: USD $170,000.00
Location: Orange County, United States
Job published: 2020-02-20
Job ID: 32752

Job Description

  • Principal Software Engineer


    Job Summary

    The Principal Software Engineer will be part of an agile development team, building enterprise Applications .The Principal Software Engineer owns the architecture and design of projects; the PE is also responsible for coaching of the teams he/she works with. The PE is a key member of the Architecture Board in shaping the technical road map.


    Job Expectations

    • Responsible for the ownership (architecture/design/implementation and deployments) of complex software components and systems

    • Follow secure programming and web application security best practices

    • Regular practice of CI/CD

    • Lead the team’s software architecture and design

    • Coach the team on software best practices (design, coding, troubleshooting, work breakdown, work estimation, refactor strategies, automated testing, etc.)

    • Must be able to mentor all levels

    • Work closely with the other teams to optimize system architecture and project efficiency

    • Partner with our Product Owner to plan work and prioritization

    • Provide technical leadership to teammates through coaching and mentorship.

    • Maintain high standards of software quality within the team by establishing good practices and habits.

    • Provide regular updates on projects and team performance

    • Identify and encourage areas for growth and improvement within the team.

    • Assist in the collection and documentation of user's requirements, development of user stories, estimates and work plans.

    • Collaborate and add value through participation in peer code reviews, providing comments and suggestions

    • Analyze and resolve technical and application problems.

    • Travel may be required

    • Research and evaluate a variety of software products


    Knowledge, Skills and Abilities

    • Solid communication skills

    • Must be able to coach the team on software best practices (design, coding, troubleshooting, work breakdown, work estimation, refactor strategies, automated testing, etc.)

    • Ability to inspire team and a strong salesman of ideas

    • Experience leading a team

    • Strong knowledge and experience in Distributed systems,  MicroServices, SOA and n-tier architectures

    • Expert in Object-oriented Design and Analysis (OOA and OOD)

    • Evaluate and identify new technologies for implementation

    • Strong knowledge of C# .NET, Java or Go

    • Strong knowledge of Relational and non-relational DBs

    • Strong knowledge of REST Api, event-driven architecture applications, caching, scaling, security, etc

    • Strong knowledge of CI/CD pipelines, automated testing and deployment

    • Strong knowledge of debugging, performance profiling and optimization

    • Production experience with Docker, Kubernetes is a plus

    • Experience with DDD, Event-Sourcing and CQRS is a plus

    • Experience with SaaS and multi-tenant architecture

    • Team player with a get it done attitude

    • Experience with agile development methodologies


    Education and Experience

    • Requires a minimum of eight years of experience with software development, design patterns, software architecture

    • Bachelor’s Degree in Computer Science/Engineering or related field