nipunaranasinghe
Nipuna Ranasinghe
Associate Technical Lead at WSO2
Colombo, Sri Lanka

Working as a lead developer in Ballerina language team and previously worked as a research officer in StatNLP group in Singapore University of Technology and design. Lead developer of the International Autonomous Robotics Challenge 2016 (Kanpur, India) winning team and the national team for ABU Robocon 2017 (Tokyo, Japan) More interested in algorithm development, robotics, and machine learning.

CodersRank Score

What is this?

This represents your current experience. It calculates by analyzing your connected repositories. By measuring your skills by your code, we are creating the ranking, so you can know how good are you comparing to another developers and what you have to improve to be better

Information on how to increase score and ranking details you can find in this blog post.

1,054.3
CodersRank Rank
Top 1%
Based on:
Stackoverflow 18 events
Senior Developer
Java
Java
Top 5
Ballerina
Ballerina
Developer
Sri Lanka
Top 5
Java
Java
Developer
Sri Lanka
Highest experience points: 0 points,

0 activities in the last year

List your work history, including any contracts or internships
WSO2
6 years 1 month
Sri Lanka Current workspace
Currently Nipuna Ranasinghe supports the WSO2

Nipuna Ranasinghe's scores will be added to this company.

Associate Technical Lead
Jun 2021 - Present (2 years 10 months)
Ballerina is a programming language designed for network distributed application development. Ballerina developer tooling provides a numerous set of tools including CLI tools, compiler extensions, language plugins, IDL extensions, etc. As an associate technical lead, I have been playing the following primary roles.

1) Role of lead engineer - Responsible for developing the Ballerina debugger and semantic versioning validator tool.
- Mentor an intern project to introduce the semantic versioning validator CLI tool for Ballerina language, which prevents pushing packages to Ballerina central with Semver incompatible changes.

2) Role of Ballerina Dev tooling team lead - Responsible for overall output of a 6-member team.
- Provide technical leadership for the design and the implementation of Ballerina OpenAPI converter tools
- Conduct architectural and code reviews for the components that resides under Ballerina tooling

3) Role of Engineering Manager - Responsible for quality of work, deliverables of a 8-member team
- Identify bottlenecks in the process and roadblocks to success of my team and clear the roadblocks
- Partner closely with the Product lead to manage project scope and ensure the technical deliverables are met
- Identify headcount needs for the team, plan and recruit to fill the needs
- Manage team members with different skill sets
- Solicit and Deliver individual feedback frequently
- Fill in the Performance Appraisal Review (PAR) for each team member
- Provide technical input for developer tooling design and implementation
Senior Software Engineer
Jul 2019 - Jun 2021 (1 year 11 months)
Ballerina is a programming language designed for network distributed application development. Ballerina developer tooling provides a numerous set of tools including CLI tools, compiler extensions, language plugins, IDL extensions, etc. As a senior software engineer, I have contributed to the Ballerina compiler and developer tooling with the below contributions.

- Design and implement a LSP(Language Server Protocol) client library called 'LSP4IntelliJ' for Jetbrain IDEs, which received a massive community attraction and currently being continued as a community-driven open source project under the official Ballerina Platform GitHub Organization.
- Design and implement the debugger tool for the Ballerina language from scratch, with the support for conditional Breakpoints, logpoints, stepping (in/out/over), stacktrace view, variable view, watch window, expression evaluation support, etc.
- Optimize Ballerina compiler to reduce the jar creating time by 10x using Ballerina JAR compression + creation related optimisations.
- Initiate the effort to create custom JREs for Ballerina runtime.
Software Engineer
Feb 2018 - Jun 2019 (1 year 4 months)
Ballerina is a programming language designed for network distributed application development. Ballerina developer tooling provides a numerous set of tools including CLI tools, compiler extensions, language plugins, IDL extensions, etc. As a senior software engineer, I have contributed to the Ballerina developer tooling with the below contributions.

- Improved Ballerina IDE support and developer experience by designing and developing the Ballerina language extension for IntelliJ platform IDEs
- Designed and developed a set of Ballerina connectors by integrating REST APIs such as Jira, Google calendar, etc.
- Enhanced WSO2 customer support engineering process by improving the existing WSO2 CIP (Customer Information Portal) backend using Ballerina language
Asia Pacific Broadcasting Union
Feb 2017 - Aug 2017 (6 months)
Tokyo, Japan
Team Member - National Team for ABU Robocon 2017
The ABU Asia-Pacific Robot Contest (ABU Robocon) is founded in 2002 by Asia-Pacific Broadcasting Union. In the competition robots compete to complete a task within a set period of time. The contest helps advance engineering and broadcasting technologies in the region. The event is broadcast in many countries through ABU member broadcasters.
I contributed as the lead programmer of the national team, which was qualified from the national round and represented sri lanka for ABU Robocon 2017, which was held in Tokyo,Japan
Singapore University of Technology and Design (SUTD)
Aug 2016 - Jan 2017 (5 months)
Singapore
Research Officer Intern
I worked at StatNLP Research Group under Professor Lu wei and gained experiences in
• Machine Learning for Cyber Security
• Using supervised models for malware classification and behavior prediction tasks
Machine learning

Add some compelling projects here to demonstrate your experience
Semantic Versioning Validator tool for Ballerina packages
Jan 2022 - Present
Semantic versioning is a well-known and widely adopted concept in the software world, mainly to overcome the problem of dependency hell. Currently the Ballerina package/library versioning strategy is also based on the semantic versioning specification.

However, Ballerina library developers are able to change the version of their Ballerina packages at will, because the Ballerina platform itself currently does not provide any validation/enforcing mechanism to ensure the semantic versioning compliance between consecutive package releases. This may result in releasing new versions of packages that are not semver compatible. As a solution to the above problem, I've contributed to the Ballerina eco-system with the below contributions.

- introduce a specification which defines the semver compliance for Ballerina APIs.
- implemente a utility tool which will inform the user if the API changes conform to the new package version that the user is trying to build.
Debug server for Ballerina Language
Mar 2020 - Present
Ballerina is a statically typed, compiled programming language designed for network distributed application development. Ballerina debug server provides the debugging capabilities to the Ballerina language via its language extensions, i.e. VSCode and Intellij plugins.
LSP4IntelliJ: The most comprehensive language client library for IntelliJ plugins
Jan 2020 - Present
Lsp4IntelliJ is a client library, which provides language server support for IntelliJ IDEA and other IntelliJ-based IDEs. I initiated this project as a requirement for the Ballerina Intellij plugin and then moved as a standalone language client library for all the IntelliJ IDEs.

Due to the massive community attraction, its currently being continued as a community-driven open source project under the official Ballerina Platform GitHub Organization.

This section lets you add any degrees or diplomas you have earned.
University of Moratuwa
B.Sc. Engineering (Hons), Electronics and Telecommunication Engineering
Jan 2014 - Jan 2018
Dharmaraja College, Kandy
Jan 2004 - Jan 2012
Sangeeth Visharad in Hindustani Classical Instrumental (Violin)
Jan 2010
CKAD: Certified Kubernetes Application Developer
Mar 2023

Jobs for you

Show all jobs
Feedback