Tuesday, March 31, 2009

A New Direction

I'm taking a break from my religion/science blogging this post to talk about life. Actually I've been wondering lately if I should start a new blog dedicated to the topic of religion since I write about it so much lately. Right now I don't think I will, but if the readers of this blog tell me that they are only interested in a specific topic that could influence me to do so.

Anyway, other than my studies on religion and science there isn't a whole lot for me to comment on right now. Sadly I admit that my time spent on Allacrost has fell to almost nothing. An upgrade cycle I did back in February somehow rendered my Linux images unbootable and I haven't had the time and motivation to fix that yet, so that's a major contributing factor. I hope to get it fixed in a couple weeks and slowly get back into the swing of things, but I realize now that I have other interests and hobbies outside of Allacrost and I don't think its feasible for me to dedicate myself to that project at the level that I did for so many years. I'll continue working on it until the final release or until my death, whichever comes first. :)

I've been struggling to get back into good shape for triathlon season. I've mostly been focusing on my running now that I have custom orthotics and shin splints don't seem to be a problem at all for me anymore (YAY). But I've been plagued with some sort of problem in my throat for nearly two months that has left me with a chronic cough. The doctor said he thought it was a bacterial infection and the medicines he prescribed worked great, but as soon as they ran out it came back. I coughed so hard that I actually damaged my ribcage and its pretty painful. So the coughing and damaged ribs really hindered my training in a big way. So I wasn't in top shape for the Capital 10K race which I ran last Sunday. It was disappointing because I had been looking forward to that race for an entire year.

That race last Sunday, by the way, was the one year anniversary of my return to competitive athletics. The race itself went better than I expected to and I actually beat my time last year by a little over a minute. I finished at 40:59.4, which is 6:36/mile pace. I think the reason I did so well was because I ran it smart, conserved my energy, and ran negative splits (last year I ran the first half of the race too fast and died in the last half). I didn't take my splits, but I know my first mile was 6:50 so that means I definitely sped up as the race went on. As I was on the final stretch, I knew the 41:00 mark was coming up and I wanted to beat it, so I sprinted as hard as I could for about 10 or 15 seconds. And then about 20-30 seconds after I finished, I threw up. And I mean I really puked my guts out. I threw up at three different places in the finish area (all off to the side). It felt good because I know when that happens, it means I really pushed myself beyond my body's limit. I haven't done a post-race puking since my last race in high school in early 2000, where I ran the 2-mile race at the regional track meet in a personal best of 10:24 (I think I PRed that race by 12-20 seconds).

And now an important announcement. I've decided to leave my current job. In this economy I know its a bit crazy to do that, but I am financially stable and I feel confident enough to make this move. The reason I decided to do this was largely because I'm not interested in the work I'm doing there. It was a really hard decision to make because I love the company and the people, but I'm still pretty miserable when I have to spend 40 hours a week doing something that I don't enjoy and that is not intellectually challenging for me. My manager (who has been totally awesome about this) helped me try to find other work in the company to see if there was another group I could transfer to where I could find my niche, but even after looking around and working temporarily with another group it just wasn't happening. My last day is April 10th (next Friday).

So what do I do now? Well I don't have anything lined up yet, even though I've kept my resume posted for the past four months or so. I've been keeping an eye out but I just didn't find anything that really fit my interests and my preferred technologies. I really want to go back to a Linux development environment. I hate dealing with Microsoft, Windows, and all of their crap. Sadly, the best positions that I have found that meet what I'm looking for have been with defence contract agencies. I'm a bit apprehensive about designing "tools of war", but I've decided that if another defence opportunity presents itself to me, I might as well interview and see what happens. I'd prefer that the results of my work go to the betterment of life, not the destruction of it (I know that defence is a necessary industry and war/conflict is unavoidable, but I would like to avoid having a part in it if I can). I'd really like to work for a research lab or institution and help design software to enable scientists and engineers to better do their jobs. That way, I can also learn about another field. I would really love to be able to design simulators. Biological, chemical, structural, electrical, any kind of simulator really.

