Software Engineer, Cloud
Job Description
Abbott is a global healthcare leader that helps people live more fully at all stages of life. Our portfolio of life-changing technologies spans the spectrum of healthcare, with leading businesses and products in diagnostics, medical devices, nutritionals and branded generic medicines. Our 115,000 colleagues serve people in more than 160 countries.
Job Description – Software Engineer II
Interested in applying your wealth of technical knowledge and experience towards an opportunity in the medical field and improving the lives of people with diabetes?
Candidates will work with a modern tech stack on a Software as a Service cloud platform as well as internal and external APIs to improve the health and well-being of users in over 25 countries in a large-scale system responsible for processing billions of messages daily. The candidate should bring passion for software engineering and a desire for continuous learning as well as versatility, leadership qualities and a desire to shape the direction of the team. Candidate will support building scalable, highly available, efficient, and secure cloud solutions for a medical device SaaS.
Responsibilities
- Design and implement services and components utilizing Go for cloud-based platforms
- Collaborate with internal and external partners to develop and integrate with APIs that empower users to share and utilize their medical data in partner systems
- Design and implement unit testable code that are highly maintainable
- Collaborate directly with InfoSec to design and implement secure solutions
- Provide new ideas and insight in collaboration with the data services team
- Ensure performance, uptime, and scale, maintaining high standards of code quality and thoughtful design.
- Contribute to significant architectural and operational decisions in collaboration with the Architecture team
- Build out our internal tooling and APIs to make business and engineering processes more efficient
- Implement systemic changes to align existing systems with current architectural goals
- Create diagrams, flowcharts and models that illustrate the internal design and workflow of solution components
- Engage in technical planning, design, and code reviews including peer code reviews
- Collaborate as an engaged member of an agile team, realizing features through development, test, and delivery
- Stay current with emerging trends, making recommendations as needed to help the organization innovate
Required Qualifications
- Bachelors Degree in Computer Science, Information Technology or other relevant field
- Software development experience, ideally in Go but also in Python, Rust, Java, Spark, or C#/.NET. A willingness to learn new software development languages to meet goals and objectives
- Strong Computer Science fundamentals and experience with software development
- Eagerness to contribute beyond experience level
- Understands Object Oriented Programming and design and building modular unit testable code
- Understands the principles of designing, implementing, and maintaining highly complex asynchronous messaging and backend processing jobs
- Understands the concepts of Docker Containers and container orchestration services such as Docker Swarm, ECS, and Kubernetes.
- Experience with Git for source control on a collaborative project
- Comfortable working asynchronously with a distributed team
- Excellent written, verbal and listening communication skills
- Experience with open-source, software development and system engineering.
Preferred Qualifications
- Practical experience and understanding of working with and developing RESTful APIs and microservices
- Experience contributing to a scalable architecture/design of existing and new systems that are highly available and easy to maintain and monitor
- Understanding and familiarity of Test Driven Development (TDD)
- Experience working with relational datastores such as SQL Server, Postgresql, or MySql
- Experience working in an agile environment.
- Practical Knowledge of Linux.