Principal Software Engineer (Cloud)
The Principal Software Engineer (Technical Lead) will be a key team contributor applying extensive knowledge of design principles and practices in the implementation of complex, enterprise-scale software systems. It includes designing and implementing the backend layer of the software and data stacks that will serve an ecosystem of patient facing mobile applications as well as serving as a data science workbench backed by a ‘big data’ foundation. Strong hands-on experience with ETL (extract, transform, load) data pipeline implementations is a must.
General responsibilities include design concept generation, participating in and leading design reviews, development and testing of the product stack. This is an equivalent of technical lead role within engineering and an opportunity to influence the architecture and roadmap, and lead and guide junior engineers in execution and code review.
Your values align with ours:
Customer Empathy, Respect/Earn Trust, Extreme Ownership, Bias for action, Entrepreneurship, Open sharing of information, Data-driven, Effectiveness, Resiliency, Grit, Radical Candor, Curiosity, Optimism, disagree yet commit, Collaboration
- Software Development: This is a hands-on software development position to design high level and low-level components, write high-quality software that will perform at scale, be supportable, and be extensible
- Strong technical leader able to guide architectural decisions, mentor junior/senior engineers, and deliver exceptionally high-quality software
- Experience as technical leader on enterprise product development teams
- Exceptional communication skills
- Process & Operations: Builds, maintains, and extends our DevOps toolset to 3-5 attributes
- Ensure ongoing improvements to team productivity and product scalability; lead team members to design, plan, deliver and operate high-quality software
- Leadership: Manage work allocation, mentor and guide engineers
- 10+ years of hands-on industry experience (or equivalent)
- Experience in leading, mentoring junior software engineers and experience working in an agile/scrum environment
- Java backend development expertise, especially in Java web frameworks like Spring Boot and/or Vert.x
- Experience with cloud-agnostic, open source technologies such as Kafka
- Strong understanding of designing high performance, fault-tolerant distributed software solutions.
- Strong development experience in either Java/J2EE, Spring Framework, .NET with exposure towards Web services and APIs as in RESTful and SOAP.
- Good knowledge of functional programming and languages such as scala and/or closure.
- Experience with languages python and/or Go.
- Experience with Spring Framework and/or Node.js
- Experience with PaaS technologies such as Cloud Foundry and/or OpenShift
- Experience in no-SQL databases such as MongoDB, Couchbase or DynamoDB
- Experience with Asynchronous messaging using Kafka, RabbitMQ, Redis or alike.
- Experience in streaming technologies like Spark streaming or Storm
- Knowledge of CI/CD tools and process such as Git, Jenkins, JUnit/TestNG, Nexus, Chef/Puppet, etc
- Familiarity with containerization technologies such as docker and swarm and kubernetes
- Familiarity with Unix/Linux OS and shell scripts
- Strong experience in developing highly available and scalable services using event-driven reactive architecture to provide a real time services and ML models (experience with Vertx is a plus)
- Strong experience in using Cloud (AWS) experience in API Design, Data Modeling, Capacity planning
- Experience of on-call production support, lead incident resolution
Nice to Have:
- Master in CS, Engineering (preferred)
- Experience in Healthcare tech, standards, and workflows (e.g. HL7, FHIR)
- B.S. in computer science, software engineering, computer engineering, electrical engineering, or related area of study