Lakshitha Vikum Dayasena, Optimization Developer in Pannipitiya, Western Province, Sri Lanka
Lakshitha Vikum Dayasena

Optimization Developer in Pannipitiya, Western Province, Sri Lanka

Member since December 9, 2020
Lakshitha has 11 years of experience in software development, with eight years in charge of architecture. He has designed and developed COTS simulation products used by various militaries and an integration platform for uncrewed vehicles. He is a specialist in C++ and has experience developing with C#, Java, JavaScript, and NSIS. Multithreading, cache optimizations, and performance optimizations are some of Lakshitha's strengths. He has trained more than 30 developers.
Lakshitha is now available for hire

Portfolio

  • TENGRI UAV
    Yocto, GDB, GCC, NetBeans, Linux, Valgrind, ARM, i.MX6, OpenGL, OpenGL ES...
  • SimCentric Technologies
    C++11, C#, JavaScript, NSIS, Java, Visual Studio, Windows, DIS protocol...
  • SimCentric Technologies
    C++, API Design, Windows, Visual Studio, Cppcheck, Intel Parallel Studio...

Experience

  • C++ 11 years
  • Object-oriented Programming (OOP) 11 years
  • API Design 10 years
  • Standard Template Library (STL) 10 years
  • Software Architecture 10 years
  • Optimization 10 years
  • Concurrency 10 years
  • Visual Studio 8 years

Location

Pannipitiya, Western Province, Sri Lanka

Availability

Part-time

Preferred Environment

Windows, Visual Studio, Linux, NetBeans, GCC, Cppcheck, Intel Parallel Studio, Valgrind, GDB, Jenkins

The most amazing...

...thing I've designed and developed is an uncrewed vehicle integration platform helping custom builders add gimbals, control stations, and redundant comms meshes.

