Saturday, March 20, 2010

What's Wrong With Engineering Interviews -- Part I

This past week has been a crazy one. I don't know how it happened or why it happened, but starting Monday morning I had a good number of recruiters calling me, e-mailing me, and asking if I would be considered in about a dozen different jobs. And ironically enough, all of these jobs sounded like something I would be interested in doing because they were mostly Linux related. I had been searching (though not that hard) for Linux software engineering jobs for months and couldn't find anything promising so I found it odd that suddenly all these Linux jobs were falling in my lap.

I'm happy to report that I did get an offer from one of these positions, which I accepted. Its a short-term contract that will only last a few weeks but the contracting agency I'm employed by should be able to keep me busy with more opportunities after that. I think giving contracting work is a good opportunity for me because I'm still unsure of what I would like to do for my career and being exposed to a variety of different companies, responsibilities, and technologies should help me to get closer to finding an answer to that. And perhaps best of all, I'll be able to gain a wide array of experience much more rapidly than if I were to sit stagnant in the same corporate job for several years. So I think this is ultimately the right choice for me, for now.

One immediate drawback though deals with health insurance. I've been without health insurance for almost a year now, since I left my previous job. So I was looking forward to having it again, but then I learned that the provider for my contracting agency is Blue Cross Blue Shield (BCBS). I was "insured" by these bastards under my father's plan when I was in graduate school. When I fell ill and experienced all those psychological and physical problems I spoke about so many years ago, they denied me coverage again, and again, and again. Always coming up with a new bullshit excuse for why they shouldn't have to cover me (such as "you're not a full time student", even though I submitted proof that I was). So when I needed health care the most, they tossed me aside. Now I've looked at their plans and the minimum deductible is $1,500, which I doubt I would spend through in a normal year. So what's the point in getting health insurance? Yes, I realize that the purpose of having health insurance is "in case something happens". But guess what? Something happened to me when I was under BCBS in the past and I ended up having to pay everything out of pocket anyway. Being insured under BCBS is not going to give me much in terms of comfort or security, and I am sickened at the idea of giving that evil corporation a single dime of my money. So I'm undecided as to whether I'm going to enroll in their health benefits program. I might try to seek out better insurance on my own (if it exists), although I know that's probably a lot more expensive to purchase individually than through your employer (and in my opinion, that is wrong).




All of that talk aside, what I really wanted to discuss in this post is what I perceive to be the problems concerning the way that engineering interviews are conducted. As you can imagine, I had a lot of interviews this past week (both on the phone and in person). I did well in all of them so I'm not bitter or anything, but I found some of the questions I was asked to be inappropriate. For those of you who are not engineers, engineers (at least in my discipline) are subject to a little something called technical questions. The primary purpose of technical questions is to figure out if the interviewee is actually competent in the material that their background education and experience highlights. There are many different types of technical questions as well. Some may cover your knowledge of basic/core concepts while others test your analytical problem solving abilities. I'm going to use an analogy to give you an idea of what this is like. Lets say a banker is interviewing for a job at a local branch. After the common Q&A between the interviewer and interviewee over the contents of the resume and past experience, the interviewer then proceeds to ask the interviewee the following technical questions.


1) What is a deposit?

2) Explain to me the concept of currency.

3) What are the trade-offs between a barter system and a monetary system and which do you prefer?

4) Give me a specific historical example of hyper inflation, including dates, the inflation rate, the cause of the inflation, and the response(s) of the bank(s) involved.

5) A customer comes in wishing to open a new savings account with a $500 deposit. The customer continues to make a $25 deposit each month and withdraws $100 every year after the account has been opened. The account accrues monthly interest at a rate of 0.25% when the value of the account is less than $1,000 and the interest rate increases by 0.01% for every additional $1,000 that the account is valued at. What is the total value of the account after 64 months? (You may not use a calculator or computer to solve this problem)

6) You are blind and need five pairs of matching colored socks for a trip. Your sock drawer has a total of one hundred socks of five different sets of colors. Each colored set has at least five pairs of socks. What is the minimum number of socks you need to take from that drawer to ensure that you have at least five pairs of matching colored socks?


Sounds like a fun interview, doesn't it? I tried to come up with a good sample of the types of technical questions I and other software engineers are typically asked in an interview. Let me give you a brief explanation of the above questions.




1) Defining a Basic/Core Concepts
This is such a basic question its almost insulting. You (presumably) have at least a bachelor's degree in your field from a respected university and years of experience on your resume. Yet they insist on asking a question that you learned your freshman year of college. Its ridiculous, isn't it?

2) Explaining a Basic/Core Concept
This is another easy question, but its a little awkward. You know what a currency is, but perhaps you're having a difficult time coming up with a proper explanation for it because its something so fundamental in society that you've never had to explain it to anyone before (except maybe a young child). So you may fumble around with words and try to explain it as best you can.

