StartPad.org » Members » People » Rakesh Malik

Rakesh Malik

I began programming as a hobby during grade school. In college, I continued to pursue programming on my own until I started taking computer science classes in college, starting with AI. During my last couple of years in college, I worked in a mechanical engineering lab, trying to apply what I had learned in AI to robotics.

While interesting work, it didn't pay the bills, so I moved on to work with a professor in the Kennedy Krieger Institute developing infant cognition models. Unfortunately, the professor's grant money was limited, so I eventually had no choice but to find a "real" job.

My first real programming job began a year later at SAIC. Largely through luck, I got placed on a project with a strong process and as a result had an opportunity to see how software development could work when done well. That project taught me a lot about object-oriented programming and C++.

My next project at SAIC was another, larger-scale simulation system. With the help of a senior engineer, I convinced the project management to let us use a new language called Java for that project, making it my first ever Java programming effort. In addition to learning Java and gaining more experience with object-oriented design and UML, I learned the value of speaking directly to the customer when gathering requirements. Unfortunately, I learned this lesson after delivering a demonstration product that met the requirements as we knew them, but did not do what the customer wanted.

After working on several other projects at SAIC, I eventually moved to the commercial world once I realized how far behind the salary curve I had become. There, some things were better, some were worse; my first commercial programming job was for a company that didn't understand how to create a product. While working on an administrative tool, I discovered a severe bug in the database layer... that had already been sent out to the developers who were building web sites with it. When the CEO gathered the developers up and told us about a major new feature that he'd been promising to our customers, I realized that we were in trouble. None of the developers had heard about this feature, and we had only one month before we were scheduled to release our software to testing, so there was no way that we could implement all that we needed to in time, especially since we had other work of our own to do. So I moved on.

Unfortunately, I was not very good at selecting companies; the next three that I joined ran into problems, resulting in budget shortfalls or bankruptcy, and accordingly significant layoffs. I was able to find other work before the layoffs began in two situations, but the third happened shortly after 9/11, so finding work after that took nearly six months, and I ended backin government contracting. By this time the government contracting world had changed drastically; no longer were we developing experimental projects using the latest tools and technologies, now we were on extended life support, patching and enhancing creaky and often brittle legacy products, and building glue code.

There were some bright spots, where I had opportunities to participate in R&D efforts, but these were few and far between, and the R&D review board took a surprisingly adversarial approach to our project, attacking our problems rather than helping us solve them.

I joined a promising health care startup in 2006 and did some good work with RoR, building an interface to the company's search engine implementation, complete with a tool similar to Google Suggests. This was going pretty well until some of the junion engineers used politics and nepotism to redesign the entire site at the last minute, resulting in considerable delays in getting the site off the ground, in addition to severe stability and performance problems.

Later in the summer of 2008, I received an e-mail from Amazon inviting me to an interview in the DC area, and ended up getting a job offer out of it, and as a result relocating to Seattle.

My Profile on LinkedIn