Employment

  • Technical Director

    2018 - PRESENT
    TENGRI UAV
    • Designed and developed TengriWifi, a wifi-based mesh network with less than 1ms latency end to end. Supports encrypted and unencrypted traffic with configurable redundancy and bandwidth strategies.
    • Optimized application memory bandwidth usage to reduce video capture jitter and latency. Zero copy (DMA transfer-based) libraries from NXP were used. Composite video capture latency was around 30ms, and HDMI input was around 60ms.
    • Architected, designed, and developed Tengri firmware for the in-house designed and manufactured custom hardware. This includes a safe and secured update system, four composite video inputs, an HDMI input, an HDMI output, and a composite video output.
    • Designed a GUI with CEGUI to be navigated with a radio controller joystick. It shows up to five video feeds with the main video feed at 720P 30FPS. This also overlays telemetry (attitude, altitude, and battery information) from the uncrewed vehicles.
    • Designed and developed an action system to control GUI and uncrewed vehicles with joysticks and other input devices. This allows builders to use switches and joysticks of their choice in creating easy-to-use control stations for their systems.
    Technologies: Yocto, GDB, GCC, NetBeans, Linux, Valgrind, ARM, i.MX6, OpenGL, OpenGL ES, WiFi, GStreamer, Cppcheck, Software Architecture, Reverse Engineering, ArduPilot, MAVLink, C++20, Standard Template Library (STL), Linux Device Driver, API Design, C, CEGUI, C++, Boost, Object-oriented Programming (OOP), Subversion (SVN), GUI Design, XML, Concurrency, Optimization, Profiling, RESTful Development, RESTful APIs, Embedded Systems, Embedded Software, C++14, C++17, C++11, OpenCV, JSON, Distributed Systems, Multithreading, Bash, RS-232, Pair Programming, Test-driven Development (TDD), Continuous Integration (CI), Continuous Delivery (CD), Code Review, Model View Viewmodel (MVVM), Architecture, Leadership
  • Software Architect

    2014 - 2018
    SimCentric Technologies
    • Designed and developed the Ambience product suite to add civilians and vehicles to simulations running on VBS3. This included a game AI engine based on Entity systems. This also had behavior trees and recast-based navigation.
    • Designed and developed the InstructorMate product for training. This supported up to 40 Windows PCs to be viewed and controlled by a trainer.
    • Created coding standards for C++, C++/C API development, and NSIS development.
    • Designed and oversaw the implementation of continuous integration pipelines. This included a Microsoft symbol server to support internal and external crash dump analysis and easier debugging of software.
    • Designed multiple APIs for easy usage while having versioning and robust error handling. Some APIs were made thread-safe if required.
    Technologies: C++11, C#, JavaScript, NSIS, Java, Visual Studio, Windows, DIS protocol, recast navmesh, CEGUI, Jenkins, Jira, Artifactory, Microsoft Symbol Server, Intel Parallel Studio, Cppcheck, Redsim DIS link monitor, API Design, C, Standard Template Library (STL), Software Architecture, C++, Boost, Object-oriented Programming (OOP), Subversion (SVN), GUI Design, WinDbg, Eclipse IDE, XML, Concurrency, Optimization, Profiling, C++14, Linux, NetBeans, GCC, GDB, Yocto, ARM, i.MX6, OpenGL, OpenGL ES, Reverse Engineering, ArduPilot, MAVLink, OpenCV, Microsoft Application Verfier, NuGet, DirectX, Eclipse, Windows Presentation Foundation (WPF), XAML, JSON, C# interop, FFmpeg, JavaScript 6, React, Redux, Babel, Atom, Data-driven Programming, Lock-Free Programming, RESTful APIs, RESTful Development, Distributed Systems, .NET, Embedded Systems, Embedded Software, Multithreading, Bash, Pair Programming, Test-driven Development (TDD), Continuous Integration (CI), Continuous Delivery (CD), Doxygen, Agile, Scrum, Kanban, Code Review, Microsoft Visual Studio, Model View Viewmodel (MVVM), Architecture, Leadership
  • Associate Architect

    2014 - 2014
    SimCentric Technologies
    • Designed and implemented the Ambience product suite.
    • Trained employees in C++, debugging, and API design.
    • Oversaw setting up symbol servers and source servers.
    Technologies: C++, API Design, Windows, Visual Studio, Cppcheck, Intel Parallel Studio, Jenkins, Software Architecture, Standard Template Library (STL), C++11, DIS protocol, recast navmesh, Jira, Artifactory, Microsoft Symbol Server, Redsim DIS link monitor, C, Object-oriented Programming (OOP), Boost, WinDbg, Microsoft Application Verfier, Subversion (SVN), Windows Presentation Foundation (WPF), GUI Design, XAML, Bamboo, Data-driven Programming, Concurrency, Lock-Free Programming, Optimization, Profiling, RESTful Development, RESTful APIs, Distributed Systems, .NET, Multithreading, Pair Programming, Continuous Integration (CI), Continuous Delivery (CD), Doxygen, Agile, Scrum, Kanban, Code Review, Microsoft Visual Studio, Model View Viewmodel (MVVM), Architecture, Leadership
  • Senior Software Engineer

    2012 - 2013
    SimCentric Technologies
    • Designed and implemented the Ambience product suite.
    • Implemented a behavior tree and created behaviors used by the products.
    • Optimized the engine for lower memory and processor usage.
    Technologies: C++, Multithreading, Windows, Visual Studio, Cppcheck, Software Architecture, Standard Template Library (STL), DIS protocol, recast navmesh, Jira, Redsim DIS link monitor, Object-oriented Programming (OOP), Boost, Subversion (SVN), Windows Presentation Foundation (WPF), GUI Design, Bamboo, API Design, Data-driven Programming, Concurrency, Optimization, Profiling, Distributed Systems, .NET, Pair Programming, Continuous Integration (CI), Continuous Delivery (CD), Doxygen, Agile, Scrum, Kanban, Code Review, Microsoft Visual Studio, Leadership
  • Software Engineer

    2011 - 2012
    SimCentric Technologies
    • Initiated a rewrite of Urban Ambience product to have better performance and to be reusable.
    • Architected, designed, and implemented a multithreaded game AI engine based on entity systems. This included a plugin system as well.
    • Introduced unit testing to the company. This helped speed up the development of the Ambience engine.
    Technologies: C++, Windows, Visual Studio, NetBeans, Standard Template Library (STL), Java, DIS protocol, Jira, Redsim DIS link monitor, Object-oriented Programming (OOP), Boost, Subversion (SVN), Bamboo, Concurrency, Optimization, Profiling, Distributed Systems, Multithreading, Pair Programming, Continuous Delivery (CD), Agile, Scrum, Code Review, Microsoft Visual Studio
  • Associate Software Engineer

    2010 - 2010
    SimCentric Technologies
    • Designed and implemented Maritime Pattern of Life product.
    • Implemented the XML loader for Urban Ambience and Maritime Pattern of Life.
    • Implemented Bently-Ottmann algorithm to combine sea lane data into a graph.
    Technologies: C++, XML, Windows, Visual Studio, NetBeans, Standard Template Library (STL), DIS protocol, Jira, Redsim DIS link monitor, Boost, Subversion (SVN), Agile, Scrum, Microsoft Visual Studio

