About Me

Name: Todd Knarr
Birthdate: 23 June, 1965
Home phone: 619-269-8150
Cel phone: 619-813-6641
E-mail: tknarr@silverglass.org
Google mail: todd.knarr@gmail.com
G+ profile:
https://plus.google.com/u/0/+ToddKnarr/about
Address: 4710 Talmadge Canyon Row, San Diego, CA, 92115

I'm currently employed as a C++/C# programmer at CoreLogic CREDCO (originally First American CREDCO, then First Advantage, now CoreLogic), doing credit report aggregation and processing. C#/.Net is something we're just adding, most of the systems to date have been in C++ for performance (and because C# isn't supported on AIX Unix systems).

Before that I did Web statistics/analytics and server programming at WebSideStory (later they changed their name to Visual Sciences, then they were acquired by Omniture). That involved such interesting things as creating a bare-bones HTTP server framework that we could plug C/C++ modules into easily and that'd handle 2.5K+ requests/second (I'm not sure how big the "plus" there was, we ran out of traffic we could redirect to the test server and were still only at 50% of our maximum allowable response time). The pluggable framework made for some interesting options, a lot of things could be done just by adjusting the configuration to control which modules got called when. Many times I had to argue when I was asked to do something in code that could already be done just by setting a conditional action (eg. "if this request variable is set thusly, trigger this state change in campaign X") in the configuration. It was much easier to change configuration settings and test than to deploy new code releases.

Before that, I did point-of-sale and hardware-interface programming for Flying J (a truck-stop chain later acquired by Pilot). General accounting, inventory reporting, cash registers, interfaces to credit-card authorization networks, interfacing with gas-pump and fuel-inventory hardware, a complete automated shower stall control system including the hardware development, a software-driven voice-synthesis announcement system, adding an RF smart-card system (both standard cards and chips permanently attached to truck fuel tanks) to the pump control and authorization system... we kind of did it all. We had to do a lot of it, because what we were doing just wasn't available anywhere else.

As a software developer I'm particularly proud of the shower-control system I did for Flying J, because it's what I consider the best software to be: invisible and effective. When we installed it, it cut wait times for truckers wanting a shower from 30-45 minutes down to less than 5 minutes even at peak hours, even as it doubled to tripled sales volume. In the next 5 years I think I had to make 2 or 3 fixes to it and those were in the cash register module that handled selling showers, not the control system itself. And as far as I can tell, a decade after I left the software's still in use and hasn't needed any major fixes or enhancements. It sits there, it does it's job and does it well and doesn't demand constant attention to keep it working. The HTTP server framework I did for WSS is the same way. Once I had it up and running it needed very little work, and as far as I can tell is still in use for the high-performance statistics collection front-ends (the Web servers that handle actual requests from browsers). The goal was to provide a framework that let developers ignore the details of HTTP handling and request dispatching and concentrate on the code that actually processed statistics information, and it appears I succeeded at that.

I was born in north-central Pennsylvania, up-river from Lock Haven. My family moved to Arizona as I was starting 1st grade, I went through school in Tucson and that's pretty much where I consider myself to have grown up at. After a couple of years of college I moved to Elko, Nevada for the money I could make at the gold mines, which looked really good to a student. That turned out to be a mistake, and I bounced around between what IT-related jobs I could find (and more than a few non-IT-related but rather interesting ones, for instance I spent a couple of years as a geotech doing geological surveying of exploratory drill-holes for the mines) until I found a spot at Flying J over in Utah. Spent about 6 years there, got an offer from WSS and moved to San Diego, California where I've lived ever since.

My interests range all over the place, from mathematics to music to computer games to philosophy and metaphysics to particle physics to science fiction and fantasy books. I play piano (I'm a bit out of practice, I'm working on getting a new keyboard setup since apartments aren't conducive to a full-sized piano), know how to play the cello, and want to learn violin and pennywhistle.

I'm working on getting my resume on-line again in various formats. That requires me to update it first though. I'm bad about that, I don't job-hop as much as is traditional in IT and my resume tends to languish when it's not actively needed.

On a personal note, I'm fairly house-bound. Thanks to what started as a bad case of the flu and turned into pneumonia back in the winter of 2009, I spent 5 weeks on a ventilator in an induced coma. Between not really moving all that time and something in the hospital making my immune system react badly, I ended up with severe neuropathy in my legs. I'm walking, but that's about all that can be said for it. Long distances hurt (that is, hurt more than normal), and anything outside the house isn't safe without forearm crutches. A side note on pain: I use the Comparative Pain Scale. My normal pain level varies between a low 3 and a high 4. That's just shy of the pain of a broken bone, which I'd put at a 5 (a broken leg and a shattered shoulder give me good reference points). One thing about chronic pain is that it's not so much the pain, it's that it doesn't stop. That's what wears you down and makes you grouchy and irritable. It's not something most people think about because they don't have to.