My romance with programming started when I was a kid. I learned the 8080 assembly language and fell in love (8080 is the predecessor of 8086, the great-great-great-grandfather of the Intel chips we use today).
My father bought me an Apple II computer and I was ecstatic: you could open the case and access the electronic circuit board inside. I connected all kinds of things to the board, even things I built myself. It’s a wonder I didn’t blow the house up with all my experiments.
Later that year I met and became friends with a Math genius – a relationship that turned into a lifelong friendship. When I visited him at his parents’ house I met his younger sister, and immediately knew that she would be my future wife.
I was 18, and all the major decisions about my future had already been made.
Programming
Fast forwarding to the present, I am still as passionate about programming as I was when I was 18. I have coded in almost all major programming languages, and on all major operating systems. When the World Wide Web sprung to life in the early ‘90s, I developed a keen interest and began focusing professionally on web applications.
Javascript was the next obvious step for me and it became my language of choice. I do, however, also do a lot of developing in Flash (Actionscript, Flex, Air), Ruby and Python. I also use a lot of design patterns, test-driven development and agile methodologies.
Over the past few years I have been focusing more and more of my time on mobile platforms. I have carried out projects on all leading platforms — iPhone, iPad, Android, BlackBerry and Symbian — and have worked extensively in Objective-C and Java. I also still do occasional projects in C# and C++.
My diverse technical abilities and my familiarity with organizational and startup dynamics serve my clients well. I understand their needs in a broader manner than most consultants, and when developing their projects I am able to figure out when I can fill a gap myself, and when I need to ask for their intervention.
I am at my best with “rescue operations”. The clients who contact me are usually in some sort of technological distress: a project with a next-to-impossible deadline, a key programmer who inconveniently left the company in the middle of development, a project that requires the use of undocumented or alpha stage technologies, or a project with undefined and constantly changing requirements. Upon receiving such a project, I dive in and work from dawn to dusk, only taking a break now and again to eat or sleep. Days or weeks later, I emerge from my shell with a solution — one that works and is well documented and tested. At this stage, I usually perform a code review with the client’s team, transfer my knowledge, and carrying out training if needed.
Successfully completing a rescue project is one of the most rewarding feelings I know.
Sailing
A few years ago I went sailing with some friends. We were on a 34 foot sloop (a single masted yacht), with wide white sails that captured the wind. I noticed that even just a slight breeze was enough to cause the yacht to tilt. When it was my turn at the helm, I was amazed to discover that the smallest of changes in the steering direction changed the angle of the tilt: incorrect steering could stop the tilt and bring the yacht to a halt, while correct steering could achieve a noticeable tilt and increase speed. With programming, you never feel a physical effect if you make a good (or bad) decision. I was enchanted. And hooked.
I took a sailing course and acquired a coastal skipper license. I then took an advanced sailing course and acquired an offshore license. I was still a newbie and I knew it, but I also knew what needed to be done: I went on some sailing expeditions, took part in a number of boat deliveries, and made a lot of new sailing friends.
After completing my first Atlantic crossing and marking my 60th day at sea, I realized that for me, this was no longer a hobby – it had become a way of life. So together with my wife — my childhood sweetheart — and our four children, we decided to start looking for a boat to live on and sail around the world. This was my first new major decision since the age of 18.
So now I sail and program — my two great passions. I am always looking for interesting new programming projects, so let me know if you have one that requires a Ninja programmer.
Roy, you rock sounds like a great way to live – at least I find it inspiring.
Great writeup and bio, very inspiring!
Best,
Brad