Dasith Wijesiriwardena

Information & Communications Technology

Software Design Software Development Software Architecture .net core Event Sourcing Domain Driven Design

Melbourne, Australia

Dasith Wijesiriwardena

Senior Developer - Readify

Full stack .NET dev with distributed systems focus. Keen problem solver and improving cricketer. Currently working at Readify.


Current sessions

Behaviour Driven Development With SpecFlow and Selenium

Behaviour Driven Development’s appeal and benefits are legion. To get the most out of the approach you need the proper tooling. I will explore how you can use SpecFlow and Selenium to test your system end to end while not losing focus of business requirements throughout. You will see how much value this can add to your software development practice and why many people use this combo. I will touch on the benefits of BDD and dive into some code samples to showcase the workflow during the presentation.

First delivery @ SeleniumDay 2018 - https://1point21gws.com/selenium/melbourne

Event Sourcing, from ancient Mesopotamia to modern software

Patterns are all around us, and in software, the design patterns we choose can give us the power of the ancient kings and queens. Event Sourcing is based on the idea that storing events as they happen is better than storing the current state. Imagine having the power to rewind and replay events, to debug, to generate reporting, to go back to ancient history...

We’ll get up close and personal with Command Query Responsibility Segregation (CQRS), which gives us the bonus of scalability out of the box, we’ll be designing and architecting applications at scale, just like the grand cities of the past, in no time at all!

First Delivery @ LevelsConf2018- https://www.levelsconf.com/

Modern Authentication 101

There has never been more emphasis in security than in the modern environment of distributed computing and increased sharing of data. Our data does not sit inside silos consumed by one application anymore. In this context the modern distributed applications need to securely access protected resources without having to share passwords. We need scalable solutions that work with things like single page applications. We will dive in and explore terms like `OAuth`, `OpenIdConnect` and `JWT` and how they relate to authentication and authorisation. This presentation hopes to give you a good understanding of what, where and how to get started with the modern approaches to authentication.

In my experience most software developers don't have a good understanding of why protocols like OAuth and OpenIdConnect exist. What type of problems they solve and what flow to pick to solve their problems. Most of all they lack the knowledge of the compromises they make when they choose a authentication flow. Because these authentication flows are abstracted away in most implementations, the novice developers don't get exposed to the nuts and bolts. There are more and more compromises that happen because someone doesn't follow the security best practice or pick the wrong tool for the job. My motivation is to transfer some of my knowledge to young developers so they make an informed choice when the opportunity presents itself.

The Shell Game Called Eventual Consistency

As we build distributed highly scalable systems the central data store and transactions are no longer a safety net we can afford. In the world of event sourcing and CQRS (Command Query Responsibility Segregation) we need to design clever systems that don't show cracks and seams where eventual consistency is at play. We will tackle those unpleasant invariants and race conditions head on to investigate some technical and non technical smoke and mirror solutions that we can use to deliver a positive experience to end-users while finding the performance sweetspot.

We are utilizing the various PaaS/Serverless solutions to build more and more distributed systems. Often these systems need to work together to produce a result. When performance and scalability is of high priority, consistency (CAP theorem) takes a back seat. We still need to find ways to shelter the end-user from these design realities. The aim of this talk is to find ways of doing it. Be it through changing the business process or by doing clever tricks on the front end while giving the backend has a heartbeat to catch up. There are countless ways to do it. My goal is to investigate a few of them and get the conversations happening.

A game of snake and ladders called Microservices

Microservices aren’t new but the last few years have certainly seen a lot of successful implementations of the pattern. The promise of high scalability has attracted engineering teams to it like moths to a flame. There are plethora of benefits but they are accompanied by an ever growing set of technical and nontechnical pitfalls. As the shininess of microservices gradually decline, there are important lessons to learn from our scars. We will look at why microservices implementation fail, How to avoid the pitfalls and most importantly whether you need to ditch your trusty monolith after all.

Past and future events

Microservices, Containers & Serverless Day 2018

The Microservices, Containers & Serverless day is a forum for the discussion of all aspects of Microservices, Containers & Serverless : their design, programming, and operations. Speakers from industry report success stories, best practices, current challenges, and will participate to discussion panels on the adoption and evolution of Microservices, Containers & Serverless.
6 Sep 2019 - 6 Sep 2019
Melbourne, Australia

Readify Back2Base

Quarterly consultant get together for Readify victoria
15 Feb 2019 - 15 Feb 2019
Melbourne, Australia

Selenium Day 2018

Enthusiasts exchanging ideas on advancing the present and future of Selenium.
1 Feb 2019 - 1 Feb 2019
Melbourne, Australia

LevelsConf 2018

Australia's first conference crafted for building technical careers, from the very beginning.
7 Jul 2018 - 7 Jul 2018
Melbourne, Australia