Ted Logan

Embedded Software Engineer

Chan Shun Pavilion, Walla Walla College
Chan Shun Pavilion, Walla Walla College


I am a thirty-something embedded C/C++/Perl/Linux hacker living in Boulder, Colorado. These days I'm working for Qualcomm on wireless communication software in mobile phones, so there's a good chance you already run my code in your phone.

I got started programming in grade school in the eighties, when my father brought home an original Compaq Portable -- with a tiny CRT embedded in the chassis next to two 5-1/4" floppy drives and a keyboard that folded into the front. It ran some early version of DOS from floppies and included BASIC. I typed the programs from the "Basic Training" column at the back of 321 Contact magazine and started writing my own. By middle school we'd upgraded to a 386 with an actual hard drive and I kept on tinkering. In high school I wrote a terminate-and-stay resident in DOS assembly that hooked into the timer interrupt to sample the state of a joystick and inject keyboard events into the input queue -- all so I could use the extra buttons on my joystick on a game that didn't support them.

In college I took computer engineering, which gave me the fundamentals of engineering and a strong understanding of computer science. I got bored learning x86 assembly and convinced my professor to let me implement Tetris in lieu of the normal final project. I learned to appreciate that there are other people willing to devote their lives to heat transfer and semiconductor physics so that I don't have to. For my final project I wrote a complete TCP/IP stack in C on an embedded 386 board, including an Ethernet driver, and built a simple embedded webserver on it.

Since then I've spent more than a decade writing and supporting code for a variety of companies, large and small. I thrive in complicated environments where I need to understand complex interconnections between different pieces of hardware and software, to become the expert and identify the source of the problem and fix it. I like to learn all I can about the systems I work on and synthesize and share that information with anyone who asks.


Resume (pdf)

LinkedIn profile

Stack Overflow CV

BLUG talk on GPS

In June 2010, I spoke at the Boulder Linux User's Group about GPS, titled How to get lost while knowing where you are.

Secrets of tabs in vim

I spend much of my day working on other people's code. People who have uncivilized ideas about how to indent their code. Read more about the secrets of tabs in vim.

Struct packing

Last week, I was debugging some code and came across a troubling situation: A variable that I set in one function was suddenly and quickly being mutilated before I managed to read it in another function. After hours at the debugger, I discovered the culprit was struct packing.

When memory leaks don't leak

Not long ago Visual Studio reported memory leaks in my code that weren't really leaks; the memory in question just hadn't been freed yet. Read more: Spurious memory leak messages in Visual Studio.


e-mail: ted.logan@gmail.com