Welcome to LmmrTech.com
The website for Lee McLoughlin’s work as a Software Architect/Programmer/Designer
I like designing and writing software. Especially systems that have a strong networking element to them: its just so satisfying to get phones/PCs/… to connect to each other and connect to the servers, and have them all exchange data reliably in the face of networking issues.
I was a systems manager at Imperial College for many years, before working in a series of startups. Academia trains you to do the best you can with few resources (not a lot of money for extra staff, software, training …). So you either become self-reliant, learn to embrace open source or go elsewhere. I also hate doing the same things multiple times. Once I know what is really required, which usually takes a few iterations of doing it manually or with general purpose tools, I then write software to do it for me. I’m a firm believer in tools that build tools… it makes sense in the world of “real” engineering and it also makes sense in the world of software engineering.
I’m an experienced database designer and administrator particularly with MySQL in a HA setting but I’m switching my production systems over MariaDB with either SqlRelay or my own Qt Database plugin.
Academia, and my own personal take on the world, means having a broad knowledge of a variety of systems.I’ve managed and modified pretty much every Unix variant there is from Version 6 (I even have my own ancient photocopy of the Lions book) up to the latest Ubuntu/Mint/Centos/Solaris/HPUX…
I’ve always loved programming languages. It was boring for a while back there when the whole world seemed to be just C/C++… I program in both a lot and there is a lot to recommend them but it also felt vaguely stifling. Now that new languages are coming along its interesting to see a new take on it all even though C/C++ has heavily influenced a lot of them. I’ve used Python heavily (especially on embedded devices), Lua is interesting because of its take on objects, Ruby/RoR … they are certainly different and I’m not sure “least surprise” is how I’d describe them!
I’ve also a background in electronics which has led in the past to some quirky little projects in the past mixing specialist hardware and networking (remote controlled power switches both for domestic use and to control rural power relays). On street information screens for local councils and rural transport (ahhh… what I would have given for modern cheap tablet computers back then)
For more details please see:
My major work for the last 5 years has been on one project: Private Planet
Private Planet is a white label cloud system targeted to fixed line/mobile phone companies. As CTO I worked closely with the CEO and was primarily responsible for the protocol stacks and server side design and implementation. I Helped to manage the development team in two countries. As CEO I was responsible for specifying and integrating the multi-server high availability high reliability systems for our protocol handlers as well as file stores and database.
At the core of Private Planet is the RPC (Remote Procedure Call) system. A small lightweight binary protocol for exchanging data between servers and between servers and user devices. Using binary protocols has huge advantages over “conversion” protocol based around systems like XML but can lead to more programming effort writing code/decode modules. So the first step was to design and implement code generators for our RPC/protocol stack. This was followed by creating tools to work with Qt, the server side system we use, then with Qt Designer (Qt’s relatively new GUI) to automate a lot of the work of server side service creation.
Doing “double duty” as COO I am also responsible for some of the initial server installations both hardware setup and software setup and general operations tasks. This included setting up our overall systems monitoring (currently we use Zabbix with some Private Planet specific monitoring and statistics)
Interesting side node: At the same time I was working on my RPC system and using it to underpin all of Private Planet whoever my counterparts were at Google and Facebook came to broadly similar solutions with Google’s Protocol Buffers and Facebook (now Apache) Thrift. All three were designed in independently (as far as I know).