Rajith Lanka Vitharana
Verified Expert in Engineering
Integration Developer
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
Experience
Availability
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
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.
Senior Java Analyst/Programmer
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.
Senior Software Engineer
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.
Software Engineer
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.
Experience
Ballerina Programming Language
https://ballerina.io/Photography Website
I used Java Spring Boot on the back end while front end was an Angular web app.
Taxi Management System
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
Skills
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
Education
Bachelor of Science Degree with Honors in Computer Science and Engineerng
University of Moratuwa - Moratuwa, Sri Lanka
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