Sahan Ranasinghe, Developer in Colombo, Western Province, Sri Lanka
Sahan is available for hire
Hire Sahan

Sahan Ranasinghe

Verified Expert  in Engineering

Software Developer

Location
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

IFS
Angular, JavaScript, Node.js, Java, NgRx, Oracle SQL, Docker, TypeScript, Jest...
Alexei Ptitchkin
Keycloak, Java, LDAP, ApacheDS, Spring Boot, JavaScript, MySQL, Vue, Docker...
IFS
Angular, NgRx, Node.js, Oracle SQL, Cypress, Jest, Apache Maven, OpenAPI...

Experience

Availability

Part-time

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

2022 - PRESENT
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.
Technologies: Angular, JavaScript, Node.js, Java, NgRx, Oracle SQL, Docker, TypeScript, Jest, Cypress, HTML, CSS, Apache Maven, Git, Software Architecture, Postman, Keycloak

Java Spring Boot Consultant

2022 - 2022
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.
Technologies: Keycloak, Java, LDAP, ApacheDS, Spring Boot, JavaScript, MySQL, Vue, Docker, Microsoft SQL Server, Oracle

Senior Software Engineer

2021 - 2022
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.
Technologies: Angular, NgRx, Node.js, Oracle SQL, Cypress, Jest, Apache Maven, OpenAPI, Swagger, Jenkins Pipeline, Docker, TypeScript, HTML, CSS, Git, Software Architecture, Postman

Associate Tech Lead | Software Engineering

2020 - 2021
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.
Technologies: RabbitMQ, Java, Docker Compose, GitLab CI/CD, GitLab, Spring Boot, Spring Security, Angular, Angular Material, MongoDB, Redis, MySQL/MariaDB, OAuth 2, Spring LDAP, Spring Cloud, Agile Software Development, Docker, Git, React, REST APIs, RESTful Microservices, JSON Web Tokens (JWT), Spring Cloud Sleuth, Spring Cloud Gateway, NGINX, Eureka, Apache Maven, IntelliJ IDEA, HTML, CSS, Software Architecture, Postman, Keycloak

Senior Software Engineer

2018 - 2020
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.
Technologies: Spring Boot, Angular, Java, RabbitMQ, MySQL, Angular Material, Apache Tomcat, Agile Software Development, Docker, Docker Compose, JPA, Spring Data JPA, Hibernate, Requirements Analysis, MariaDB, Spring Security, IntelliJ IDEA, HTML, CSS, Apache Maven, Git, Software Architecture, Postman, Keycloak

Software Engineer

2017 - 2018
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.
Technologies: Java, Spring Boot, Angular, Docker, GitLab CI/CD, HTML, CSS, JavaScript, TypeScript, Apache Maven, Apache Tomcat, NGINX, JPA, Spring Data JPA, Hibernate, Spring Security, Bootstrap, MariaDB, Redis, RabbitMQ, OAuth 2, Spring LDAP, LDAP, Docker Compose, JSON Web Tokens (JWT), REST APIs, RESTful Microservices, IntelliJ IDEA, Git, Postman

Associate Software Engineer

2015 - 2017
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.
Technologies: Java, Spring Boot, Spring REST, SQL, MariaDB, Web, HTML, CSS, jQuery, JavaScript, JasperReports, Apache Tomcat, Apache Maven, Hibernate, Bootstrap, IntelliJ IDEA, Git, Postman

Graphical Query Designer

An Angular-based single-page application to design an SQL query using the underlying database structure of an industry-leading ERP solution.

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

A Java Spring Boot-based banking application. I provided consultation to configure Spring Security for the web application. The application then connected to a Keycloak instance using Spring OAuth and Spring Boot Keycloak adapter. The Keycloak instance was then connected to an LDAP source.

Furthermore, I provided consultation on migrating a 10+-year-old SQL-based user database into Keycloak, including each user's passwords, roles, and groups.

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, JSON Web Tokens (JWT), Swagger

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

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, MongoDB, Redis, Oracle SQL, Microsoft SQL Server

Other

Spring Cloud, RESTful Microservices, Software Architecture, Web & Mobile Applications, Cloud Computing, Text Analytics, Data Warehousing, Data Mining, LDAP, Spring Cloud Gateway, ApacheDS, Big Data, Programming

2021 - 2022

Master's Degree in Big Data Analytics

Robert Gordon University - Scotland, UK

2015 - 2020

Bachelor's Degree in Software Engineering

University of Westminster - London, UK

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring