Certara accelerates medicines using proprietary biosimulation software, technology and services to transform traditional drug discovery and development. They are seeking a Backend Software Engineer to design, implement, and maintain scalable and efficient server-side applications and systems, with a focus on enhancing performance and search capabilities using Groovy Grails, Spring Boot, and ElasticSearch.
Requirements
- Demonstrated experience as a Backend Software Engineer, with a focus on Groovy Grails and/or Spring Boot.
- Proficiency in Groovy Grails, Spring Boot, and related frameworks (e.g., Spring Data, Spring MVC).
- Experience with ElasticSearch, including indexing, querying, and performance tuning.
- Familiarity with database technologies, such as MySQL, PostgreSQL, or MongoDB.
- Good knowledge of version control systems (e.g., Git) and build tools (e.g., Gradle, Maven).
- Experience with other search engines, such as Apache Solr or Lucene.
- Knowledge of cloud platforms, such as AWS or Azure, and containerization technologies (e.g., Docker, Kubernetes).
Responsibilities
- Designing and developing high-quality, robust, and scalable backend solutions using Groovy Grails, Spring Boot, and ElasticSearch.
- Writing clean, maintainable, and efficient code that adheres to industry best practices and coding standards.
- Optimizing application performance and identifying bottlenecks through profiling, monitoring, and debugging.
- Implementing search functionality and optimizing search performance using ElasticSearch.
- Creating and maintaining technical documentation, including architecture designs, API specifications, and deployment instructions.
- Participating in code reviews and providing constructive feedback to ensure code quality and adherence to established guidelines.
- Troubleshooting and resolving backend-related issues, including bug fixes and performance optimizations.
Other
- 4+ years experience in software development with experience in backend software development
- Strong understanding of object-oriented programming principles and design patterns.
- Solid understanding of software development lifecycle (SDLC) and agile methodologies.
- Excellent problem-solving skills and attention to detail.
- Strong communication and collaboration skills, with the ability to work effectively within a team.