Asanka Wickramasinghe, Developer in London, ON, Canada
Asanka is available for hire
Hire Asanka

Asanka Wickramasinghe

Verified Expert  in Engineering

Software Developer

Location
London, ON, Canada
Toptal Member Since
October 27, 2015

Asanka is an experienced software engineer who is motivated and results-oriented. His software development experience includes but not limited to server/client design and development, user interface design, and protocol stack development. He is familiar with Agile methods used in software development. He enjoys working as an independent and as a part of a team and always delivers excellent results.

Portfolio

Relimetrics, Inc.
C++, React, Node.js, Java, Jenkins, Conan, JavaScript, Back-end, APIs, REST...
Freelance
PHP, Java, C++, Boost.Asio, Python, Back-end, APIs, REST...
AddressPro, LLC
C, C++, Python, FreeSWITCH, Visual Studio Code (VS Code), Bitbucket, Algorithms...

Experience

Availability

Full-time

Preferred Environment

Git, Qt Creator, Windows, Linux

The most amazing...

...project I've worked on is the 'MouthWatch' application. I integrated a USB webcam with Qt libraries using Direct Show. Coded every module from the ground up.

Work Experience

Software Engineer

2017 - PRESENT
Relimetrics, Inc.
  • Worked as a C++ engineer helping the development of ReliAudit, the main product. Used the latest C++ standards (C++17 and C++20) and features such as templates, Lambda functions, SFINAE, and Concepts.
  • Created a build pipeline using CMake, Conan, and Jenkins in a multi-user environment. Got improved build times using build cache and Ninja. Developers were enabled with both Visual Studio (for Windows) and Qt Creator (for Linux).
  • Worked as a JavaScript engineer to help develop the ReliUI web framework using React and Redux. ReliUI enabled users to create simple and complex web apps using a JSON schema.
  • Maintained Relimetrics AWS and Azure accounts. Involved in SSL certificate handling (DigiCert and Let's Encrypt) and binary signing software (EV key).
  • Developed HTTP client and server modules using the C++ Asio framework.
Technologies: C++, React, Node.js, Java, Jenkins, Conan, JavaScript, Back-end, APIs, REST, UDP, Amazon Web Services (AWS), Embedded C++, Object-oriented Programming (OOP), SQL, Qt 5, Graphical User Interface (GUI), User Interface (UI), Desktop App Development, OpenCV, Docker, React Redux, GNU, Express.js, Visual Studio Code (VS Code), Bitbucket, Algorithms, Front-end, CMake, RabbitMQ, MySQL, C++17, C++14, Refactoring

Software Developer

2008 - PRESENT
Freelance
  • Created a screen snapshot software for a remote audit system. Used C++ and OpenCV in a Windows environment. The software ran as a Windows service, uploading screen snapshots to AWS S3 bucket. Used GitLab and Visual Studio.
  • Developed a Windows app called "Snippets" that can load multiple contents (documents, photos, videos, webpages). Used C++ and Qt Creator in the Windows environment.
  • Created a PHP back end for an Australian internet provider for ADSL service eligibility. Worked with a SOAP API to pull data for a given customer address. The system ran on an AWS Linux server.
  • Integrated a hardware camera to a remote dental health application. Worked with camera drivers and pulled data from the camera to the application using C++ in a Windows environment. Used Gitorious and Visual Studio.
Technologies: PHP, Java, C++, Boost.Asio, Python, Back-end, APIs, REST, Amazon Web Services (AWS), Embedded C++, Arduino, Object-oriented Programming (OOP), Graphical User Interface (GUI), User Interface (UI), React Redux, PySide, GNU, Express.js, Visual Studio Code (VS Code), Bitbucket, Algorithms, Front-end, CMake, RabbitMQ, Redis, MySQL, RTP, C++17, C++14, Conan, GitLab

Software Engineer

2022 - 2022
AddressPro, LLC
  • Set up FreeSwitch installation on AWS instance and connected SIP trunks. Worked with SIP provider to resolve connection parameter problems.
  • Implemented a dial plan that can send and receive Fax. Preliminary tests were done using command line tools.
  • Created a complete POC with REST API to send and receive fax. Demonstrated using multiple fax numbers.
Technologies: C, C++, Python, FreeSWITCH, Visual Studio Code (VS Code), Bitbucket, Algorithms, MySQL

Qt Developer

2019 - 2020
Simulations Plus
  • Worked on UI side of the main simulation product (GasgroPlus) using Qt/C++. Created various UI panels from design mockups.
  • Created complex custom widgets and Qt Creator plugins for those widgets. Helped create custom Qt tables with header widgets.
  • Helped implement model/view architecture for the main product. Used the latest C++ features (templates, Lamdas, and SFINAE).
Technologies: C++, Qt, Graphical User Interface (GUI), C++17, C++14, Refactoring

Senior Associate

2015 - 2020
Cognizant
  • Designed and implemented the TV GUIDE User Agent app build pipeline build system. Used Maven and Jenkins tools and technologies.
  • Worked as a DevOps Engineer for Charter Communications. Supported EBIF Application infrastructure in their Production Markets. Worked with Linux, PHP, and Java technologies.
  • Designed and developed Video on Demand system load tester. Worked with the APIs of the VOD vendor to develop a load-generating system to test the load handling of the system. Used C++, JavaScript, and HTML technologies.
  • Worked as a DevOps Engineer for Charter Communications CTEC Lab. Looked after infrastructure for the QA and testing team. Developed tools to be used to carry out day-to-day activities. Worked on Linux systems.
Technologies: DevOps, Docker, C++, Python, JavaScript, PHP, Java, APIs, Video on Demand (VOD), Linux, Visual Studio Code (VS Code), Bitbucket, Algorithms, Redis, Session Initiation Protocol (SIP), MySQL

Support Engineer (Dev Ops)

2015 - 2019
Charter Communications
  • Supported a TV guide platform for the lab environment which included implementing the monitoring tools using C++, Python, and JavaScript; worked with Tomcat, Cassandra, and Oracle technologies.
  • Contributed to the software testing and bug reporting process; used Jira as the incident reporting tool.
  • Trained newcomers with the technology stack used in the product line; also created the training documents.
Technologies: Jenkins, Cassandra, MongoDB, PySide, Visual Studio Code (VS Code), Bitbucket, Algorithms, SIP, Redis, Session Initiation Protocol (SIP), MySQL, RTP

Software Developer

2011 - 2013
University of Western Ontario
  • Designed and implemented the UI for an image processing software used for AI training.
  • Implemented image processing algorithms in C++ language using OpenCV.
  • Integrated different systems of image processing pipelines.
  • Wrote test cases covering various scenarios and tested software.
  • Managed software releases with versioning and dependency managing.
Technologies: MATLAB, OpenCV, C++, Qt, Arduino, Object-oriented Programming (OOP), Graphical User Interface (GUI), User Interface (UI), Computer Vision, Desktop App Development, Visual Studio Code (VS Code), CMake, MySQL

Core Network Engineer

2008 - 2011
Dialog Axiata PLC
  • Implemented the SIGTRAN protocol stack, a health check system for production servers, and customer care software.
  • Prepared RFPs for new products to ensure interoperability of different vendors and the latest GSM standards.
  • Provided Linux server administration, including operating system updates and system backups.
Technologies: 3G, GSM, Linux, PHP, C, TCP/IP, UDP, 3GPP, SIP, Session Initiation Protocol (SIP), MySQL, RTP

Snake Game Implementation

The infamous snake game, which I implemented using Qt QML and C++. My idea was to use the QGameCanvas component to separate the business logic from the gaming engine. This is an example use of QGameCanvas, also included in this project. I also chose to use QML to easily port the game into mobile devices.

MouthWatch' Client Application

https://www.mymouthwatch.com
Worked as a remote contractor. Involved integration of USB web cam with a hardware button and communication with a remote server using a REST Api. Integrated Windows Direct Show drivers with Qt libraries.

Di-Centric Chromosome Identifier

Uses image processing technologies to identify centromere locations in a chromosome from a cell image. Qt is used for UI design and Intel TBB used for task parallelization. This is a high throughput application designed to process hundreds of thousands of images quickly and efficiently.

Languages

Python, C++, JavaScript, C++14, C++17, C, Embedded C++, Java, SQL, PHP, QML

Frameworks

Qt, Qt 5, Express.js

Libraries/APIs

React, React Redux, PySide, Node.js, OpenCV, Win32 API

Tools

Git, Qt Creator, Conan, Bitbucket, CMake, RabbitMQ, GitLab, MATLAB, Jenkins, FreeSWITCH

Paradigms

REST, Object-oriented Programming (OOP), Desktop App Development, Refactoring, DevOps

Platforms

Amazon Web Services (AWS), Visual Studio Code (VS Code), Windows, Linux, Arduino, Docker, Mobile

Other

GNU, Boost.Asio, Back-end, APIs, Algorithms, TCP/IP, UDP, Graphical User Interface (GUI), User Interface (UI), Front-end, Network Stack, 3GPP, SIP, Session Initiation Protocol (SIP), RTP, GSM, 3G, Video on Demand (VOD), Models, Computer Vision, Games, Gaming

Storage

Redis, MySQL, MongoDB, Cassandra

2013 - 2014

Master's Degree in Software Engineering

University of Western Ontario - Ontario, Canada

2004 - 2008

Bachelor of Science (Hons) Degree in Electronic Engineering and Telecommunications

University of Moratuwa - Sri Lanka

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