Prabath Weerasinghe

Prabath Weerasinghe

$30/hr
Distributed Systems, Microservices and Event Driven Architecture.
Reply rate:
-
Availability:
Part-time (20 hrs/wk)
Location:
Kottawa, Colombo, Sri Lanka
Experience:
9 years
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 ​ :-​
Get your freelancer profile up and running. View the step by step guide to set up a freelancer profile so you can land your dream job.