Rajith Lanka Vitharana, Developer in Adelaide, South Australia, Australia
Rajith is available for hire
Hire Rajith

Rajith Lanka Vitharana

Verified Expert  in Engineering

Integration Developer

Location
Adelaide, South Australia, Australia
Toptal Member Since
February 8, 2020

Rajith is a seasoned technical lead with a demonstrated history of successfully delivering projects in the computer software industry. He excels in Java and PHP development and algorithms and would love to work on back-end projects, but typically, his only preference is to work on projects that challenge him. All in all, Rajith is a fantastic problem solver with a robust engineering background who prides himself on creating clean solutions.

Portfolio

AMP
WSO2, Java, Python, AWS CloudFormation, Amazon Web Services (AWS)...
LandServices SA
Java, Spring, React, Vue, Angular, TypeScript, Node.js...
WSO2
Apache Axis 2, Synapse, OSGi, Enterprise Integration, ANTLR 4, ASM, Java

Experience

Availability

Part-time

Preferred Environment

Visual Studio Code (VS Code), IntelliJ IDEA

The most amazing...

...thing I've done was working as an integral part of a programming language development team and a major contributor to the language design and development.

Work Experience

Senior Engineer

2021 - PRESENT
AMP
  • Designed and developed the full integration platform upgrade with a microservices design pattern. The design encompasses initial development to comprehensive testing and ultimately, successful deployment into production environments using CI/CD.
  • Implemented open banking APIs by integrating various internal banking systems to provide APIs according to the open banking specification.
  • Maintained an integration platform and supported internal projects and stakeholders.
Technologies: WSO2, Java, Python, AWS CloudFormation, Amazon Web Services (AWS), Microservices, CI/CD Pipelines

Senior Java Analyst/Programmer

2020 - 2021
LandServices SA
  • Redesigned and developed the planning notification system for the NT land registry using Vue as the front end, and I3, Spring and Hibernate as the back end.
  • Worked as a key member for the Electronic Planning Lodgement project done for the NT land registry (introducing new features to the system). Used Vue for the front end and Spring for the back end.
  • Handled support, maintenance, and enhancements for the SA Land Registry Software System.
  • Did feature improvements to the land valuation app, which was written in React with ELK stack in the back end.
Technologies: Java, Spring, React, Vue, Angular, TypeScript, Node.js, Amazon Web Services (AWS), i3, Hibernate

Senior Software Engineer

2014 - 2020
WSO2
  • Worked as a primary contributor and key member of the Ballerina language team and contributed toward the development of the language.
  • Introduced “lock” support to the Ballerina language, which enables safe and concurrent access to the shared variables. Full implementation included parsing the Ballerina code, generating the model, and the runtime implementation. The runtime implementation included both the BVM runtime implementation as well as JVM runtime implementation.
  • Introduced “any type” support to the Ballerina language, which is the supertype of the Ballerina type system. Used ANTLR4 for the parsing and Java to implement relevant semantic validations.
  • Introduced “object type” support to the Ballerina language, which is a behavioral type, which can have functions attached to it. Used ANTLR4 for the parsing and model building and Java for semantic analyzing and runtime implementation.
  • Introduced “debugger” support to the Ballerina language runtime, which enables users to debug their Ballerina codes. Used Java to implement it in the BVM at the instruction level.
  • Introduced the initial connector framework support so that Ballerina connectors can be plugged externally. This is used to implement all the inbuilt Ballerina connectors such as HTTP, Web socket, GRPC, etc.
  • Designed and implemented the “wait” and “send/receive” actions for both the BVM and JVM backends.
  • Introduced “Datasource Deployer” support for the WSO2 Data Services Server to deploy data sources as C-App artifacts. Used an Axis2-based artifact deployment approach to detect and deploy data sources to the server.
  • Introduced “Requestbox” support for WSO2 Data Services Server to invoke multiple operations on a data source using a single operation. Used Hazelcast clustering and Axis2 to support this in clustered environments as well.
  • Introduced “Custom Authorization Provider” extension to WSO2 Data Services Server to plug in Custom Authorization Providers for role-based filtering.
  • Introduced “mediation wire log” support for WSO2 Enterprise Service Bus along with its user interface in the WSO2 Developer Studio tool, which enables users to view wire logs while debugging their mediation flow. Used Synapse, Axis2, and Java for server-side log collection and an Eclipse plugin development to show those logs in the WSO2 Developer Studio tool.
  • Introduced coordination support to the VFS transport so that a file scan happens in only one node in a clustered environment. Used Hazelcast and Axis2 for finding the leader node and to let only the leader node process files.
  • Introduced SSL support for RabbitMQ message stores and message processors, which enables developers to connect to RabbitMQ using SSL.
