Developer success story
I am Lahiru Tharanga, who is working as the Remote Tech Lead for the SuntechIT Premium Talent Platform. Before I joined SuntechIT Pvt Ltd, I had been working with an Australian-based company that followed the latest .NET technologies and new methodologies. Those products were used by over 300 clients in Australia, UK, Singapore, and Canada. I have over 16 years of experience in both Software engineering and Tech Lead (Remote) job roles.
After I joined SuntechIt Pvt Ltd, I was assigned to a new client called NTI (National Transport Insurance) in Australia on January 10, 2022. I was working as a Technical Lead (Remote) with two team members.
Our first project after joining the NTI was to build a Logistics Safety Solutions (LSS) system. And it was used by leading supply chains in Australia and New Zealand.
Their primary objective at that time was to implement a new system with a concept called CoR (Chain of Responsibility). Before we joined, a third-party company completed the LSS system; however, they were no longer under contract with the NTI.
They expected the following requirements from our team:
- Develop new features and functionalities without discontinuing their day-to-day functionalities.
- Improve the performance of the new system.
- Maintainability and a proper deployment plan.
Initially, I had to face the following challenges:
- There was no documentation for the previous system.
- Only one developer knows about the existing architecture.
- A legacy programming language with bad coding practices (vb.net).
- Lack of knowledge about the existing system.
I created a new middle layer that can communicate with the old system and the new system. With that approach, we used existing business objects in the new system. Both systems were run under one project and one URL. We implemented the most appropriate functionalities and new features in the new system. But the final goal was to remove the old system step by step.
The main advantages of this approach are:
- Seamlessly change the new approach without interrupting client functionality.
- Easy to test.
- Improve performance and features one by one.
Initially, we divided application modules among each other and learned domain knowledge. After that, we arranged knowledge-sharing sessions and improved our domain knowledge. We documented all the technical and domain knowledge. (Confluence page in Jira)
To improve the quality of the code, we had code review sessions with each other. But regularly, I had to review the progress and guide my team members.
We introduced new agile methodologies such as sprints, story point estimations, and daily meetings. All the Features and Bugs were tracked with the Jira Application tool. At the end of each sprint, we had a sprint retrospective session with all members.
The following tasks were discussed in this session:
- What went well?
- What went wrong?
- What needs to be improved?
My next main task was to implement and maintain the Azure CI/CD pipeline. I successfully implemented this CI/CD pipeline for all the web projects and the Web APIs. By using this process, we could automate all deployments for each environment (Testing and production).
Then I connected user training functionality in the existing system to Scorm Cloud. (It provided the communication methods and data models that allow eLearning content and LMSs to work together.)
Finally, we successfully delivered the most necessary functionalities with the new approach by satisfying all stakeholders.
Now SuntechIT’s remote premium developers’ platform has assigned me as the Tech Lead to a Swedish Company called Pini since January 2023. I have been easily adapting to the great Swedish working culture, which gives value to maintaining a work-life balance. That, in my opinion, resulted in the production of high-quality output products. Currently, I am using the latest technologies in .Net Core and the latest version of the Angular client library.