Experience

  • Tengri Platform
    http://tengriuav.com/

    A platform helping uncrewed vehicle builders integrate gimbal cameras, redundant communications systems, control stations, and flight controllers. This is installed on an in-house designed small embedded device based on i.MX6 processor. I architected, designed, developed, and managed the software development team. This supports safe updates, a factory reset, 15s startup, redundant communications low latency (less than 1ms) with COTS USB wifi modules supporting monitor mode, visualize up to 5 video streams together, video recording, controlling flight controllers and other payloads with joysticks and other input devices. A lot of optimizations were done to support 5 video streams with low latency as the processor memory bandwidth is a bottleneck. This was developed as a multithreaded application heavily dependent on property classes similar to that in C#. This sped up development by reducing the complexity of multi-threaded code. A CEGUI front end with frame buffer mode allows the user to control the GUI using an RC joystick or a keyboard.

  • Ambiance Product Suite
    https://www.simct.com/ambience/

    A C++ application to add civilians and vehicles to VBS3 simulations. This supports up to 1,000 entities. The entities go about tasks that can be assigned or can move around the area randomly while reacting to threats. A large map support was implemented with dynamic tile generation. This is based on an entity-systems-style game AI engine. It is multithreaded. A Java NetBeans platform-based editor is also included.

  • Live Guppy Fish Sorter

    A machine for binning live Guppies based on length. This uses video from a camera to measure the length when the fish is going down a channel of water. The fish are lured into the channel with various tactics like pulsing water jets and incoming water flows. The machine consists of a PC, camera, water pump, water tank, fish bins, and a solenoid-based fish sorting gate system.

  • Artifactory Plugin for Jenkins

    This is an internal plugin to integrate Artifactory with Jenkins build plans. I designed the plugin and mentored the developer. This supports adding and removing items from the Artifactory server with build plans.

  • Crash Dump Support

    A symbol server was set up and integrated to build processes to support C++ DLL debugging with components from NuGet packages. This also enabled remote debugging and crash dumps sent by customers to be easily debugged. This reduced the time to identify issues on the customer side from four days to less than a day. Also, debugging on developer PCs was faster as they did not need to build all libraries to get debug information. Customers were provided with private symbol stripped PDBs. Internally PDBs were source indexed to show source files from the repository.

  • GuiMate
    https://www.youtube.com/watch?v=GFpKeAsU9hI

    This product adds GUI generation to VBS3 using C++ plugins. This is developed in C++ on Microsoft Visual Studio and uses the CEGUI library. I designed the API. The product DLL is developed in C++ and shows a C API wrapped to C++ on the customer side with a header-only library. This was done to avoid Visual Studio C++ runtime dependence. This also helps with porting to other languages.

  • Installer Revamp

    A common installer codebase was created with unit-tested components. This was done to reduce bugs and speed up development. The time to create a new installer went from two weeks to one day. It was done in NSIS. I mentored the developer and designed the functions.

  • InstructorMate
    https://www.youtube.com/watch?v=3e5F0fyoJMU

    This is a tool for training for computer labs. The instructor can monitor the trainees' PCs. The instructor can view the low latency screen captures from all PCs and also control a PC if required. This can support up to 40 PCs. This was done in C# WPF for GUI and C++ for windows related functions. The system works out of the box without configuration for a local lab and only needs configuration for use through the internet.

  • MediaMate
    https://www.youtube.com/watch?v=z8oFJh5WCMk

    MediaMate helps stream and record the VBS3 screen. This was developed in C++ on Visual Studio. This used VBS3Fusion, GuiMate, and FFMpeg libraries. I designed the application and was involved with implementation.

  • NetRTE

    This is a web-based real-time editor for Virtual Battle Space 3(VBS3) military simulator. A C++ DLL communicates with VBS3 via VBS3Fusion, and a node server connects to it, providing the web app. This uses C++ and JavaScript (ES6) and Node.js, React, Redux, Babel, and Atom editor as an IDE. Minifying was also done.

  • StrikeFusion

    This is the C++ and VBS3Script API for close air support training tool Strike. This was developed as a C++ DLL exposing a C API wrapped into C++ with a header-only library. It was done to remove Microsoft visual C++ runtime dependence leaking through the API. This used Java, C++, and VBS3script for development.

  • Set up Delivery Pipeline

    The delivery pipeline consists of Jenkins, Artifactory, and NuGet. Any product can be built and released with a few clicks. This included storing debug symbols and encryption for licensing. It also involved other projects to develop the needed Jenkins plugins and tools to fix issues with Microsoft Symbol Server. This was initially implemented with Bamboo but was later changed due to changing requirements.

  • Symbol Server Plugin for Jenkins

    This was an internal project to add the Microsoft symbol server functionality to Jenkins. I mentored the developer and designed the plugin. This is a Java-based plugin. It can add and remove PDB files to a symbol server.

  • Hexapod Uncrewed Vehicle (First Place)

    A hexapod uncrewed vehicle was built for the Arthrobot competition organized by IIT Bombay. This had 12 servo motors driven by a PIC microcontroller. This had two different gaits for fast movement and clearing obstacles. This was remotely controlled. It can blend directional and turning movements to generate PWM for all 12 motors.

  • Compression and Tensile Strength Testing Machine

    A lightning strike damaged a 200-ton strength testing machine at the university. This was a charity project. The control system was damaged beyond repair. We created new circuits for load cell processing. A PC was used instead of a custom device. A PIC microcontroller did the A/D conversion and sent the data to a PC via RS232. It also controlled the hydraulics. A WPF application controlled the system. It allowed various waveforms to be generated in addition to the standard way of measuring.

  • Toptal React Academy

    The Toptal React Academy is an exclusive learning program that teaches the React framework to select members of the Toptal network. After a month of study, all graduates are tasked with completing a 30-40 hour final project to build and deliver a React app from scratch.

