This story begins in Colombo, Sri Lanka. Before computers sparked my interest I used to be an avid reader and loved novels by the likes of Martin Wickramasinghe and R.L.Spittel. I loved playing and watching cricket, still do.
When my father bought an IBM 386 (Early 90s) it had Windows 3.1 and one of the very first memories I have is of using the copy command to copy games from a 3.5” floppy disk to the hard drive. For some reason I found using the command prompt easier than the GUI. Maybe this was the first sign of the brewing passion for software engineering?
With Windows 95 I got the true taste of things to come. I loved playing around with settings.ini files of different applications and often spent days getting my midi drivers working with old games. When I got Windows 98 I found wanting to customize applications more and more. I would spend hours looking at EXE and DLL files through hex editors trying to understand the code. This was the time I got introduced to software development and compilers.
More than any other time in my career I believe this was a time I enjoyed development. The sheer joy of learning new things and applying it as I saw fit gave me an escape from boredom.
Some of the more notable mentions from this time
- WinLink - MP3 player with a FFT based equalizer. Developed in VB6.
- LakTeen.com - A pre-facebook era social media web site that used to get 10k hits daily. Developed using Classic ASP and PERL.
- Gedera.com - A hotmail wannabe email provider. After my early exploits I got to meet other like minded young developers. We had so many ideas on how best to do things and were uninhibited by failures. I was doing my Advanced Level studies at school and often found my love for software development clashing with other studies. I used to spend more time in the school (D.S.Senanayake College, Colombo 07) computer lab than anywhere else. I had a great teacher in Mrs. Ganga Liyanage who was in charge of the IT department and often gave me the freedom to express myself through software development.
Singlish and Sinhala Transliteration
One of the unique challenges we faced was the apparent lack of support for our native language in Windows. Rather than wait for someone else to fix this I started an ambitious project to introduce a transliteration scheme for Sinhalese. It was called “Singlish” (Sinhala typed in English) and it became popular among Internet users fast.
I was encouraged to enter this into software competitions and was lucky enough to win a few of them.
I also developed a fully functional word processing application that made word processing easier for native Sri Lankan languages in the pre-unicode era.
This was my first venture into commercial software development. I started working for a small software development company and quickly started building custom software for government and private organizations.
Venture Into .NET
During this time as a fresh out of school teenager I had many distractions. Luckily for me I had caught the attention of the country education manager from Microsoft Sri Lanka (Ms Jinashri Samarakoon). She invited me to come to the Microsoft head office and gave me a copy of Visual Studio 2003 complete with MSDN documentation. I had not used .NET before that day.
Up until this point my web development was in classic asp and php. ASP.Net was different and my favourite VB had changed. I struggled with concepts of Object Oriented development at first. But it was this paradigm shift and ability to self teach that has left me confident of any new technology challenge to this day. For I had taught myself to fish and would never go hungry again. :D
Here is a small interview I did in 2005 after winning “Best Young Software Developer” for Singlish.
.NET And Beyond
I completed my tertiary studies at Swinburne University of Technology and fell in love with fundamentals of computer science. I had a head start on most of my colleagues in terms of software development experience but the core concepts of software architecture and design were a real eye opener for me. In many ways I was learning in reverse but this has given me a very unique take on problem solving.
Phew. That was a long read.
I’ve since been working in Melbourne and my primary technology stack has been on .NET. I’ve seen Winforms come and go, WCF/SOAP get replaced by WebAPI/REST and witnessed the emergence of a new Microsoft under Satya Nadella and Scott Guthrie. <3
It’s a exciting time to be a .NET developer and I for one am looking forward to the challenges cross platform development brings with the .NET core framework. I am today more of a back end developer who tackles concepts like Eventual Consistency and Service Discovery. I think it’s apt my blog is named Gossip Protocol.
So follow my blog and let’s find out how deep this rabbit hole really goes.
Thank you for your patience.