Summary
Overview
Work History
Education
Skills
Websites
Projects
Accomplishments
Certification
Timeline
Generic
Ravindra Ranwala

Ravindra Ranwala

Senior Software Engineer

Summary

Senior Software Development Engineer (Java) with over 12 years of industry experience in different key domains including Finance, eLearning, Middleware and Healthcare. Solid experience in writing clean code with performance in mind, problem solving and analytical skills, programming, system design, code review, leadership and mentorship. Good exposure to processes like CMMI, Agile Scrum, SDLC, PEP.



Overview

13
13
years of professional experience
6
6
years of post-secondary education
4
4
Certifications

Work History

Senior Software Engineer

Crédit Agricole Corporate and Investment Bank
2021.12 - Current
  • Led the design and development of multiple enterprise-level microservice applications for the finance industry using the latest technologies
  • Designed and implemented scalable APIs for managing counterparty and KYC data that serve thousands of client requests daily
  • Over 90% of unit test coverage with sonar rating A
  • Continuous Integration/Deployment Pipeline Integration, pull requests, code reviews, load testing, unit/integration/e2e testing
  • Involved in monitoring, troubleshooting and fixing of production issues
  • Java, springboot, Spring data JPA, Hibernate ORM, grpc, JDBC, prepared statements, Kafka, Spark, Design patterns, junit, Mockito, TDD, sonar, Kubernetes, Argo Cd, Grafana, Jenkins, agile scrum process
  • Have good experience in conducting code review sessions and guiding the junior developers as and when needed
  • Making technical decisions by evaluating tradeoffs
  • Solving complex problems optimally while keeping performance in mind.

Technical Specialist Java

Pearson Lanka (Pte) Ltd
2016.08 - 2021.12
  • I have been working as a Full Stack developer and a Technical Lead for a team which builds learning apps using cutting edge technologies
  • Designed and implemented an enterprise eLearning system used by large universities around the world to facilitate eLearning
  • Implemented scoring algorithms to grade students in their assessments
  • Around 95% unit test coverage
  • Implemented REST APIs to support instructors in delivering different question types such as short answer, multiple choice and matching questions and then allowing students to answer them
  • The system then evaluates the students' grades and shares it with them
  • Building highly responsive, maintainable and accessible single page web applications using React, Redux, redux-thunk, Java Script, ES6, JSX, HTML and CSS
  • Mocha, chai and enzyme were used to write the unit tests
  • Java, Springboot, RxJava, MySQL, MongoDB, UML, OOP, TDD, Junit, Mockito, Spring Security, Spring Data JPA, Hibernate ORM, multithreading, asynchronous programming, AWS, Jenkins, Websocket.

Software Engineer

WSO2
2014.05 - 2016.08
  • Implemented the core transport layer for the ESB using Java with Apache HTTPCore NIO and Netty frameworks
  • ESB handled millions of requests per day
  • Experience in TCP/IP protocol suite
  • Implemented coordination support for ESB's JMS message processor using hazelcast cluster messages
  • Was the release manager for the ESB 4.9.1 release and it was one of the most stable releases we ever made
  • Implemented JMS 2.0 support in WSO2 ESB
  • Involved in analyzing, troubleshooting and fixing production issues and answering the customer queries.

Software Engineer

Cambio Software Engineering
2012.07 - 2014.05
  • Implemented a large-scale global healthcare system for handling electronic patients medical records
  • Worked with the team members in defining the product roadmap
  • Involved in analyzing and fixing production issues
  • JEE, EJB, Core java, JDBC and Swing, TDD, JUnit, Mockito, Maven, Ant, UML, Design patterns, JBoss.

Associate Software Engineer

Virtusa (Pvt.) Ltd
2011.04 - 2012.07
  • Developed a web service app for ICTA government agency which mainly focuses on eGovernance
  • Java, Spring, Struts, Hibernate, Axis 2 Web Services, SOAP, MVC, Tomcat.

Education

Master of Science - Computer Science

University of Moratuwa
Colombo, Sri Lanka
2013.01 - 2015.05

Bachelor of Science - Information Technology

Sri Lanka Institute of Information Technology
Colombo, Sri Lanka
2007.11 - 2011.05

Skills

    Analytical Skills

undefined

Projects

  • Message Processor coordination support in WSO2 ESB, where we go a step beyond in order to achieve high availability and scalability. Coordination support of the Message Processor comes into play when you run it in cluster mode. Therefore we need to have a cluster setup with one manager and few worker nodes with us. The implementation is based on JMS 2.0 and Hazelcast clustering framework. Hazelcast cluster messages were used to communicate between different nodes in the cluster. Different message processor tasks get executed in different worker nodes. Manager node is responsible for adding, deploying, editing and deleting ESB artifacts where workers are responsible for serving client requests. When a worker node crashes or restarts, automatic failover takes place and the task is getting scheduled to the other worker node in the cluster. This yields high availability in the production setup. Moreover the number of tasks getting executed in workers are configurable using properties and multiple message processor tasks can get executed in parallel on multiple nodes. More details can be found in the blogpost.


  • Active Response, an interactive e-Learning application that helps university instructors to conduct students assessments online. The project was mainly implemented using the microservices architecture. Reactive programming paradigm was used to make it more scalable. The front end was implemented using react/redux with javascript. An instructor can add multiple different question types to the system. Different instructors can share their question banks with each other. The question types allowed were multiple choice questions, matching, short answer etc. TinyMCE andmathjax editors were used to support mathematical equations. Upon the instructor delivering the questions, the students can take the exam and the system finally evaluates their work and assigns scores based on their answers. Micro services architecture was used for the implementation. There were multiple downstream microservices and a service facade that integrates and implements the code business logic in the system. Spring security module was used for authorization between different user roles in the application. Connection to the database was mainly using spring data JPA. Both MySQL and MongoDB were used depending on the suitability for the use case and the data model used. Application was deployed in the AWS cloud.


  • Designed and implemented a graph based RDF store for Apache cassandra as part of my MSc research project.

Accomplishments

  • Virtusa Merit Award for Academic Excellence in the field of IT, Year 2011 Convocation.

Certification

Oracle Certified Professional, Java SE 6 Programmer.

Timeline

Senior Software Engineer

Crédit Agricole Corporate and Investment Bank
2021.12 - Current

Technical Specialist Java

Pearson Lanka (Pte) Ltd
2016.08 - 2021.12

Software Engineer

WSO2
2014.05 - 2016.08

Master of Science - Computer Science

University of Moratuwa
2013.01 - 2015.05

Oracle Certified Professional, Java EE5 Web Services Developer.

2012-12

Oracle Certified Professional, Java EE 5 Business Component Developer.

2012-08

Software Engineer

Cambio Software Engineering
2012.07 - 2014.05

Oracle Certified Professional, Java SE 6 Programmer.

2012-04

Oracle SQL Certified expert in Oracle 11g Database.

2011-07

Associate Software Engineer

Virtusa (Pvt.) Ltd
2011.04 - 2012.07

Bachelor of Science - Information Technology

Sri Lanka Institute of Information Technology
2007.11 - 2011.05
Ravindra RanwalaSenior Software Engineer