3) Historical Irrelevancy
An odd question. They want you to analyze something that is only of historical relevance to your position (banking) but is pretty much guaranteed to not be applicable in any way to the work that you'll be doing.

4) Demonstration of Esoteric Knowledge
Now we get into the bizarre realm. They are asking you for a specific example of a situation that you may come across in your job, but are unlikely to. You may have studied something like this years and years ago when you were still a college student, but you've likely forgotten about it by now since its not knowledge that you applied on a regular basis.

5) Practical Problems in Impractical Situations
Now you're asked to do a task that seems a lot more applicable to your job, but they strip away any and all tools that you'd always use to do that job. What does this prove? That you can still do your job during a power outage?

6) Puzzles
The example question I asked above I have actually been asked in an interview. In fact, it was asked of me in my very first engineering interview and caught me completely by surprise since I hadn't yet been enlightened to the joys of technical questions in an engineering interview. These types of questions are completely irrelevant to the job you are interviewing for and only serve to test your general problem solving skills.




This post is already long and I'm just getting started, so I'll finish here for today and continue with a part II post another time. I'll be going over some of the recent questions I've had, the formats in which I was asked those questions, and analyze what questions I felt were useful (for the interviewer) and what questions I felt served absolutely no purpose other than to irritate me enough to blog about it.

Labels: , , ,

Wednesday, March 10, 2010

Five Months Later...Life is Great

Its been a long time since my last post. I didn't forget about my blog or anything. I just never updated it due to being either too lazy or too busy. But let's spend this time recapping what's happened in life since that time. Here we go.

October 2009 ended with completing my second Half Ironman and concluding my second triathlon season. That race went well despite suffering numerous problems from start to finish, like getting kicked in the face and having my goggles knocked off within the first 5 minutes of the swim. I was happy with the result though and I enjoyed the race more than I did last year. Before the end of tri season I was already working on my next goal, completing the Austin Distance Challenge, which is a series of seven races from a 10K up to a full marathon throughout the fall and winter months. Before my half ironman race I already completed the first two races in the series at a distance of 12K and 10K. The 10K race I ran I set a personal record by over two minutes, which I was really excited about.

In November I ran my first half marathon in San Antonio. Well, technically it might have been my third half marathon, since there's a half marathon run in the final leg of a half ironman. But this was my first time running a half marathon race that didn't have anything other than running to it. It was also my first time staying overnight in a hotel for a race away from home, something I think I'll be doing more often in the future. I will have to say though that I had to learn the hard way how to race these longer distances. In San Antonio I started out at a blistering (but comfortable) pace that put me at sub 20 minutes for the first 5K and sub 41 minutes for the first 10K. I totally ran out of steam in the last mile of that race and I was hurting bad, but I still finished in 1:30:48, which I was pretty pleased with. What was amazing about that race was the sheer number of people in it. I finished in 150th place overall of over 30,000 runners. That's right: thirty thousand runners. And that doesn't even count the few extra thousand runners who did the full marathon that day.

The week before Thanksgiving I visited my mother who lives in Gilbert Arizona, part of the Phoenix metropolitan area. In addition to visiting family that week, I had one other very special purpose behind this trip: Ironman Arizona. I've had my eye on this race for over a year. In fact I intended to register last year, but at that time I didn't realize that Ironman races sell out within hours or minutes after online registration opens. I learned that volunteers get priority registration at Ironman events, and since Ironman Arizona was less than a week before Thanksgiving it just worked out perfectly for me. So I volunteered there both at packet pickup and at one of the run aid stations. I also got the opportunity to study the course, the race, and get some training time in. I have to say that Tempe Town Lake was the coldest water I think I have ever swam in and I am not looking too forward to jumping in there again. But it was a great race to watch and the atmosphere was unlike anything I've ever felt before. It just felt so epic, with so many people pouring in so much time into this single day in their lives. There were motivational signs, chalk writings, and crowds everywhere. And yes, I am now officially registered for my first Ironman race to occur in November 2010. I've got a few months left to get in the best shape of my life!

Since the only racing I was doing after October for the next few months was running, that's pretty much all I did. It was nice to take a break from the continual struggle between wondering whether I should swim, bike, or run on a given training day, but I quickly grew anxious for the next season and wanted to do another triathlon right away. December marked the furthest I've ever ran in my life, getting in a 20 mile and then a 22 mile run. My training was going great until that 22 miler, when somehow my right achilles heel just exploded on me. I took an ice bath after that long run (my first one since high school 10 years ago) and did everything I could but it wasn't enough. The pain was so bad that I was broken and unable to run. Well, I could have ran but I didn't want to develop severe injuries over the winter and then start the next tri season with a beaten-up body. So I took a couple days off, that turned into a few days, that turned into two weeks. Two weeks with almost no exercise. I could have done some cross-training, but I was just lazy.

