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. As an Engine Dev Lead, you will be responsible for developing such engines in languages such as C++, R or Python for our cloud-hosted and on-premise software products. You will also lead a cross-functional team that is responsible for the full software development life cycle, from conception to deployment. You should be a team player with the experience of leading a few junior developers.
Summary of Job Responsibilities:
Implement statistical / mathematical algorithms for on-premises or cloud-hosted applications in C++ ensuring high performance and quality.
Work with developers, architects, UX designers and product owners/managers to ideate software solutions
Work with the architects to design backend computational modules / services / APIs, maintain design artifacts and help ensure testability and other applicable non-functional requirements
Ensure engine code maintainability, modularity and high performance by reviewing the implementation regularly and refactoring the code base as needed to keep technical debt low
Ensure high code quality by performing automated unit testing with high code coverage, regular code reviews and following coding guidelines and good coding practices
Participate in design discussions, help ensure testability and other applicable non-functional requirements.
Prepare all necessary code, design and other technical documentation
Lead a Scrum project team of 6-8 developers and testers within a larger Scaled Agile program to deliver the project on time and on budget with high quality and low technical debt
Work with Architects, Program Management, Engineering Management and other stakeholders to ensure the project team has all the necessary resources and information available, and any impediments faced by them are quickly resolved
Guide junior developers on good coding practices. Review their work for quality and completeness.
Master Cytel s SDLC processes and ensure they are followed well by the team. Prepare relevant SDLC documentation and face process audits
Monitor, track and manage project risks proactively
Make technical presentations at internal / external forums, learn about emerging trends / methodologies / technologies and share knowledge with others in the team
Qualifications, Skills and Experience:
At least 5 years of core programming experience as a C++ developer with strong knowledge of OOAD principles and design patterns
Strong knowledge of Applied Mathematics (numerical methods, calculus, linear algebra, mathematical modeling, statistical methods, optimization, etc.)
Strong knowledge of algorithmic / scientific computing
Quick learner with strong numerical verbal aptitude, logical reasoning and analytical ability
Knowledge of Windows, UNIX and LINUX environments Strong experience of developing high performing applications with knowledge of multithreading and parallelization as well as distributed computing
Knowledge of tools used for code profiling, unit testing, detecting memory leaks and overruns Strong knowledge of practices like automated unit testing, code reviews and following coding guidelines
Strong knowledge of source control and versioning tools like BitBucket, Git, SVN, etc.
Experience working with Agile frameworks like Scrum
Strong verbal and written English communication skills
Self-driven with ability to think creatively and solve complex problems
Bachelor s / Master s degree in Computer Science Engineering (CSE) or equivalent STEM degree
Optional Skills and Experience (preferred but not mandatory):
Familiarity with Jira, Confluence and Bamboo
Experience in Python / R programming
Familiarity with C#.NET
Knowledge of scientific graphics
Experience of developing microservices and REST APIs
Knowledge of some relational or NoSQL databases
Familiarity with statistical or scientific software like R/SPSS/MATLAB/Mathematica
Familiarity with cloud platforms like AWS, Azure, etc.
Experience of guiding / coaching junior developers
Keyskills: Unix C++ Multithreading Linux OOAD Agile Developer Windows SDLC Python
Who We AreThe clinical development of drugs and devices is crucial for human welfare. Our mission is to improve success rates in this endeavor. We do this by improving the design and implementation of clinical trials through the innovative application of statistical science, operations research, ...