Nathan Lewis

Hello!

A photo of me

I'm Nathan, a Senior Software Engineer in the Video Game Industry. I work on game streaming systems, primarily on the video pipeline and the hardware/software that powers the high speed cloud storage systems that feed game content to the streaming servers.

You might know of me through:

For professional inquiries, find me on LinkedIn

The Origin Story

I got my start in computing at a young age. As children do, I one day asked my dad how he did what he did. His response was to hand me a copy of K&R and tell me that when I could understand that book, I could understand what he did for a living.

How was I supposed to understand pointers before I'd even seen algebra...

That same year my parents gave me my first computer and a LEGO Mindstorms Robotics Invention System for Christmas. From the moment I realized you could use computers to affect things in the real world, I knew I was going into the tech industry.

One of the things we forget is just how phenomenal the homebrew community surrounding LEGO Mindstorms was. LEGO envisioned an educational tool that you'd program using a simple block based programming environment, but some determined people took it to the next level - we had everything from a C/C++ toolchain (BrickOS) to a micro Java VM (LeJOS) that even supported multithreading.

Eventually I graduated to "real" microcontrollers - a very kind member of my childhood community robotics club (ChiBots) gave me one of his prototype carrier boards for an ATmega8. All of his tutorials were based around BASCOM-AVR, a BASIC development environment for AVR, with a feeling not entirely unlike Visual Basic. These were the days before Arduino after all.

However, the free version BASCOM-AVR had a 4K codesize limit - a limit of half the memory the ATmega8 had. I asked my dad for $80 for the paid version, but when he saw that WinAVR was free/open-source, he told me that I should learn C instead. In terms of my development, I think that might go down as the best $80 he never spent on me.

Things progressed fairly quickly from there. Dad introduced me to Linux and I quickly fell in love with developing for it. Being able to program for "real" computers allowed me to take an interest in computer vision, and I started building them into my robotics projects to process video coming in from webcams. They would then send control information to AVRs over serial connections to move motors, servos, read basic sensors, etc.

Eventually I discovered the world of single board computers through the BeagleBoard and started taking an interest in embedded computing.

Also about this time this little thing called the App Store came about and I started spending a substantial amount of time learning how to develop for the iPhone. Proceeds from my early contract work went straight into building more robots.

I then finally went off to university to study Computer Science and Engineering. Here I continued to participate in robotics, mainly through Robomagellan competitions - a challenge where a self-driving RC car size robot must navigate a neighborhood park-like environment and find objectives marked by orange traffic cones.

But I did take a major step back from my robotics hobby in college. I do have it to partially thank for my career though - I got my first tech industry internship because I understood how to use buildroot, and I eventually went to work for that company.

The Site

This website is an attempt to get back into actually talking about the things I do for fun. I spent my early professional years either working or playing video games. The COVID pandemic served as a major motivator to start actually having a life again. I've not been much of a gamer since, and now I spend my time either working, spending time with friends, building robots, or travelling.