Job Description:
Principal Software Engineer actively contributes to the continuous maturation of engineering policies and best practices for software development and user interface design; and evaluate, select, and implement development tools, processes, and new technologies. The architect is responsible for transforming our application architecture into a cloud native, scalable, resilient and agile architecture by collaborating with our delivery organizations and building a cloud developer community.
- Creates robust and scalable product designs that meet customer requirements and are extensible and anticipate future product needs;
- Gathers requirements from stakeholders and performs critical analysis of the product’s feature set;
- Conducts architectural and design reviews for a product or subsystem;
- Product dependencies and risks are identified early and appropriate mitigation strategies are specified. Timely dependency determination allows teams to make effective adjustments to designs and schedules;
- Anticipates the key architectural issues in the planning phase for a product;
- Recognizes patterns of defects and drives design improvements that are adopted across the product line;
- Fully understands the customer experience and drives product improvements in architecture, design and implementation methods to improve the experience;
- Establishes and communicates best practices for architecture, design and development methods across product teams and business groups;
- Works without supervision on the most complex projects and complete latitude for independent judgment;
- Act as a mentor to team members and aid in adherence to established coding techniques and standards.
- Actively participate in the dissemination of information and education of staff through formal and informal presentations and training events;
- Evaluate, select, procure, and implement 3rd party software as owner of corporate product standardization initiative;
- Research and present new technologies, design patterns, and practices;
- Aid project teams in the conduct of requirements, design, and coding reviews and inspections to ensure the product is robust, extensible, and scalable; and – Mentor and guide senior developers on tactics and approaches for architectural design, user interface design, dependency management, and software development.
- Minimum of 10 years of hands-on software product development experience including a minimum of 5 years’ experience with analysis, design, and programming in a multi-product software development organization;
- 3+ years of proven success in architecture for a highly micro-service based SaaS, implementation.
- 5+ years in an application design of cloud-based environments for applications including expertise in building large and distributed systems.
- Deep knowledge and recent extensive experience with Microsoft core development technologies with special aptitude towards .NET technologies; additional experience with SQL development is a plus;
- Agile/Scrum, Lean, Design for Six-Sigma (DfSS or DMADV), or comparable credentials are a plus;
- Experience with analysis, specification, design, development, testing, and deployment of software systems;
- Demonstrated skills in troubleshooting and resolving issues during all phases of the product development life cycle;
- Solid understanding of web technologies, relational databases, and multi-tier applications is expected; and
- Methodical and pragmatic problem-solver who inspires confidence and trust with internal staff and users, with a strong sense of teamwork, active listening skills, and negotiation and influencing skills.
- Must be well-versed in SOA design patterns (e.g., Event-driven architecture, Complex Event Processing, In-Memory Caching, Canonical Data Modeling, Model-View-Controller);
- Proficient in one or more Relational and Non-Relational DB technologies such as Oracle, MS SQL Server, MongoDB.
- Experience in 12-factor app architecture, design, and implementation;
- Experience with Agile development methodologies including unit testing, test-driven development (TDD), Continuous Integration (CI), Continuous Delivery (CD), Pair Programming, and Automated Testing;
- Development experience in a public (AWS, Azure, Rackspace) or private cloud environment; and – Strong emphasis on engineering best practices including; Peer Reviews, Code Inspections, and Automation.
- 8-10 years of experience in healthcare/specialty pharmacy related environment preferred.