Coding, design, and broken feedback loops
Itay Maman. Programmer, researcher, teacher.
Timeline: Coding at Google (search backends, dev. infrastructure) for the past three years. Prior to that: IBM research; Ph.D. (formal patterns in java programs) at the Computer Science department of Israel Institute of Technology (aka, Technion); a couple of startups. In between I also interned, at IBM's Watson Research Center.
Since 2009 I am teaching Software Design at the Technion. This is an advanced-undergrad/grad. course dealing with topics such as coding, design, and broken feedback loops (just like this site).
While I could theoretically use an existing blogging platform (actually I tried it for a couple of years: javadots) I decided to work on my own platofrm. While part of the reason is the passion to try new technolgies, there were additional reasons. My wishlist included:
So several weeks ago, while on vacation (seems like all best programs are written on vacations, isn't it?) I sat down and hacked this web-site.
This page is node.js served. Currently, there is a mongodb instance but it is only used for storing sessions. All content is fetched from files, which are part of the git repo. For testing I use jasmine-node and zombie. Whenever I push to Github I also push to to an Heroku-hosted staging app. If I want to update prod. I run a script program that (a) invokes acceptance tests against the staged version; and (b) re-deploys that version to prod. Finally, Pingdom is hitting the main page once a minute to make sure users can see something.