Overview Of Position
Are you passionate about building enterprise-class solutions using the latest cloud technologies and current development best practices? Are you ready to be a leader in implementing technologies such as Amazon Web Services and NoSQL databases in a DevOps organization that insists on 100% fault tolerant code, 100% automation of tests and infrastructure as code in an environment of continuous tests, continuous integration and continuous deployment? This is an opportunity for you to make a significant impact on the future of the healthcare solutions. This position requires analytical, design, problem solving skills and experience in building & operating large scale systems. Your responsibilities will include working with other engineers to build high quality, large scale systems with a good understanding of enterprise best practices. The ideal candidate will take pragmatic and iterative approach to building software; have an ability to simplify and get things done with a demonstrated track record of building and delivering software and working effectively with external and internal teams.
What Will Be My Duties And Responsibilities In This Job?
- Design, test, code and deliver high quality secure production software with completely automated tests suitable for cloud deployment at scale. Develop automated tests (TDD including unit, integration, smoke, acceptance tests) to achieve test coverage for continuous deployment and near 100% availability. Execute acceptance tests and maintain test artifacts in a shared repository. Add new tests when fixing defects.
- Collaborate with Tech Lead (TL) Cloud Engineer and Product Owner (PO) to refine user stories and acceptance criteria. Work with PO to confirm that the code and acceptance tests reflect the desired functionality. Work in small deliverable batches < 1 week to DOD. Participate in planning and in committing to team and individual objectives.
- Conduct research, spikes, design, prototyping and other innovation, exploration and learning activities.
- Trunk based development - commit new or modified code reviewed to the shared source code repository and master trunk daily.
- Pair with another Cloud Engineer when appropriate to develop code and associated automatic tests.
- Participate in continuous improvement of the software itself, team’s process, CI/CD and development environments, including infrastructure as code.
- Eliminate distractions, impediments and wasteful work to optimize flow and velocity.
- Use feature toggles, multi-versioning, short lived branches and other techniques to keep the trunk working and always deployable.
- Minimize technical debt and continuously improve and learn from mistakes, bugs and refactoring.
- Help the team succeed in delivering potentially releasable and production ready software artifacts in every iteration.
- Demo progress/new features in every iteration
What Are The Requirements Needed For This Position?
- Bachelor’s Degree in Computer Science or related field, or equivalent work experience.
- 6+ years professional experience in software development.
- 4+ years professional experience with at least two modern programming languages such as C#, Java, Go, Python, etc.
- 2+ years professional experience with indexed data persistence such as Relational Databases (SQL) or NoSQL Data Stores.
- Ability to execute moderate complexity software engineering assignments when provided high level business requirements and technical design guidelines from an architect or senior engineer with minimal supervision.
- Ability to breakdown requirements into stories and provide estimates, perform code reviews, raise technical risk and create documentation.
- Experience providing low-level design using established enterprise standards and technology; strong debugging skills.
What Other Skills/Experience Would Be Helpful To Have?
- Cloud application development, including serverless and containerized in AWS
- Proficiency in developing objected-oriented software, with deep experience in one or more relevant languages
- Experience building complex software systems that have been successfully delivered to customers, using microservices, loosely coupled architecture
- Experience with agile program management methodologies.
- Willingness to own all stages of development process: requirements, design, implementation, testing, and operational support
- Use software engineering best practices to ensure a high standard of quality
- The ability to clearly and concisely communicate with technical and non-technical customers in order to understand ambiguous problems and articulate technical obstacles and solutions to complex challenges.