I'm a Software Engineer specializing in Object Oriented software development, and the Microsoft .NET framework. I have 7 years of experience working in the industry in all aspects of software development including requirement gathering, design, coding, testing, and maintenance. I posses excellent communication skills; fluent in English, Japanese, and Sinhalese; and am comfortable with working in a team environment as well as alone.
Download a Short Version
See my Coding Projects
  • PROGRAMMING : C#, WPF + MVVM, C/C++, Java, XML
  • FRAMEWORKS : Microsoft .NET, Adobe Acrobat SDK
  • DATABASE : MS SQL Server
  • IDEs : MS Visual Studio, Eclipse, IntelliJ
  • OS : Windows, Linux / Unix, Mac
  • Other : OOP, Git, SVN
Senior Software Engineer, Metatechno Inc., Japan
2008 ~ 2014
  1. 1
    Canon Digital Cameras
    At the time I joined Canon's camera GUI development team for their digital cameras, the landscape of digital photography was quickly changing because more and more photographers were making the move from DSLR cameras to mirror-less cameras. Digital cameras being one of the marquee products of Canon, they were under considerable pressure to come up with a digital mirror-less camera of their own to be competitive in the market. Their solution to the problem was the Canon EOS-M3 mirror-less camera, and the intended release date was a little over a year ago. As mentioned before, with the changing landscape, Canon had placed extreme importance on this product and our failure would have potentially cost them millions of dollars. In addition, they were adding new features to the camera every week, and every additional feature demands at least one additional screen, but most of the time more than one. So our team had the daunting task of quickly developing all these screens and the logic behind frequently requested by the design team, well in advance of the actual release date so the eventual product can be tested thoroughly before the deadline. Our team rose to the occasion and we worked extremely hard to deliver close to 500 screens (each screen items takes up a few hundred lines of codes) in time. The EOS M3 is now released and is one of the best digital cameras of its type in the market.
    2013 ~ 2014
  2. 1
    PhotoPresso by Canon
    PhotoPresso is a service provided by Canon where users can go to the web site, upload their photos, and then create photo albums which Canon would print and deliver to their doorstep. For this project our team at Metatechno Inc., Japan, designed and developed the entire back-end of the system. Everything from generating the photo book layout customers chose, generating print files and sending them to the printers, performing the post-press activities such as binding, stapling needed to be done automatically by the system. It was a product our team was involved in all aspects of the SDLC. As a part of the project, we were to develop a plug-in using Adobe Acrobat SDK to generate print ready high quality PDF files that are sent to the industrial level printers. The task was difficult because we needed to extract information from the photos users upload, then embed them in a PDF file bit-by-bit while performing an array of peripheral tasks such as automatic color corrections, red-eye removal and many more. Although this was one of the most crucial components of the system, nobody in our team knew how to do this, so I took on the complete responsibility to read through the Adobe Acrobat SDK, learn all the necessary bits and delivered the plug-in in time. Without the plug-in, the entire system was a no-go, so my work there was crucial to the project. In addition to this I was also involved in the other parts of the development.
    2011 ~ 2013
  3. 3
    'Ray Modeler' by Sony
    This was a product still in R&D stage at the time, and Sony was experimenting on how to convert it to a commercial product. They were taking the prototype to the potential buyers and were trying to convince them the importance and usefulness of the technology. Our team developed the part of the system which takes input data from multiple cameras and put them together to form a 3D image which is displayed in the device. As such, the algorithms we developed were of paramount importance, since a failure would have potentially cost them millions of dollars. We put in a lot of effort and delivered sophisticated algorithms which takes input data from multiple cameras and put them together to form 3D still images as well as video images.
  4. 3
    'PrintStreet' was a print system designed and developed by Metatechno Inc., Japan. It handles data and instruction flow between industrial level printers and the user interface of the print job software. This was a product owned by our company, and as such, was a steady source of income for the company. Therefore, not only we managed the existing software, but we also constantly made upgrades and added new features to the system to attract new buyers. We made extensive use of JDF/JMF technologies along with XML and the .NET framework to develop the back end. PrintStreet handled the whole print life cycle (pre-press, press, and post-press) of print jobs, and automation was the key. Therefore, making a sophisticated product that required minimum human interaction was very important, and our team kept up with the job very well. It is still a major source of income generated by the department of the company I was working for.
    2008 ~ 2011
EOS-M3 Camera
Software Developer, Metatechno Lanka, Sri Lanka
2007 ~ 2008
  1. 0
    MIS Software
    At the time Metatechno Lanka was using a primitive MIS system and was in dire need of buying an MIS system which is rather expensive. But the team I was part of undertook the challenge and developed a MIS system saving the company a considerable sum of money.
    2007 ~ 2008
  2. 1
    Learned Japanese
    When I was hired by Metatechno Lanka, the deal was for me to work less than a year in Sri Lanka as a Software Developer, and then be transferred to Metatechno Inc., Japan to live and work in Japan for the next 4 years. So I had the daunting task of learning to read, write, and speak Japanese to a level where I would be able to live and work in Japan, in only less than a year. I managed to rise to the occasion and do so in time.
    2007 ~ 2008
MS in Computer Science, University of Nevada, Las Vegas
2014 ~ 2016
  1. 1
    Algorithm Simulator
    Distributed Computing was one of my personal favorite courses I took for my MS in Computer Science program. One of the major difficulties of learning distributed algorithms is that they are hard to visualize and understand because of their distributed nature. It is further worsened by the fact that not everyone can have access to a distributed system to implement these algorithms. Therefore, for my MS thesis, I developed an application that can simulate the execution of distributed algorithms in a non-distributed environment such as a personal computer. The fundamental concept of Distributed Computing is that a number of relatively simple and small units can work cohesively to achieve some task which would have been too complex/computationally expensive for them to handle alone. I designed a way to simulate these small units and also the message communication among them in a network, on a simple personal computer. Using this tool, the students (and teachers) can see the behavior of each unit and the whole system, at any given step, and get a better understanding of the algorithms.
    2015 ~ 2016
  2. 2
    MPI Programming
    As part of my degree program, I took a Parallel Programming course. We used C-Language and Message Passing Interface (MPI) to write parallel programs to solve some complex problems. It is a subject I thoroughly enjoyed, and some of my work is posted below.
Download Source
Download Source
BS in Mathematics, University of Peradeniya, Sri Lanka
2002 ~ 2006
  1. 0
    Advanced Mathematics
    Learned advanced math concepts such as Number Theory, Game Theory, Calculus, Differential Equations, Laplace and Fourier Transformations, Geometry and Topology, Statistics, and Operations Research.
    2002 ~ 2006