Archive for May, 2007

I wish we all could be “Dreaming In Code”

Posted on May 12th, 2007 in Computer Science, Software | No Comments »

Dreaming In Code Book Cover

A couple of weeks ago, I purchased the book “Dreaming In Code” by Scott Rosenberg, after spotting it in my nearest Borders bookstore. I had read a bit about this book from Joel Spolsky’s site, and I was very interested in the process of building software that would be “revolutionary”. I was also interested in how the group of developers would work.

I finished reading the book this weekend, and I have to say that it was extremely interesting from the beginning. From the initial idea of the software to the formation of the group, to the many setbacks and would be inevitably encountered, it offered me a great inside look at the group effort in producing software. As I’m already accustomed of working on my own, I wanted to see how larger groups of talented people could (and should) work. And surprisingly enough, the same things that happen to me at work happened to the Chandler developers as well.

What surprised me about this book is the fact that it goes back in time, and mentioned many breakthrough moments of software engineering history, like the 1968 NATO Software Engineering Conference, and Douglas Engelbart’s legendary demonstration in San Francisco (called by some as “The Mother Of All Demos”).

These moments, and many others, were non-existant to me before reading this book. Anyone who has a Computer Science or Software Engineering degree should be required to read this. It’s a very important part of the history of what we do. Like any History major who needs to know about Ancient Rome and Greece, people in the software development field need to know about what happened during the infancy of computers and programming.

While the story of Chandler’s development is a great read and what attracted me to this book, it was refreshing to read about the current problems in software development today. I know that this industry is far from perfect. But the constant changes that occur on a frequent basis simply show that we’re trying to make things better. We need to remember that compared to other scientific and engineering professions, computer science / software engineering is still a baby, an extremely-young 60 year old baby.

I hope that someday things will change for the better in our industry, and the software development process can be a painless, quick one. However, I’m afraid that the way the future generation are being taught the profession, most likely the same mistakes will be repeated over and over again. Like I said, the industry – or better yet, we – are not perfect at all. But we need to learn from our past mistakes. Certainly, those who cannot remember the past are condemned to repeat it.

Rejection!

Posted on May 8th, 2007 in Ruby On Rails | No Comments »

It’s certainly been a very interesting week for me. First, I was infected with the dreaded Pink Eye early last week, which prompted me to stay indoors from Tuesday to Friday. I finally got completely cured on Sunday night. Too bad it was just in time for Monday morning, which can be dreadful, especially when I had tons of work waiting for me on my desk for the four days I was absent.

However, I didn’t mind that much, as I got to make a ton of advances with the task of migrating the company’s current inventory system to Ruby On Rails (more on that in a future post). I also took the time to send the ol’ resume to some companies (which shall remain nameless for the moment) in the U.S., particularly San Francisco. Surprisingly enough, I received two answers to initiate the interview process with them! For some reason, I wasn’t expecting it at all. It’s probably the fact that I thought most employers would don’t waste their time with local candidates (although I made sure to emphasize the fact that I’m planning to move soon). In any case, that was pretty damn exciting for me, and I’m still psyched because of the quick responses.

So I initialized the interview process with both companies. One company sent some questions, seemingly just to gauge my personality traits. Once I completed it, someone from the company actually took the time to schedule a phone conversation with me and talk about the position. That was a really great touch, and I don’t think companies looking to hire great talent do this enough. After the conversation, which got me even more interested in the position, I received a programming test. It was right up my alley, and best of all, as the company is a Ruby On Rails shop, I had a chance to show my up-and-coming Rails skills. It took about a single day to complete (Sunday). I’ve been waiting for a reply, but I feel really, really good about this opportunity.

The other company sent me a written exam, mostly consisting of questions that challenge your logical way of thinking which I had to complete and return in an hour. These types of exams have been made famous by companies like Google. I thought I did pretty well, although I have to admit the questions were pretty tough. Maybe I was too nervous. In any case, I sent the exam on Friday afternoon and waited.

This morning, I woke up and checked my E-Mail for any response. I saw an E-Mail from the company that sent the written exam (not the Rails program). My heart raced as I clicked the link. Then I saw the following words: “Unfortunately we feel that *the company* is not the right fit for you at this time.” Needless to say, it certainly wasn’t the best feeling in the world.

I don’t know why I wasn’t accepted, although maybe I didn’t complete the exam as well as I originally thought. However, I do thank the representative from the company for taking the time to send the test in the first place. I’m guessing that if the company didn’t think I was actually qualified by looking at my resume, they wouldn’t have taken the time to schedule the test.

After a few minutes of being sort of heart-broken, those feelings were quickly removed. Why? I now know that I can – and need – to do better every time out. And to tell you the truth, the rejection pretty much motivated me to keep on going forward with learning new things. In fact, I took half of my lunch hour just to keep on adding new stuff to the program I’m migrating to Rails. This kind of opened my eyes, and makes me want to be better, the best I can.

I’m not bitter at all with the rejection. As I said, I genuinely thank the company for the opportunity in the first place. In the future, I’ll thank them again, when I’m much, much better at what I do.