Tharsanan Kurukulasingam, Developer in Trincomalee Town And Gravets, Eastern Province, Sri Lanka
Tharsanan is available for hire
Hire Tharsanan

Tharsanan Kurukulasingam

Verified Expert  in Engineering

Software Engineering Developer

Trincomalee Town And Gravets, Eastern Province, Sri Lanka

Toptal member since November 15, 2021

Bio

Tharsanan is a software engineer who likes to work in back-end development and solve challenging problems. He has a bachelor's degree in computer science and engineering and has two years of software development experience. Tharsanan participated in Google Summer of Code 2019 and successfully completed it.

Portfolio

Enactor pvt ltd
Java, JavaScript, Node.js, React
University of Moratuwa
C++, Java, ANTLR
Sysco LABS
JavaScript, React, Node.js, Amazon Web Services (AWS), MongoDB

Experience

  • HTML - 3 years
  • Node.js - 3 years
  • Software Engineering - 3 years
  • Ubuntu - 3 years
  • Java - 3 years
  • JavaScript - 3 years
  • React - 2 years
  • MongoDB - 2 years

Availability

Part-time

Preferred Environment

Ubuntu

The most amazing...

...I've participated in is a Google Summer of Code 2019, which I successfully completed.

Work Experience

Senior Software Engineer

2020 - PRESENT
Enactor pvt ltd
  • Developed and integrated 3DS to Enactor payment gateway.
  • Built eCommerce payment to Enactor payments. I carried out accreditation tests with Visa, Mastercard, and Elavon.
  • Developed identity server and designed and developed Klarna integration Enactor payments.
Technologies: Java, JavaScript, Node.js, React

Undergraduate

2019 - 2019
University of Moratuwa
  • Designed multiple architectures to solve the performance problem that already existed in the Siddhi stream processing engine.
  • Developed a static compiler for Siddhi query language to produce a synchronous stream processor.
  • Designed LLVM passes to automatically convert sync code to asynchronous code on demand.
  • Implemented genetic algorithm to automatically fine-tune stream processor-related configurations.
Technologies: C++, Java, ANTLR

Intern Software Engineer

2019 - 2019
Sysco LABS
  • Designed and developed a cloud server and resource management system for their internal usage.
  • Automated and developed unit tests and dockerized multiple products to support ECR deployments.
  • Designed and developed an employee management system for Sysco LABS' internal use.
Technologies: JavaScript, React, Node.js, Amazon Web Services (AWS), MongoDB

Student Participant

2019 - 2019
Google Summer of Code
  • Developed an IntelliJ plugin for Cpachecker software which can be used to analyze C and C++ codes.
  • Integrated CI/CD pipeline to automatically run tests and publish the plugin to the IntelliJ plugin repository.
  • Developed the plugin within three months period and successfully completed the program.
Technologies: Gradle, GitLab, IntelliJ IDEA

Experience

Siddhi-LLVM

Streaming SQL allows for specifying stream processing applications to use an intuitive SQL-based interface. Increasingly Streaming SQL has been widely used by the stream processing community to develop stream processing applications. Siddhi Query Language (SiddhiQL) is one of the examples of Streaming SQL. Siddhi QL has its own stream processor compiler, which is built using Java language. The problem with the existing compiler is that it uses interpreter style compilation and generates a sync-type stream processor. Because the existing compiler creates sync-type architecture, the created stream processor cannot use all its hardware resources to increase the performance. Async type stream processors will be a better solution in terms of performance for higher computational tasks. But, it does not guarantee that Async type architecture will give us better performance than sync every time.

If our stream processor tasks are minimal, then using Async will introduce more threading overheads, reducing the performance compared to sync usage in that situation.

So, our task is to create a static compiler for the Siddhi Query Language and provide a hybrid architecture, sync and Async, that can perform well in different situations.

Resume in a Physics Engine

Implemented a personal website using a physics engine. Viewers can look at my professional details in a fun and interactive way. It's a responsive UI, but I recommend using a widescreen(PC), yet it works fine in mobiles also.

Cpachecker IntelliJ Plugin

https://gitlab.com/sosy-lab/software/cpachecker-intellij-plugin/
Cpachecker is a framework that can be used as a software verification tool for C programs. We can use Cpachecker locally by command-line interface or in the cloud using the web client. Even though Cpachecker is suitable for software verification and program analysis, a developer cannot use it with an IDE. This drawback massively decreases the usability of Cpachecker.

The solution for this problem is to create a plugin that can use Cpachecker inside the IDE. I designed and developed the plugin from scratch. The plugin can use locally installed Cpachecker or a cloud service. User can customize the Cpachecker parameters using a configuration UI.

AWS Tracker

Problem
Sysco LABS is a leading software company in Sri Lanka. They are using AWS for cloud computing service. As Sysco LABS is a big organization, they use 100s of EC2, S3 instances. Handling everything and keeping track of which instances are connected to which environment is very challenging with AWS console or their web interface.

Solution
We developed a web portal in which you can
• view instances' state
• start, stop, restart servers
• can see which instance belongs to which environment, project, or sub-project in a tree-like graphic
• view servers that do not belong to any projects but running.

We developed an authentication and authorization mechanism in which only authenticated persons can log in, and authorized persons can edit or change the state of servers.

Education

2015 - 2019

Bachelor's Degree in Computer Science and Engineering

University of Moratuwa - Srilanka

Skills

Libraries/APIs

Node.js, React

Tools

ANTLR, Gradle, GitLab, IntelliJ IDEA

Languages

Java, JavaScript, C++, HTML

Platforms

Ubuntu, Amazon Web Services (AWS)

Storage

MongoDB

Other

Software Engineering

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