
Sahan Ranasinghe
Verified Expert in Engineering
Software Developer
Colombo, Western Province, Sri Lanka
Toptal member since September 19, 2022
Sahan is an experienced software engineer with eight years of experience working in the information technology and services industry. He is skilled in Java, Node.js, Angular, React, Hibernate, and Spring Framework. Strong engineering professional with an engineer’s degree focused in computer software engineering from the University of Westminster.
Portfolio
Experience
- MySQL/MariaDB - 7 years
- Java - 7 years
- Docker - 6 years
- TypeScript - 5 years
- Spring Boot - 5 years
- Node.js - 4 years
- Angular - 4 years
- React - 2 years
Availability
Preferred Environment
Docker, Java, Angular, Firebase, Linux, Spring Boot, React, Agile Software Development, Kubernetes
The most amazing...
...thing I've developed is a graphical SQL Query builder for an industry-leading ERP solutions provider, which allowed users to do customizations without coding.
Work Experience
Lead Software Engineer
IFS
- Continued adding features to the Query Designer and revamped the state management of it to use NgRx. This helped to reduce significant technical debt in the tool.
- Involved in designing and prototyping new features planned to be added to the Query Designer in future releases.
- Designed and developed a tool that compares OpenAPI specifications to identify breaking changes between releases. It replaced its predecessor, which had performance issues, and reduced the scanning time from 6 hours to 20 minutes.
Java Spring Boot Consultant
Alexei Ptitchkin
- Configured Spring Security for the client's Spring Boot application and connected the same with Keycloak using Spring OAuth.
- Provided consultation to configure Keycloack to import users, roles, and groups from a 10+ years old user database without any data loss and prevented a large data migration, ultimately saving time and money.
- Tracked down the client's issue root causes by replicating their set up without having access to the codebase. Given that the client's application is a banking app, I replicated their deployment and debugged the issues.
Senior Software Engineer
IFS
- Developed a web-based graphical SQL query designer that allows the users to create custom configurations on runtime without coding.
- Designed and developed a tool that compares OpenAPI specifications to identify breaking changes between releases. It replaced its predecessor, which had performance issues, and reduced the scanning time from six hours to 20 minutes.
- Implemented Bitbucket CI/CD pipelines to run tests and perform releases of the query designer.
- Used Cypress.io and Jest to implement unit tests and end-to-end tests for the query designer.
Associate Tech Lead | Software Engineering
M I Synergy
- Contributed to the architectural design and development of an internet banking system for a local bank. It was designed to have hot-pluggable microservices that add new features by deploying a new microservice.
- Designed and developed a one-time password generator that can be dynamically configured and used by multiple third-party services, configure multiple delivery mediums such as email, SMS, calls, and PIN mailer, and can be hosted per client requests.
- Used MongoDB and Redis for their scalability and performance in the one-time password generator system.
- Implemented CI/CD pipelines using GitLab CI/CD and used Docker and Docker Compose to deliver and deploy the releases.
- Implemented prototypes using several front-end technologies, such as Angular, React, and Vue, to select the best technology to use in the actual project.
Senior Software Engineer
M I Synergy
- Involved in developing a roadside assistance system the call center agents use to find the nearest available roadside assistance crews to assign for customer requests.
- Interacted with the client directly in collecting and analyzing the requirement and developing prototypes.
- Contributed to user training sessions and customer feedback collection to gather further information about the provided solution.
Software Engineer
M I Synergy
- Implemented a custom IAM system for a local bank. It performed authentication and authorization of the internal/external users using OAuth 2.0, LDAP, and social logins for the software solutions provided by M I Synergy to the customer.
- Improved a data synchronization service that reads from the core application database of a bank and processes and writes to another database, taking eight hours to finish. After the optimization, processing the same 10 million records took two hours.
- Used GitLab for version control, project management, and bug tracking.
- Implemented release pipelines using GitLab CI/CD to improve the quality and speed of release steps.
Associate Software Engineer
M I Synergy
- Involved in developing a web application for a micro-finance institute. Usage of the Hibernate ORM reduced many hard-coded SQL queries from the codebase and improved the developer experience when implementing complex business logic.
- Used Redmine as a project management and bug-tracking tool.
- Hosted Java and Spring Boot-based web applications using the Apache Tomcat application server in a VPS hosting service.
Experience
Graphical Query Designer
Since its prototype stage, I was involved in the project to determine the best way to represent the DB model to users with minimal technical knowledge. After multiple iterations of R&D, I started front-end development, which consumes the APIs developed by the other team members. The front-end is an interactive tool designed to represent an SQL query visually. Users can select tables and their attributes and create joins between multiple tables using the front end. Moreover, the tool allows users to create complex filters and aggregations and even join selected tables automatically if any reference information is found. Once saved and published, these queries can be accessed as REST endpoints.
The most challenging part was to represent an SQL query graphically without making the users feel overwhelmed. Continuous prototyping and communicating with stakeholders to get feedback helped to overcome this challenge. The initial release was done three months after the project launch, and customer feedback was nothing but positive. I'm still working on this project to introduce new features.
Java Spring Boot Consultant
Furthermore, I provided consultation on migrating a 10+-year-old SQL-based user database into Keycloak, including each user's passwords, roles, and groups.
Education
Master's Degree in Big Data Analytics
Robert Gordon University - Scotland, UK
Bachelor's Degree in Software Engineering
University of Westminster - London, UK
Skills
Libraries/APIs
Node.js, Spring REST, REST APIs, NgRx, React, jQuery, JasperReports, Spring LDAP, Spring Cloud Sleuth, OpenAPI, Jenkins Pipeline, Vue
Tools
GitLab, Git, Apache Maven, IntelliJ IDEA, Postman, GitLab CI/CD, Docker Compose, Apache Tomcat, NGINX, Apache, Apache Avro, RabbitMQ, Eureka, Keycloak
Languages
Java, JavaScript, TypeScript, SQL, HTML, CSS, PHP
Frameworks
Angular, Spring Boot, JPA, Hibernate, OAuth 2, Bootstrap, Spring Security, Angular Material, Cypress, Jest, Kendo UI, Spring MVC, JSON Web Tokens (JWT), Swagger
Paradigms
Object-oriented Programming (OOP), Agile Software Development, Requirements Analysis
Platforms
Docker, Web, Firebase, Linux, Apache Kafka, Amazon Web Services (AWS), Oracle, Kubernetes
Storage
MySQL, Spring Data JPA, MySQL/MariaDB, MariaDB, PostgreSQL, MongoDB, Redis, Oracle SQL, Microsoft SQL Server
Other
Spring Cloud, RESTful Microservices, Software Architecture, API Integration, APIs, Web & Mobile Applications, Cloud Computing, Text Analytics, Data Warehousing, Data Mining, LDAP, Spring Cloud Gateway, ApacheDS, Big Data, Programming
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring