About Me

I’m Derek Moran. I like to help people solve problems, particularly when they involve computers.

I’m a proud University of Waterloo alumni, earning my B.A.Sc. majoring in Computer and Software Engineering. I’ve worked in several industries including Telecommunications, Manufacturing, Finance, and Education. I’ve spent decades acting as a jack-of-all-trades in technology, helping others solve computer problems in both the hardware and software domains. I’m a striving software developer, and these are my adventures:

1992

Preadolescent me was introduced to my first computer. An IBM PS/1 2121-M82. It sported a huge 80MB HDD, 2MB of RAM, and a blazing fast 20 MHz processor. This machine was tightly tied to my mother’s workplace, however, so my parents made it clear that I was to treat this machine with the utmost care.

If I recall correctly, it was less than a week before I managed to break it. My parents were furious. Fortunately my mother’s workplace agreed to fix it, and very fortunately for me, I was entrusted with it for a second time.

It took about a month for me to break it again. I had been installing a video game, but at that time an “install” meant following instructions on how to manually copy files and edit operating system configs. Maybe the instructions were faulty, or maybe I made a typo. I wasn’t sure. But I was horrified, I’d broken it again! However this time it was the middle of the week, and I knew my parents weren’t likely to use the computer until the weekend. I still had time. Time to fix this mess before I’d have to admit to my blunder.

The PS/1 had come with several large hard cover binders of documentation. I got started reading. Before long I had came across the PC DOS 4 manual. This is when I first learned what the AUTOEXEC.BAT and CONFIG.SYS were responsible for, how they worked, and figured out what I’d done.

Not only had the disaster been averted, but I discovered I had enjoyed the process of fixing it. I REALLY enjoyed it. I kept reading everything I could get my hands on. I was hooked on computers from that day forward.

1993

I started reading a manual for GW-Basic. It contained great advice for new developers:

  • Always keep variable names simple. Use A$, X%, etc. After all, doing otherwise would use up too much disk space.
  • Don’t use sequential line numbers, go in increments of 10. If you’re not familiar with GW-Basic, line numbers here are not referring to reference points in an IDE. No, they were line numbers the developer typed in themselves. Each line of code needed to be manually prefixed with a unique number. Branching logic was then done with code such as GOTO 20. So refactoring had the potential to require updating every branching statement. So, use increments of 10, then you leave yourself a bit of room for easier refactoring.

It was great advice for the time it was written at least. Times have certainly changed. None the less, I absolutely loved working in GW-Basic. I had produced my first application, a Jeopardy style trivia game, by the end of the year.

1994-1998

My family purchased a Compaq Presario 4160. 2GB HDD, 32 MB of RAM, 150 MHz processor. It was a solid upgrade from the PS/1. It came with QBasic, which had a similar feel to GW-Basic but no more of those pesky line numbers. QBasic came with the source code for Nibbles and Gorillas, two games that I fondly remember tinkering with.

The Presario also came with a 9600 baud modem. I used it to connect to some local bulletin board systems at first, but connecting to the Internet soon followed. The Internet introduced me to an overwhelming amount of new reading material. I used what I found to upgrade the Presario to Windows 95, and set it up to triple boot alongside Slackware Linux and FreeBSD. This allowed for my first introduction to the world of ANSI C.

Soon after I purchased a copy of Tom Swan’s Mastering Borland C++ 5, and started playing with it in Windows. I recall making a Whac-A-Mole game with another students face used for the moles. Not a good idea. It deservedly got me in trouble when a teacher saw it. But some of my other teachers were incredible mentors. Mr. Gillespie introduced me to my first taste of Visual Basic, and Mr. Baker got me started with HTML and web development. They will forever have my gratitude for being so inspiring.

I started working with computer hardware at this time too. Using dip switches to control everything from card interrupts, direct memory access, to setting an HDD as primary or secondary. Manually entering the cylinder-head-sector details in the BIOS. It was tricky stuff at the time, but I enjoyed that. I even made some income by providing computer services to the locals. I wasn’t sure what I loved more, the hardware, or creating software for it.

1999-2005

Enrolled at the University of Waterloo in their Computer Engineering program, with an added option in Software Engineering. It seemed like a good way to figure out if it was the software or the hardware that fascinated me most.

All graduating students would build ( along with many other amazing projects ) the essentials of a computer from end-to-end:

  • build an on-paper processor at the transistor level, then use VHDL to build the real thing on an FPGA
  • use an assembly language to control the processor
  • develop a high level language that compiles to the assembly language
  • develop a multi task capable operating system using the high level language

The Engineering program was also co-op, rotating every 4 months between real-world work experience and study. I worked at an Internet Service Provider, I worked in Finance, I worked in Manufacturing. I worked with many new programming languages, operating systems, and databases. It was varied and exciting. It was an incredible program, one I feel very lucky to have been a part of, and that I would recommend highly to anyone considering a similar career path.

2005-2010

After graduating I still didn’t have a good answer to whether I enjoyed hardware or software more. Maybe it didn’t matter, I just really enjoyed both.

I accepted a position at Toyota Motor Manufacturing Canada. I’d completed several fruitful co-op terms with them, so I knew they had a delightful mix of hardware and software challenges. It was a perfect match.

2010-2022

I found that setting up computer hardware had become easier for me over the years, and consequently less rewarding. The world of software had evolved too, but it was still very much a challenge. While I miss working with my colleagues at Toyota, I decided that it was the software domain I wanted to fully focus on. I found a new home writing software for D2L, whose mission it is to transform the way the world learns. It had been access to knowledge, and a series of wonderful teachers and professors, that had lead to many of the best experiences in my life. D2L was on a mission to make that knowledge more accessible to everyone. A mission that I was now a part of. I was able to do what I loved, while simultaneously helping others gain access to the same. It felt fantastic. I couldn’t have been happier; it was another perfect match.

2023

I was pushing myself too hard. A big mistake. My health suffered as a result, and my mistake finally caught up with me. I admit that I initially saw my failure as a depressing setback. But I hadn’t lost my love of fixing problems, and I came to see this setback as just a new set of problems to be solved. I began plotting my solution, one component of which was to start blogging.