Hi, I'm Ray. I'm a software developer, full-time nerd and occasional human (while heavily caffeinated).

This is a website for my blog, projects and anything interesting I want to share.

Recent Posts

  • 27 May, 2019
  • C#: Building a TNoteBook component for Windows Forms as an user control (PanelBook)
  • Last week I was developing a Windows Forms (WinForms) application that required a particular kind of user interface. The application was a step-by-step wizard that had navigation buttons: "back" and "next". Think multiple steps of a setup installer. Each page occupied the same position and contains other controls. I wanted a more elegant solution other than hiding/showing and moving panels around the form.
  • 25 May, 2019
  • C#: A practical example of polymorphism for everyday projects
  • Every programming textbook and wiki is going to have a definition for polymorphism, so you don't need me to explain the concept. In my mind, polymorphism is the OOP technique of defining one interface that allows different entities to do the work. In this post I'm going to provide a practical example of subtype polymorphism or subtyping.
  • 04 Apr, 2019
  • C#: Storing settings in a SQLite database for a Windows Forms application
  • I find it's a pretty common requirement to store settings for an application, such as: "recently opened files", "last opened path" or other user preferences. I've seen this done using INI configuration files, XML and JSON text files. A few years ago I heard about SQLite; how the likes of Google Chrome were using it for storing configurations. So, I built my own helper to handle reading and writing of settings.

Who am I?

Hi, I'm Ray.

I'm a software developer for desktop, Web and mobile devices. I specialise in:

  • Software
    • .NET Framework (C#)
      • Windows Services
      • WinForms
      • User Controls
    • Xamarin.Forms
  • Web
    • ASP.NET C# MVC 4+ (full-stack)
    • ASP.NET C# Web Forms (full-stack)
    • PHP 4+ with LAMP (Linux-Apache-MySQL-PHP) stack
    • PHP 5+ with LEMP (Linux-Nginx-MariaDB-PHP) stack
  • Front-End
    • AngularJS (1.2)
    • jQuery
    • Vue.js

I've also been known to manage servers (Microsoft and Linux), crimp some cables and change a light bulb. More about that over on LinkedIn .

In my spare time, I love to read. I seem to read mostly science-fiction, fantasy and young adult; more about books over on Goodreads .

I enjoy taking photographs but I have -so much- to learn. You can see some of my photographs on Flickr .

I post a lot of photos of food on Instagram .

I like working in coffee shops with my laptop, tablet and reMarkable. There's coffee, cakes and people-watching is fun.

That is me.






Copyright © 2014-2019 Ray Lam. All Rights Reserved.