Technologies: Apache Axis 2, Synapse, OSGi, Enterprise Integration, ANTLR 4, ASM, Java

Software Engineer

2013 - 2014
Direct Technologies (Pvt) Ltd
  • Was actively involved in the design phase of the new order management system (OMS).
  • Contributed to the development of MFG OMS which is the order processing system that is written on top of the OMS framework. It combines the modules in the framework and builds an end to end order transaction process.
  • Implemented a cache viewer which can be used to view the current states of the cache such as what are the objects reside in the cache, its lifetime, and so on.
  • Implemented an intrusion detection system (IDS) for the trade-routing server (TRS) which was supposed to detect and protect the server from Intrusion attacks such as DOS, and more.
  • Oversaw and was responsible for the back office (the earlier OMS) to the front office (new OMS) data migration; this included an on-the-fly data migration as migration process includes both OMS to be run side by side to avoid regression issues.
  • Created test suites that included unit tests and integration tests so that they help to minimize regression issues, which improves development experience and maintainability.
  • Was responsible for code quality maintenance of the front office project and achieved this using code quality tools like Sonar to help make the code quality to the highest level while doing proper Java documents and code commenting to make the code more understandable and readable.
Technologies: JBoss, Oracle, JBoss Infinispan, Hibernate, Spring, Java EE, Java

Ballerina Programming Language

https://ballerina.io/
Ballerina is a brand-new statically typed programming language. I was a primary contributor and a key member of the team—contributing to the design and development of the language and its features.

Photography Website

I developed a photography website where photographers can register and advertise their photography services and showcase their achievements. On this site, people can also browse through available photographers and book photography services online. There is a review process as well so that people can review photographers according to the services they get.

I used Java Spring Boot on the back end while front end was an Angular web app.

Taxi Management System

I developed back-end services for a taxi management system which includes a vast range of features from taxi location services to driver roster management. The front end included both an Android mobile app and a web app. The system can have multiple roles to manage it and users(both drivers and users) can register in multiple ways such as phone number, email, and so on.

I used Java Spring Boot and Hibernate for back-end development while the front-end web app uses an Angular web app.

Inventory Management System for a Sand-mining Site

I developed an inventory management system for a sand-mining site in Sri Lanka. It was developed using the .NET MVC framework in C# language and SQL Server was used as the database. The system included driver management as well as sand-distribution management along with payments for the drivers.

Languages

Java, XML, XSLT, PHP, JavaScript, C#, C++, Web Services Description Language (WSDL), SAML, XPath, TypeScript, Python

Frameworks

JUnit, Angular, Apache Axis 2, Spring Boot, OSGi, Jakarta Server Pages (JSP), Netty, OAuth 2, Mockito, ASM, Spring, Hibernate, .NET, Swagger, Ant Design, Spring MVC

Tools

IntelliJ IDEA, Apache Maven, GitHub, SoapUI, Apache JMeter, Synapse, Vim Text Editor, MySQL Workbench, Subversion (SVN), Jenkins, ActiveMQ, RabbitMQ, JProfiler, ANTLR 4, Gradle, Docker Hub, Vagrant, VMware, Eclipse IDE, Atom, Sonar, Hudson, i3, AWS CloudFormation, Microsoft Word

Paradigms

Concurrent Programming, REST, Service-oriented Architecture (SOA), Agile Software Development, Test-driven Development (TDD), Microservices

Platforms

Linux, MacOS, Amazon Web Services (AWS), JBoss, Visual Studio Code (VS Code), Java EE, Oracle, Docker, Kubernetes

Storage

JSON, MySQL, H2, JBoss Infinispan, Spring Data JPA, Hazelcast, Oracle RDBMS, Google Cloud, PL/SQL

Other

WSO2, SOAP, Back-end, Integration, WSO2 API Manager, Enterprise Integration, Enterprise Integration Patterns (EIP), Single Sign-on (SSO), log4j, FindBugs, Shell Scripting, Apache Cassandra, Ajax, RESTful Services, SFTP, FTP, OAuth, LDAP, Enterprise Java Beans (EJB), CI/CD Pipelines

Libraries/APIs

Java Servlets, SLF4J, jQuery, Quartz, Node.js, AMQP, React, Vue

2008 - 2013

Bachelor of Science Degree with Honors in Computer Science and Engineerng

University of Moratuwa - Moratuwa, Sri Lanka

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