But I'm not limiting myself to just a typical job either. I had dinner with my friend Hari a few weeks ago and he actually proposed that I try out working for myself as an iphone game developer. Apparently there's a lot of money in that if you develop a popular game. It sounds simple enough and I think I'm easily capable of doing that work on my own, so I think I'm likely to look into it and give it a shot. If I can make a living that way, be my own boss, and not have to put a ton of time into it, I think that would be great. I could spend more time and effort dedicated to causes that I care about that way. I've also considered going back to school to get my PhD, either in computer engineering or possibly in another field like neuroscience or psychics. My primary concern with returning to grad school life though is how much time working on my PhD will consume. If you recall some of my posts from my grad school days, they were not happy times for me. I got physically and mentally sick from working myself to the bone every day without respite. I started a thread on the PhD comics forum asking about time commiments in different majors.

I'm also open to the idea of moving away from Austin if the right school or job opportunity presents itself to me. I love Austin a lot and it is difficult for me to part with it, but a part of me feels like I should not stay in place for too long. I need to shake things up every few years and intentionally put myself in a new environment where I am not comfortable. I don't want to live in a bubble called Austin, or anything else, for the rest of my adult life. I've been considering California or perhaps somewhere in Europe, perhaps Germany. I don't know German but its a language that I would like to learn one day. I could try Japan too, but I don't know if that country would be a good fit for me to live in. I'll visit it someday to be sure, but living there is another matter entirely.

Anyway that's my life for now. Hopefully my life will become more interesting as I leave my current job and I'll provide more frequenent updates on happenings in the near future.

Labels: , , ,

Monday, December 24, 2007

I'm really bad at this...

I tried to update my blog earlier this month, but could never find the time to do so. There's a lot that happened in the past 10 weeks that I want to talk about, but rather than try to do that all in one post, I'm going to split it up between two or three posts. I'm blogging from the Chicago O'Hare airport right now, while waiting to board my flight to Toronto. This year will be my first Canadian Christmas. :) (I actually wrote most of this blog post a week ago, but didn't have time to finish it until tonight).

First I'll talk about my new job and how that's been. I was absolutely shocked to learn on my first day that I would first be going through about six weeks of training. I had zero training when I started working at Freescale, so already it was a huge change. Training didn't start until next Monday though, so for my first week I pretty much did nothing but read and help validate some bug fixes. I learned that the name of the group I am is PXI/VXI/Instrument Control software. PXI and VXI are both bus interfaces that are extensions to existing bus protocols (PCI and VME respectively) for instrumentation purposes. I learned that initially I will be working on VXI driver software. VXI is pretty darn old and PXI has pretty much replaced it, but entities like the government (who are really slow to change) still use it extensively. I'll talk about VXI more later.

So my second week was all orientation and training. This is when I met the people that I would be doing my training with. Most were fresh out of college, but there were a couple of people that finished grad school. Our start group had plenty of outings together, and it was nice getting to know some new people. Anyway, the training was mostly technical and taught us about the companies products (hardware and software) and how to use them. The first two weeks we spent learning LabVIEW, which is a graphical programming language. I had heard of it at UT Austin, but never used it. Its nice for quick prototyping, but I find it aggravating to use. You write your "program" by finding the functional blocks you want to use in a standard graphical menu (and it can be difficult to find what you want), then wire up the blocks accordingly. I prefer a text-based language anyday, but I do like LabVIEWs ability to very easily and very quickly provide a GUI for the end-user, which is always a pain to do in text-based languages. At least now I have a new programming language to add to my resume. :)