Skills

  • Languages

    C++11, C, C++, XML, C++14, C++17, C#, JavaScript, Java, XAML, JavaScript 6, Bash
  • Libraries/APIs

    Standard Template Library (STL), OpenCV, OpenGL, OpenGL ES, DirectX, FFmpeg, React
  • Tools

    Visual Studio, Cppcheck, Intel Parallel Studio, Subversion (SVN), MikroC PRO, Microsoft Visual Studio, GCC, Valgrind, GDB, Jenkins, Jira, Artifactory, WinDbg, NSIS, Eclipse IDE, NuGet, Babel, Atom, Bamboo
  • Paradigms

    Object-oriented Programming (OOP), Data-driven Programming, Pair Programming, Test-driven Development (TDD), Continuous Integration (CI), Continuous Delivery (CD), RESTful Development, Agile, Scrum, Kanban, Model View Viewmodel (MVVM)
  • Platforms

    Linux, NetBeans, Windows, Eclipse
  • Storage

    JSON
  • Other

    WiFi, Software Architecture, C++20, DIS protocol, recast navmesh, Microsoft Symbol Server, Redsim DIS link monitor, Microsoft Application Verfier, API Design, Concurrency, Optimization, Profiling, RESTful APIs, Embedded Systems, Embedded Software, Multithreading, RS-232, Code Review, Architecture, Leadership, ARM, i.MX6, Reverse Engineering, CEGUI, GUI Design, C# interop, Distributed Systems, Doxygen, Computer Architecture, Yocto, ArduPilot, MAVLink, Linux Device Driver, Lock-Free Programming
  • Frameworks

    GStreamer, Boost, Windows Presentation Foundation (WPF), Redux, .NET

Education

  • Bachelor of Science Degree in Electronics and Telecommunication
    2005 - 2009
    University of Moratuwa - Sri Lanka

Certifications

  • Toptal React Academy Graduate
    AUGUST 2021 - PRESENT
    Toptal, LLC

To view more profiles

Join Toptal
Share it with others