Software Developer
Digital Engineering is Thermo Fisher's "Software Engineering" centre of excellence in Bengaluru. This centre of excellence provides world-class software and cloud computing services that help scientists do their work more efficiently and with precision, enabling them to make our world healthier, cleaner, and safer.
Our world-class software products and solutions accelerate scientific discovery and lab productivity. These solutions provide rich content, selection tools, collaboration tools, and scientific apps that allow our customers to focus on innovation and the complexities of their science. We build a connected world for our customers where discoveries happen in a thoughtful way, where every device/product is connected, self-aware, and self-healing—thereby enabling efficient workflows and collaborative science. We apply industry-standard methodologies to the design, development, and deployment of outstanding software products built to demonstrate the power and scalability of the cloud.
The role is of a hands-on developer who is motivated to combine the art of design with the art of programming, thereby actively contributing to the development of new features. This person will be a member of a multi-functional scrum team delivering Connect Platform & Ecosystem, Customer tenancy, Authorization, and Digital product subscriptions and entitlements. The role is expected to make a difference to the product in terms of the design and contribute towards identifying technical risks and alternative solutions to various problems. In addition to that, the role also demands leading, motivating, mentoring, and providing ample guidance to the other team members concerning technical challenges.
Responsibilities include:
- Active participation in various Scrum ceremonies such as Story grooming, sprint planning sessions, etc., and work towards identifying technical risks, alternate solutions to various problems, etc.
- Responsible for E2E ownership (Design to support) of multiple significant software modules
- Responsible for owning the integrity of technical work on significant concurrent projects
- Plans to participate and perform the technical work of an assignment
- Guides develop activities for other programmers on technical aspects relating to the project
- Leads the implementation, automated unit and integration testing, code reviews, debugging, and integration of code of utmost complexity across multiple concurrent projects
- Proactively looks for ways and patterns to continuously automate feature testing with measurable and tangible goals
- Is authentic, open, and leads by example, holding self and others accountable? Encourage, motivate, and collaborate with others
- Anticipates needs and problems while creating solutions. Is willing to ask difficult questions and do things differently. Greets challenge and change as an opportunity
- A highly motivated, fast learner who can self-start and "figure out what needs figuring out"
- Actively participate in the development community of practices in sharing and learning standard methodologies, leading initiatives within the community, and being involved in other organization initiatives
- Strong abilities in both spoken and written communication. Ability to effectively document artifacts and processes and then explain them to others
Candidate requirement:
Education: Bachelor’s in engineering or master’s in computer science with 7+ years of relevant experience
Mandatory Skills, Knowledge, and Experience:
- Minimum 6 years of experience in Web Application Development using Java/J2EE related technologies; Expertise in OOAD principles and methodologies
- Extensive experience in Java application development frameworks and technologies: Apache Tomcat, Jetty, G Uice, Spring, and JSON/XML/Ajax
- Minimum 2 years of experience in developing Java/JEE-based web applications based on micro-services architecture (using Spring Boot, REST APIs)
- Strong in programming subject areas like object-oriented principles, design patterns, data structures, and unit testing (TDD using JUnit), Domain-driven Design (DDD)
- Minimum 2 years of experience in Cloud computing using AWS (Amazon Web Services), such as S3, DynamoDB, SNS, SES, EC2
- Validated experience of 3 or more years with databases (Postgres/MySQL/Oracle/NoSQL DB), persistence frameworks, and SQL
- Proficient in handling sophisticated data organization and adept at developing multithreading applications
- Minimum 1-year experience with GitHub, Docker, Kubernetes, CI/CD frameworks (Jenkins)
- 3 years or more of experience using Scrum-based software development methodologies
- Experience, instincts, and enthusiasm around testing, testability, and automation
- Outstanding oral and written communication abilities. Proficiency in accurately recording artefacts and processes and articulating them to others
- Experience with defining and implementing Non-Functional Requirements (NFR – Security, Performance, Cost, etc.)
Nice to Have Skills, Knowledge, and Experience:
Experience in designing and architecting large-scale and highly available distributed software
- Frontend development experience with JavaScript, Ajax, Bootstrap, HTML5, CSS, AngularJS, and an understanding of browser compatibility issues.
- Experience with development on one or more mobile platforms is a plus.
- Experience with quality, code analysis, and Configuration tools like SonarQube, Semmle, Veracode, NetSparker, Ansible, etc.