
Overview
As a driven and experienced C++ developer, you will contribute to the development of our innovative and market-leading clinical development product suite that helps our customers to design, model, and simulate complex innovative clinical trials with the potential to create significant value for sponsors and patients by increasing their probability of success and accelerating time to market.
A key feature of such software products is our proprietary engines – software components that implement sophisticated and advanced statistical/mathematical algorithms (e.g. simulations of complex adaptive trials) for our cloud-hosted and on-premise software products.
You will be responsible for developing sophisticated and advanced statistical / mathematical algorithms in languages such as C++, R or Python for our cloud-hosted and on-premise software products.
- 0 to 3 years of experience in algorithmic / scientific computing using C/C++
- Bachelor’s / Master’s degree in Computer Science & Engineering (CSE) or equivalent STEM degree
- Strong knowledge of Applied Mathematics (numerical methods, calculus, linear algebra, mathematical modeling, statistical methods, optimization, etc.)
- Quick learner with strong numerical & verbal aptitude, logical reasoning and analytical ability
- Strong knowledge of data structures and algorithms
- Strong knowledge of C/C++ (knowledge of STL and newer standards like C++ 14 / 17 preferred)
- Knowledge of statistical programming languages such as R, Python, Julia
- Knowledge of practices like automated unit testing, code reviews and following C++ coding guidelines
- Strong verbal and written English communication skills
- Self-driven with ability to think creatively and solve complex problems
- Strong initiative and work ethic
Optional Skills and Experience (preferred but not mandatory):
- Knowledge of Statistics and scientific graphics
- Experience of developing microservices and REST APIs
- Knowledge of tools used for code profiling, unit testing, detecting memory leaks and overruns
- Knowledge of parallel computing and distributed computing
- Knowledge of both Windows and LINUX environments
- Knowledge of source control & versioning tools like BitBucket, Git, SVN, etc.
- Familiarity with project management & collaboration tools like Jira, Confluence, MS Teams, etc.
- Experience working with Agile frameworks like Scrum
- 0 to 3 years of experience in algorithmic / scientific computing using C/C++
- Bachelor’s / Master’s degree in Computer Science & Engineering (CSE) or equivalent STEM degree
- Strong knowledge of Applied Mathematics (numerical methods, calculus, linear algebra, mathematical modeling, statistical methods, optimization, etc.)
- Quick learner with strong numerical & verbal aptitude, logical reasoning and analytical ability
- Strong knowledge of data structures and algorithms
- Strong knowledge of C/C++ (knowledge of STL and newer standards like C++ 14 / 17 preferred)
- Knowledge of statistical programming languages such as R, Python, Julia
- Knowledge of practices like automated unit testing, code reviews and following C++ coding guidelines
- Strong verbal and written English communication skills
- Self-driven with ability to think creatively and solve complex problems
- Strong initiative and work ethic
Optional Skills and Experience (preferred but not mandatory):
- Knowledge of Statistics and scientific graphics
- Experience of developing microservices and REST APIs
- Knowledge of tools used for code profiling, unit testing, detecting memory leaks and overruns
- Knowledge of parallel computing and distributed computing
- Knowledge of both Windows and LINUX environments
- Knowledge of source control & versioning tools like BitBucket, Git, SVN, etc.
- Familiarity with project management & collaboration tools like Jira, Confluence, MS Teams, etc.
- Experience working with Agile frameworks like Scrum
- Implement statistical / mathematical algorithms in C++ ensuring code quality, numerical accuracy of results and high performance of computations.
- Receive statistical algorithmic inputs from expert biostatisticians and convert them into code.
- Design, code, unit-test and debug necessary C++ code units and modules following all good coding practices and applicable processes.
- Combine the C++ engines with user interfaces and graphics in R or R-Shiny.
- Participate in peer code reviews with other developers and review each other’s code.
- Perform code refactoring and keep technical debt low.
- Estimate and plan own work and deliver as per the plan.
- Prepare all necessary code and design documentation.
- Implement statistical / mathematical algorithms in C++ ensuring code quality, numerical accuracy of results and high performance of computations.
- Receive statistical algorithmic inputs from expert biostatisticians and convert them into code.
- Design, code, unit-test and debug necessary C++ code units and modules following all good coding practices and applicable processes.
- Combine the C++ engines with user interfaces and graphics in R or R-Shiny.
- Participate in peer code reviews with other developers and review each other’s code.
- Perform code refactoring and keep technical debt low.
- Estimate and plan own work and deliver as per the plan.
- Prepare all necessary code and design documentation.