I sunk into a depression at the end of December and throughout the first part of January for a few reasons. First, I missed triathlon training that much that it affected me emotionally. Second, I couldn't run due to this annoying injury that just appeared out of nowhere with no warning whatsoever. And third, I felt like I didn't have any direction or purpose to my life at the time. I was still unemployed and hadn't found the type of job I want, I wasn't in school or doing anything productive other than keeping my body in shape, and I just fell into a rut. I started playing video games a lot, which is something I have a habit of doing when I get depressed or don't have a social life (sadly I admit that I don't have much of one). Its a self-replicated cycle, because playing games too much makes me depressed, which only makes me play games more to forget about being depressed. Pathetic, I know. During this time of 3-4 weeks I experienced many feelings and symptoms that I had during my fight with my anxiety disorder as a graduate student, which made me recall details about that experience and the hell I went through then. Fortunately, I later managed to get my head back on my shoulders and I feel great about myself now. But that's jumping too far ahead. Lets go back to the end of 2009.

At the end of December I interviewed for a software engineering job at UT Austin. This was the first job I was really interested in since I left my last job in April 2009. The interview lasted a full 8 hour day and I met with perhaps 10 different people on the project, from engineers to astronomers to managers. It was a little different than what I was used to, but not so different that it was unfamiliar. The interview went great (I thought) but I fumbled at the end. They decided to save all of the technical questions for the end of the day, when my mind was feeling a bit weary from the last 6 hours. I hate technical questions, really. I mean I have an undergraduate and graduate degree from two of the top ranked engineering universities in the entire world and I've been successful at two full time engineering positions in addition to being an active member of the open source community and founding and leading my own project. Why does it matter that I can't tell you off the top of my head what the standard signature is for a pointer to a method of a C++ class? I know the answer: because somehow people seem to sleaze their way through college and work by relying on others instead of being diligent with their own studies and work. I know because I've observed and worked with some of them. But I still find technical questions irritating, especially because they're often the weakest point in my interview. Anyway, the technical questions I was asked weren't too difficult, but I gave poor/incorrect answers to a small number of them because I was so anxious to spit out an answer that I didn't take the time that I should have to really think through the problem. This happens to me sometimes in interviews and I need to work on it. Well a week later I am told that neither myself nor the 4-5 other people that they interviewed were hired. They decided that they wanted to have another round of interviewing candidates but would still consider me, basically not giving me a yes or a no. A couple months later I learned through UT's system that they hired someone (I was told that they'd keep me informed but I guess they forgot). So it was disappointing, but I wasn't exactly holding out hope that they'd reconsider me anyway.

Now on to January. I start my first race of 2010 with a 20 mile race on January 10th. I had barely run or done any exercise for two weeks prior to this race and my achilles injury wasn't completely gone either, so I went into this one not feeling very positive. What I had learned from my training runs is that I can run for a few miles just fine, but my achilles starts acting up after maybe 7-8 miles and it really kills me. So my plan for this race was to go out at a speedy pace and get as far as I could before the pain disabled me. The race happened to be on a freezing cold day too, below 20F, easily making it the coldest race I ever ran. Well I held a 7:00 minute pace for 9 miles, which was as long as I could. And then I fell not due to my foot injury, but to exhaustion. My legs were practically suffering from atrophy due to all my non-exercise (mostly composed of sitting in a chair and playing video games all day) and I really paid the price. I only got slower and had to walk more and more as the miles wore on. The last 5 miles especially were sheer torture for me. Cardiovascularly I felt fine, but my leg muscles were so fatigued they could barely support me. It was a horrible race for me. So bad that it knocked me back from 2nd place to something like 6th place in my age group in the Austin Distance Challenge rankings. That sucked, but I was glad that it was over. Surprisingly, my achilles didn't bother me one iota that race. So the good news was that I was healed. The bad news was that I was out of shape, with a little over a month remaining before my first marathon.

After that race I started coming out of my depression. I got working on Hero of Allacrost again, that open source game project I founded oh so many years ago in June 2004, a few months before I first started writing to this blog. I had repeatedly tried to get myself back into working on it, as I had been lacking motivation/interest for some time, but it just wasn't happening. Then suddenly one day, it did. And since then I have been working on this project like crazy. It feels great, and I've helped our team to accomplish so much in such a short time of a few weeks. About a week and a half ago we made our first release since 2008. It's an unstable beta, but its also the best thing we've ever released in my opinion. I may comment more about this project and my roll in it in another post, but for now I'll leave it at that.

