Prabath Weerasinghe
Technical Lead (MyBudget)
Mobile Number
Email
GitHub URL
Blog
LinkedIn URL
Address
--https://github.com/psawmora/
https-https://www.linkedin.com/in/prabathw/
1017/1 Liyanagonda Road, Katukurunda, Kottawa
PERSONAL SUMMARY
I am a highly motivated and confident IT professional with extensive practical experience in producing
extensible, optimized and quality software. I always try my best to anticipate and meet the needs of clients
and believe in good team work as a cornerstone of producing successful and quality products and I am
confident that my skills and background would be a proven asset and an effective match for organizational
needs.
I'm an engineer with a proven track record and over 9+ years of extensive industry experience. With that I’m
highly skilled in architecture, design, and implementation of scalable systems. motivated team member and
a passionate team leader with excellent communication skills.
QUALIFICATIONS
B.Sc. Engineering (Electrical) – University Of Moratuwa
M.Sc. in CS - Department of Computer Science & Engineering, University of Moratuwa
Academic
(2014 batch)
Professional
Sun Certified Java Programmer (SCJP)
WORK EXPERIENCE
MyBudget [ Feb 2019 - Present]
-
As a developer and a lead engineer, I've been working on designing and implementing the next generation
business platform for the company. The architecture is fully event driven with a heavy focus on Event
Sourcing and CQRS. All microservices use Kafka as the 'source of truth' and heavily depend on Kafka
Stream processing. Following the CQRS pattern we've been using Kafka stream processing for composing
materialized views into Elasticsearch, Firestore and localized, per service Postgres DBs. Service
implementations are mostly with Java and closely follow reactive programming using reactor-core with
Spring WebFlux. CI/CD is done using CircleCi and uses GCP as the cloud platform.
hSenid Mobile Solutions [Jan 2012 – Jan 2019]
mChoice Rewards – A loyalty campaign management platform with an integrated rule engine – Java 7
-
Mainly used Spring Framework, Spring MVC, Spring Security, MySql, Hadoop/Hive (For the Rule Engine),
Akka, Netty, Javascript
-
Worked On
▪
Developing adapters (DB, Text, XML, HTTP) and fixing bugs
▪
Developing the Event Processor and fixing bugs
▪
Rule Engine developments and bug fixes
▪
External connector development including Email, SMPP and LDAP connectors.
▪
Involved in UI developments using JSP and Javascript.
mChoice SMSC – A high performance (Over 2500 TPS per node) Short Message Service Center with an in
house built SIGTRAN stack. – Java 7/8
-
Mainly used Netty, SCTP (Transport layer protocol for SIGTRAN stack), MongoDB and later ported to
TokuMX, LMAX Disruptor as a high performance Java concurrency library.
-
Carried out onsite bug fixes related to concurrency issues
-
Worked On
▪
Integrating the SMPP Gateway to the main messaging flow.
▪
Enhancing core performance.
▪
Updating the state machine.
▪
Bug Fixes.
mChoice SMPP Gateway – A high performance SMPP gateway implementation. – Java 8
-
Mainly used Cloudhopper (Twitter SMPP protocol implementation), Netty, TokuMX, Guvava Cache,
Spring Framework, SMPP protocol
-
Worked On
▪
Designing and writing the Gateway from scratch.
▪
Bug fixes.
WebRTC Gateway – Developed as a web to phone voice streaming platform based on WebRTC. – Java 8
-
Used Spring-Framework as the DI framework. Used Websocket to develop the signaling protocol. Used
SIP protocol to establish connections with the Asterisk (Used to connect to PSTN). SCXML was used to
develop the core state machine. Apart from those, used MySql, Spring MVC, Javascript
-
Worked On
▪
Initial R&D with WebRTC and Websocket.
▪
Development of the WebRTC signaling adapters.
▪
Developed the core state machine.
▪
Developed the SIP protocol adapter.
SMSC Customer Care – Developed as a customer care application with connection test facilities and a
dashboard to monitor messaging statistics. – Java 8
-
Used Spring Framework and Spring Security, Spring REST, MySql, Heka (Used to stream and process
performance stat files), worked with GO language to fix a bug in Heka, Ehcache was used as the cache
for query results from each SMSC and SMPP node.
-
Worked on
▪
Integrating the system with the SMSC and SMPP Gateway.
▪
UI development.
▪
Heka bug fixes.
Charging Gateway – A high performance charging gateway providing charging services in tandem with IN
services exposed as SOAP and REST APIs. – Java 8
-
Used Spring Framework and Spring Security, Spring REST, Apache CXF for SOAP and REST client and
simulator implementations, Websocket and JSON over HTTP APIs for third parties.
-
Worked On
▪
Designing and implementation of the gateway.
▪
IN integrations.
M3UA Signaling Optimization – A SIGTRAN Stack optimization. Integrated M3UA layer management
messages for congestion control and link-set management. – Java 7
-
Used Netty and Java
-
Worked On
▪
Designing and implementing M3UA management message integration.
▪
Integrating newly added features to the SMSC
USSD - Gateway – A high performance (Over 1200 TPS) USSD message handling gateway – Java 8
-
Used Spring Boot, Spring Framework, Spring Security, Apache CXF
-
Worked On
▪
Core optimizations
▪
Charging integration
▪
Implemented simulators for charging services
USSD – Framework – USSD framework hosts USSD applications and provides a convenient UI to create
complex USSD applications. – Java 8
-
Used Spring Boot, Spring Framework.
-
Worked On
▪
Creating new actions for implementing USSD applications for charging.
▪
Creating new actions for implementing USSD applications for voting.
▪
Worked on subscriber management.
▪
Core bug fixes.
Common Administration – A generalized application for managing users, passwords policies,
authorizations and user groups. – Java 8
-
Used Spring Framework, Spring Security, KnockoutJS, Javascript, MySql, Jasig CAS.
-
Worked On
▪
Implementing password policies.
▪
Updating CAS with new password policies.
▪
Frontend for User and User Group management.
▪
Updated user notification logics based on the password policy.
mChoice Rewards RESTFul API – This is an internal project for creating a fully-fledged REST API with
HATEOAS. – Java 8
-
Used Dropwizard as the REST development stack, Spring Framework, Swagger, Hal (As a Hypermedia
representation)
-
Worked On
▪
Designing and implementing the API.
▪
Bug Fixes
MSc Project – A SMPP decoder accelerated with GPU – Java 8 and C
-
A SMPP decoder library which supports both GPU based and CPU based decoding.
-
The library is written in C. Nvidia CUDA framework has been used to handle the GPU side.
-
Twitter Cloudhopper has been used as a reference implementation and integrated the library with it using
JNI.
-
Worked On
▪
Designing and implementing the library.
Technical Skills
Languages
-
Java
-
Javascript
-
C
-
Solidity (Used for Ethereum Smart Contracts)
-
Python, Shell Scripting, VerilogC
Frontend/Backend Frameworks/Libraries
-
Apache Kafka (Stream API, normal producer/consumer API, Connect, Rest Proxy etc)
-
Akka Actor
-
Spring Framework (Including Spring Boot), Spring Kafka, Spring WebFlux (Reactive programming in
general), Spring Security, Spring Data, Spring MVC, Spring Boot Test
-
JUnit, TestNG
-
Netty
-
Dropwizard
-
Apache CXF, Apache HTTP Client, Jersey
-
NodeJS
-
KnockoutJS
-
ReactJs
-
Jquery
-
Web3JS
Other
-
MySql
-
Postgresql
-
MongoDB
-
TokuMx
-
TokuDB
-
Google Firebase
-
Elasticsearch
-
Docker
IDEs
-
IntelliJ Idea, WebStorm, Clion, PyCharm
Other Interests
-
Blockchain based technologies. Specifically Smart Contracts.
REFEREES
Mr. Arosha Rodrigo
Tech Lead
hSenid Mobile Solutions
320, 2nd Floor,
T B Jayah Mawatha,
Colombo
Mobile : -
E-mail :-
Professor V.S.D. JAYASENA
Associate Professor
Department of Computer Science and Engineering,
Faculty of Engineering,
University of Moratuwa
Sri Lanka
Mobile : -
E-mail :-