Kasun Don
Senior Software Engineer
Personal Info
ad0oys@r.postjobfree.com
Austin, Texas
Education
Skills
Java
Kotlin
Spring Boot
Apache Kafka
AWS
Google Cloud Platform
CQRS
Maven
Gradle
Git
With over 12 years in software architecture and development, I've cultivated a deep passion for distributed computing, automation, and Domain-Driven Design (DDD). My agile development journey spans various sectors, underpinned by a domain- rst approach and a commitment to clean code. As a hands-on team leader and open- source contributor, I thrive in both collaborative and independent settings, consistently aiming for innovation and e ciency. Expert in a wide array of technologies including Java, Kotlin, Spring Boot, and Apache Kafka.
Delivered an event-driven system processing over 100K events per second.
Pro cient in cloud-native development with platforms such as AWS and GCP.
Demonstrated leadership with hands-on management
experience.
Passionate about mentoring, pair programming, and Test- Driven Development (TDD).
HND in Software
Engineering
NTEC Institute
2009
Bsc. in Computer Science
(3.97)
AOEI Open University
2017
Summary
Work Experience
Senior Software Engineer, Smarsh (Contract), Portland, Oregon, USA November 2021 - Present
At Smarsh, a leading SaaS archiving platform, I serve as a Senior Software Engineer on the API-platform team. Our team standardizes company-wide coding and API practices, develops supporting tools for service teams, and transitions from monolithic systems to microservices. My key roles include strategizing microservice implementation, and architectural design, mentoring junior sta, and leading a PoC for an API usage billing system now in pre-production. Tech Stack: Java 11, Kotlin, Terraform, Spring Boot, Spring Data, Swagger, Junit5, Mockito, AWS, Kafka, Cloud Foundry, Gradle, Concourse.
Docker
Kubernetes
Event Sourcing
Debezium
Amazon S3
Spring Data
JPA
Agile
Apache Beam
Apache Camel
Apache Flink
Apache Spark
BigQuery
BigTable
CI/CD
CloudFormation
Design Patterns
Groovy
Hazelcast
NodeJS
AngularJS
ReactJS
Redux
JQuery
Javascript
Senior Software Engineer, Policy Expert (Contract), London, England June 2021 - November 2021
The PolicyExpert is a UK insure-tech startup o ering car and home insurance, I'm a Senior Software Engineer focused on their payment service provider migration. I maintain existing Web and Backo ce payment ows, implement new API speci cations for full and loan payments, and work to decouple legacy payment services hindering the migration. Additionally, I contribute to the new payment architecture and mentor junior team members.
Tech Stack: Java 8, Java 11, Kotlin, Spark, Groovy, Spock, AWS, GitHub Actions, TeamCity, SQS, SNS, CloudFormation, TDD, OpenAPI, Amazon Fargate, ECS, CQRS, Event Sourcing
Tech Lead, Accenture / DWP (Contract), London, England January 2021 - June 2021
Part of Accenture, I was placed under the DWP - Future Payments project, an initiative to modernize the UK's largest payment system at the Department of Work and Pensions. As a Tech Lead, I focused on designing software components aligned with DWP's strategic payment architecture. My responsibilities included advocating best practices with Kafka, promoting SOLID principles, mentoring team members, conducting code reviews, and personally delivering key software components.
Tech Stack: Java 8, Java 11, Spring Boot, Spring Data, Swagger, Junit5, Mockito, AWS, TDD, BDD, Con uent Kafka, Kubernetes, Gov Cloud. Senior Software Engineer, OpenCredo / OnBoarding Platform at 10X Banking (Contract), London, England
November 2020 - January 2021
I collaborated with the 10x Banking - Provisioning team on a challenger banking project, focusing on microservices that facilitate customer onboarding through various checks, including credit and KYC. My primary role was to enhance processing capacities by introducing Java and Kafka-based services. Additionally, I mentored in-house developers, guiding them on best practices and potential pitfalls.
Tech Stack: Java 8/11, Kotlin, Spring Boot, Spring Data, Apigee, Swagger, Pact Testing, JUnit, Mockito, AWS, Con uent Kafka, Kubernetes.
Senior Software Engineer, Expedia Inc (Contract), Austin, TX January 2020 - November 2020
TypeScript
XML
HTML
J2EE
JUnit
PHPUnit
Spock
Mockito
Jasmine
Jenkins
TeamCity
Linux Shell Scripting
HashiCorp Vault
Memcache
Redis
CouchDB
Elasticsearch
DynamoDB
MongoDB
MySQL
PostgresSQL
PHP
Python
SRE
Prometheus
I'm part of Expedia's Data Platform team, managing a streaming platform for our partners, handling roughly 20 billion messages and processing around 40TB of data daily. As a Senior Software Engineer, I address the growing needs of our partners in data streaming. My responsibilities include maintaining Kafka and stream processing libraries, feature development, troubleshooting, solution design, mentoring, and code reviews. I've also contributed to open-source projects at Expedia and developed jobs using Apache Flink to facilitate distributed stream processing across regions. Tech Stack: Java 8, Java 11, Docker, Kubernetes, Apache Kafka, Kafka Connect, Apache Avro, Schema registry, Hive, AWS, Apache Flink, Amazon S3, TDD, Kotlin, Go, Operator SDK, Terraform Tech Lead, Sainsbury's Argos - Argos Card Credit BNPL Platform
(Contract), London, England
August 2018 - January 2020
At Argos Card Credit BNPL Platform, I manage the Argos Card Credit Application services, handling approximately 30K applications weekly across digital platforms. My role entails regular maintenance and enhancing the customer experience by streamlining their journey. I've contributed to the development of a new architecture for the Argos Card application engine, addressing challenges from the legacy system and ensuring scalable, on-demand growth. This new platform emphasizes swift credit decisions through stream processing and event sourcing. Our team is responsible for the full lifecycle of what we develop, overseeing infrastructure and AWS deployments using CI/CD pipelines. Moreover, we're transitioning from Java services to Kotlin, with all new developments being undertaken in Kotlin.
Tech Stack: WebSphere Message Broker, Spock, Mockito, Java 8, Java 11, Spring Boot, Spring Data, Spring Security, Swagger, ReactJS, Redux, NodeJS, PostgreSQL, DynamoDB, Docker, Marathon, Kotlin, Consul, Vault, AWS, Kafka, Kafka Streams, Jenkins, Git, Hazelcast, Kubernetes, Terraform, Helm.
Senior Software Engineer, Sky Betting and Gaming - Oddschecker Platform (Contract), London, England
March 2018 - August 2018
I'm actively participating in a transformative project at the Oddschecker, aimed at modernizing a legacy system to enable real- time data ingestion with millisecond latency.
RabbitMQ
WebSphere Message Broker
SQS
SNS
Spring Security
SVN
Swagger / OpenAPI
Terraform
Puppet
Laravel
HashiCorp Vagrant
Zend
Symfony2
Languages
English
Links
Github
Website
My core responsibilities encompass researching and documenting both GCP and open-source tooling applicable to our objectives. I'm deeply involved in sprint planning, feature development, system design, and code reviews. I've successfully delivered several microservices crucial to the project and played a pivotal role in architect a rapid data ingestion pipeline. Additionally, I continuously contribute to shaping and evolving the overarching architecture of the project.
Tech Stack: Java 8, Swagger, Mockito, Docker, Kubernetes, Google Cloud Platform,Data ow, PubSub, BigTable, Elasticsearch, Prometheus, RabbitMQ, Apache Camel, Spring Boot, Spring Data, Apache Beam
Senior Software Engineer, AWIN Inc, London, England June 2013 - March 2018
At AWIN Inc, I'm integral to a Data and reporting team, managing vast e-commerce data from global vendors. Faced with escalating demand, we transitioned our legacy system to a more scalable Transaction Processing application. This application, built with Java8, Apache Kafka, Apache HBase, and Apache Spark Streaming, e ciently processes up to 80K events per second, amalgamating click and sale data before storing it in databases like MySQL and Elasticsearch.
Our architecture utilizes real-time event streaming in Kafka, processed across distributed servers, ensuring optimal throughput. I've also championed the creation of low-latency reports and migrated legacy PHP applications to Java microservices. Our development approach is grounded in TDD and DDD, ensuring robust and domain-speci c applications. Beyond core development, I monitor system health, manage bugs, and work within a Kanban framework. All our applications are deployed and scaled using AWS. Tech Stack: Java 7/8, Groovy, Spring, Debezium, JUnit, Spock, Apache Kafka, Apache Hadoop, HBase, Elasticsearch, Apache Spark, MongoDB, MySQL, RabbitMQ, Zend1/2, Docker, Jenkins, Vagrant, TravisCI, AngularJs, NodeJs, PHP, Symfony2, Silex, PHPUnit, PHPSpec and AWS.
PHP Developer, IKI Group, London, England
May 2011 - December 2012
In my role at IKI Group, I took the lead in both maintaining and enhancing our in-house CRM software. Utilizing technologies such as PHP, MySQL, JavaScript, and Linux shell scripting, I ensured the software met the evolving needs of our business. Additionally, I was entrusted with provisioning new live environments on RHEL-based systems, namely CentOS and Fedora.
Our team championed agile methodologies, speci cally adhering to the scrum framework with fortnightly sprints for continuous feature delivery. On a separate initiative, I developed a company intranet portal using Codeigniter and was instrumental in creating scheduled reports, executed seamlessly via cron jobs.
Tech Stack: HTML, CSS, JS, JQuery, MySQL, PHP, Zend2, Codeignitor Courses
AWS Certi ed Developer Associate, Amazon Web Services March 2018