Toward the end of January I had another half marathon race (my third, as I had one in November and December last year). It was two weeks after that awful 20 miler race, but I had renewed energy and my body wasn't making any complaints so I went into it feeling good, though definitely still not 100%. Friday night before the race I did a swim workout and some light weightlifting, then went to the grocery store. And then it happened. I still don't understand what "it" was, but suddenly my right foot started hurting so bad I couldn't even stand on it. I was baffled. I was shopping and I got injured? I thought I must have just temporarily sprained a muscle somehow, but it was still there the next day. I had a friend come in to town that weekend and we did a lot of walking, which was painful. I was not happy with my situation at all. Sunday morning was race day and my foot pain was worse than ever. I couldn't do my usual warm up run because it hurt so much. I even avoided standing on it because it hurt. This particular race had a start delay of almost an hour due to high winds knocking over police barricades and making the course unsafe, so I had to stand there, on one leg, wondering what was going to happen to me. I was prepared for the likely possibility that I might DNF (not finish). Finally the race starts and the first mile is torture. I was wincing in pain with every single step. I took it out really slow and easy. Then at about mile 1.5 my foot started to feel a little better and so I started to go a little faster. And the pain gradually subsided and eventually I was able to run my normal pace. I did have a few instances where the pain suddenly came back strong if I landed on my foot wrong and I was also unable to make sharp right turns, but other than that I was good to go. I had a great race after that. Actually thanks to that injury, I managed to run that race in negative splits (a good running strategy where you run your last half of the race faster than your first). I'm still not sure what that injury was all about, but within another couple of weeks it was gone for good.

Then came February, and on Valentine's Day my first marathon. Due to these wacky injuries I had been having, I was nowhere near the shape I wanted to or should have been in coming into this race. But as in life, things don't always go your way and you have to make the best of what you got. One thing I had learned was that races tended to go my way if I started out slower than my goal pace and then sped up along the way. If I went out too fast in a race, I would die well before the finish and end the race on a bad note. I had run the entire marathon course (not all at once, but in two pieces) during my training so I had a strategy for every section of the race. I have to say my strategy worked well and things were looking good. Unfortunately though I just didn't have the endurance for a full marathon in me and starting with mile 19, I started to falter. But I still had enough left in me to finish those last 7 miles with dignity. My total finish time was 3:17:54, but I wasn't too upset about it. In fact, immediately after crossing that finish line I knew that I wanted to do another. I knew that if I trained properly and diligently and didn't let these injuries put me down, I'd be able to cut off 10 minutes or more. I don't know when my next marathon will be yet though, and I've backed off of running those long distances for now as tri season training has officially begun for me at the conclusion of this marathon.

Its March now. I'm starting to feel pretty anxious about still not having a job. Next month will mark the one year anniversary of resigning from my last position. Money isn't a problem yet, but I find myself wanting to buy things I want/need but having enough sense to know that I should only be spending my money on essentials right now like food, gas, and rent. I'm also so happy and busy working on Allacrost that part of me doesn't want to get a job now, which will greatly reduce the amount of time I have to spend on one of my favorite hobbies. I had an interview earlier today for a job I'm really interested in, but unfortunately even though the interview went well the likelihood of me getting the job is low since I am missing experience with some of the libraries and toolsets that they are using. But we'll see. I might actually work on the project pro bono if I don't get hired. I really do need to get on the ball and be more proactive about job searching and not restricting myself to non-corporate jobs. I don't feel I have the luxury of time anymore to wait around. I do get contacted by recruiters maybe once or twice a week, but usually I'm not interested in what they're selling.

So I guess I'll start to wrap this up. Its 5:30 in the morning and I was unable to sleep last night, hence why I decided to kill time by writing to my neglected blog. I've been on a really weird sleeping schedule and even I don't know when I will fall asleep now. 2010 is going to be a year of many firsts for me. Next month I'm riding in the MS150, a 150 mile bike ride to raise money and awareness for multiple sclerosis research. If you'd like to make a US tax deductible donation to help me raise money for this cause, I'd greatly appreciate any help you can give! I've heard of this cause for some time and finally decided its time to do it. I've already finished my first marathon last month. Before summer begins I plan to complete my first century, which is a 100-mile bike ride (the 150 mile ride for MS150 is split across two days). And then of course in November I'll be competing in my first Ironman. This is going to be a big, successful year for me I can already feel it. And not just with regard to athletics either. Oh, and in case you were wondering yes I still have many things to remark upon and criticize regarding religion. I've actually found a lot more material and continue to study and learn all that I can so you can expect many of those things to show up on here soon. I'll try to write here more frequently than I have in the past few months, but I'm not making any guarantees! Thanks for reading.

Labels: , , , , , ,