The following three weeks involved taking courses in areas that were a little more hardware focused. GPIB (another old but common bus protocol), Serial, DAQ (data acquisition devices and techniques), signal conditioning, and so on. Overall I found the training incredibly easy (and hence, boring). I always finished the exercises with a copious amount of time to spare, especially the LabVIEW/programming ones. And some material taught in the lectures I already knew (linear circuit analysis for example), or stuff that I consciously chose not to remember (like what the SCXI-1009 device is for....that's something I look up in a reference manual). I actually spent a lot of my class time reading Wikipedia and posting on the Allacrost forums during the more boring and slow parts of the classes I took. I guess it was kind of nice because everything was so easy, but I was ready to hit the ground running when I started my job. At the end of my first six weeks I still hadn't written any code, except for trivial exercises in LabVIEW.

The next two weeks were what I had been dreading the most: technical phone support. That's right. As part of R&D training, you work two weeks as an applications engineer (AE), which is basically glorified tech support. I was one of three R&D people in my start group, and the other 14 or so people were hired into AE. Hired AEs are part of an "engineering leadership program" (ELP), where they get a ton of more training, experience with the company products and customers, and decided on what direction they wanted to move up in the company (to R&D, Sales, Marketing, etc). Most of the AEs in my start group expressed wanting to go into sales or marketing and only very few to R&D, which I found disturbing. I playfully labeled those people as "traitors" to their study (engineering/science).

Back to my time in phone support. I, like all others in my start group, were placed in supporting our "core" products, which include LabVIEW, GPIB, and DAQ. I was honestly terrified for my first few calls, but I got the hang of things after that and it wasn't so bad. The people I spoke to were all engineers or scientists or had at least some technical aptitude, so it wasn't like I was dealing with people that couldn't get their CD drive to work after putting a pancake in there. I had five hour phone shifts each day of the week, and the other three hours were for researching solutions for the customers. My first couple of calls were the hardest because they were from people asking me pre-sales questions (e.g., I want to do X and Y, what products should I buy to do this?). The other questions I got were mostly people having trouble with LabVIEW or device driver software, and I was able to resolve those pretty quickly. The AE department is made pretty much entirely of young, new college graduates, and it made it totally not feel like work. People shoot rubber bands at each other everywhere, ride scooters around the office floor, watch YouTube videos, and even play LAN games while at work (I played Warcraft 3 and Quake III: Arena with my neighbors a couple days). So being in AE really isn't too bad.

Finally, two months after my start date, I was able to move back to my R&D desk and begin my real job. Ironically, none of the training I took involved the VXI/PXI products that I would be developing, which I found kind of...odd. So really the next week or two were also kind of like training for me. I learned about the software architecture for VXI device drivers, ran some tests and benchmarks to validate new pre-releases of software, and went through documenting and cleaning up an ancient test suite for VXI devices. I still haven't begun any "real" coding yet, which is really driving me up the wall, but I'm getting close to being there. :)

As for what VXI is, it is basically a different kind of PC that was designed with instrumentation in mind. When I say that, I mean the ability to measure, analyze, and output a variety of digital and analog signals basically. It consists of a few things:
  1. A chassis where you insert cards (think of a PCI card on your PC, but maybe 5x bigger).
  2. A number of VXI devices (the cards), one of which is the "controller"
  3. Software drivers for the controller that allows the user to communicate with it, usually via a PC
So my job is pretty much centered around development and maintenance of that third bullet, the driver software. The chassis and devices for this stuff are really massive. The pictures give you a small idea of what I mean. The first one is of a VXI chassis, and the other two are of VXI controllers. Some of the controllers take up two slots, and these ones typically have an entire PC built on them. Hard drive, PS2 ports, USB, firewire, monitor, ethernet, the whole works.

So anyway back to what I do. I've actually done very little coding at this point, which is pretty disappointing to me. I don't think it will continue being this way, so I'm just going to wait and see how it goes. Right now I'm working on fixing up a very old (circa early 90s) test suite for the VXI driver software and doing some bug fixing and validation related to that.

I'm surprised that I managed to rattle on this long about just my job. Well that's all I have to share for today. I'll post again in about a week about how things have been going with Allacrost, so check back in 2008. Happy New Year!

Labels: , ,