Andre Cooper

Coders at work – Jamie Zawinski

Coders at work is a book written by Peter Seibel that interviews Computer Programmer who have made significant contribution to the profession/craft by coding. My thoughts/takeaway/commentary on Jamie Zawinski’s conversation with Peter Seibel “That was kind of getting thrown in the deep end. It was like the Zen Approach — the master hit me with a stick, now I must meditate.” Jamie is explaining how in his formative years he learned when he thrown into deep and had to crawl back on this own. I can recall how I was assigned to work on this multi-threaded module called TDC – Traffic Data Controller. I was learning and wrestling with syncronization and threads in c while writing the code. “There was a bug in GDB” Jamie ends up finding a bug in GDB that was diagosning his problem incorrectly. On Perl “Oh I despise it. It’s a horrible language.” I couldn’t agree more. On C++ “C++ is just abomination.” Having coded in C++ for 4+ years and Python too, the problem is C++ is it offers everything under the sun.  It’s bloated and there are more than one way to do things. Something that goes with Perl as well. Positive is C++ run time execution is amazing and also the libraries and frameworks at disposal. Perl on the other end has CPAN. Question is how long will these language be popular, I can’t predict. “Second System Syndrome” “We were so focused on deadline it was like religion” “It’s not so much that I was proud of the code; just that it was done. In a lot of ways the code wasn’t very good because it was done very fast. But it got the job done. We shipped — that was the bottom line.” On being asked What he enjoyed about programming ? “Just figuring out how to get from point A to point B — how to make the machine do what you want. That’s the basic element that the satisfaction of programming comes from” On need to refactor one’s own code “I don’t remember too many occasions where I thought, “Oh, I did this whole thing inside out. I’m going to have to move everything around” That does happen sometimes.” On developer-level tests like unit tests “We never did any of that. I did occasionally for some things” Next I will be reading  Brad Fitzpatrick conversation with Peter. See you then.

Coders at work – Brad Fitzpatrick

“Bradley Joseph “Brad” Fitzpatrick (born February 5, 1980 in Iowa), is an American programmer. He is best known as the creator of LiveJournal and is the author of a variety of free software projects such as memcached.” Source : wikipedia He is just 31 years old and the youngest to be interviewed for the book. “Some of my first memories are programming with my dad. Like he will pull me into the kitchen and he was writing down a program on a paper. He asked “What do you think it does?”” I remember it was like “10 PRINT HELLO 20 GOTO 10″ He created LiveJournal while still at college. Awesome isn’t it. He mentioned the importance of knowing the stack that one is working on from bottom up. “I was thinking about things from javascript to how things were interacting in the kernel code about epoll and I was like, “Well, what if we have all these long TCP connections and Javascript is polling with these open TCP connections that going to this load balancers” To do for me after reading the whole conversation is  Learn more of vim. It’s my primary editor and I need to get better at it.

Coz Steve Jobs said so

“Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle. As with all matters of the heart, you’ll know when you find it. And, like any great relationship, it just gets better and better as the years roll on. So keep looking until you find it. Don’t settle.”

Apunka ESOP’s

Got some X no of vested share at one of the startups I worked for and they announced their first buy back program to accommodate new investors. What make me sit up was the multiplier factor. It’s HUGE. Not that I am going to be some corepati or a millionaire. But this is quite an eye opener. Someone with 2000 shares can take a break for two years and not work. I am still to decide if I want to sell or not. Personally I want to hold them further and not sell out yet. All in all what a pleasant surprise. Problems with ESOP’s in India are a) Regulatory process for granting ESOP’s are not followed as per norms by many if not most, b) Most recruitment in terms of number is with Mid and Big size companies, which are mostly public companies and employee are only aware of discounted share purchase programs not ESOP’s. c) Unlike US we don’t have volume in Merger/Acquisition/Public IPO’s of startups happening. Home grown companies like Infosys, mindtree did give away lot of ESOP’s and there are stories of lot of employees getting their share of success alongside the company. Mot many are aware of such stories.

Founders at work – David Heinemeier Hansson

Joshua Schachter is the guy who created Below is the text that caught my attention. Joshua had quite few web app sites that lead to He maintained a text file with like 20000 bookmarks. On being asked Why did succeed ? “First of all, because it was not a venture to start. I was building a product and that’s it.” Joshua also realized a bunch of projects that did not work out for him. Both pre and post On being asked What is your favorite bit of advice you’d give to a technical person who wanted to start a startup ? Reduce. Do as little as possible to get what you have to get done. Do less of it; get it done. If you’ve two things that you want to put together, take away until they go together. Don’t add another thing.  Because you can understand it better, you can analyze it more cleanly. The UI will be easier. Doing less is so important.

Coders at work – Joe Armstrong

A’int your average joe … He’s the creator of Erlang and the framework OTP. So Joe debugged people’s code for beer/benefits. “I would debug people’s programs. The standard debugging was one beer. Then it would go up — a two-beer problem or a three-beer problem or something like that.” He worked for the guy who worked with Alan Turning. “Michie had worked with Turing at Bletchley Park during the second World War and got all of Turing’s papers. I had a desk in Turing’s library, so all around me were Turing’s papers.” Joe also talks about How one gets intimidated with software libraries and view them as black box and think it’s impenetrable. However all one needs to do is start looking at the api and in matter of time you would be able to figure out how it works. Joe is also a big fan of message passing shared-nothing concurrency architecture and that goes without saying as he’s the creator of Erlang. He also praises Prolog and having fiddled with that language for a week or two, I can vouch for the fact that it will blow you mind away. All in all a good read. I am now skipping Chapters midway that are boring me. for e.g. Douglas crockford was a boring one for me for it seemed lot to do with javascript. By the way I am now trying to wrap my head around CSS and css frameworks this week, along with more advanced jQuery and AJAX using jQuery.  I need to come up to intermediate level skills in HTML/CSS/Javascript/jQuery.

Donaire vs Rigondeaux

Really looking forward to this fight ….. My money is on Rigondeaux … Freddie roach Manny Pacquaio’s trainer called him the most talented fighter he has ever seen. He had to leave his wife and children in cuba i.e. he fled the communist regime leaving his wife and children to pursue his dream of fighting pro boxing. Nonito was last year’s boxer of the year so this is going to be an insanely competitive fight. Rigondeaux’s is just too good to watch in the ring.

Hiring 101 for India Software Product Startups

Who are you ? A Business Guy or a Tech Guy. Can you read a piece of code and understand what it does ? No, then don’t pretend to understand it. Get someone who understands coding to help you assess and hire the right candidates. Don’t fake it when hiring. If you are a technical guy who has never ever sold a thing in your life don’t pretend you understand sales when you are hiring a Sales Head. Bottom line – Be Real, get expert advice and help. Hiring consultancy firms and recruitment software Hiring means a lot of resume searching, downloading, screening resume, calling and scheduling interviews, interviewing, dispatching offers and seeing most of them rejected. Get a recruitment firm they don’t cost much and some give an option to pay them when you hire a candidate. That too after 3 months of them joining you. Believe me it saves you a lot of time. If you intend to do all of this yourself spend a little money on recruitment software. Don’ t use a spreadsheet to organize yourself you will waste a lot of time. Quality vs Quantity Don’t seek refuge in numbers, seek experience. I see many entrepreneurs inclined towards hiring freshers by the dozens and having few Technical Leads in the hope to keep cost down and get more work. It rarely works out that way. Too few mentors for freshers doesn’t result in work output you hoped for. Also there is obvious difference in quality of code written. Get team composition correct. Try to hire experience programmers first and then empower them on hiring freshers they will mentor. $$$$ Money makes the world go round. I know founder who are charismatic and can persuade people to work on less then what they were drawing at previous jobs. Senior Management Guys are more willing to accept ESOPs and stay for whole vesting duration. Like they say if you pay peanuts monkeys work for you. If you have a tight budget. Hire few, pay them well. It usually takes 2-3 years for a product code base to reach a mature stage. Best is if your original employees stick with you. There is a invisible penalty to pay every time an employee leaves and new one joins. Design Design Design UI == Product. It’s what the customer uses. Most technical startup founder run the firm on stringent budgets and tend to think of design as one of the last to-do item. Most of the time hiring an experience UX Guy with Masters in Design [ Interaction/Visual/Product ] from NID/IDC as full time employee is out of reach. Worse even if you hire them sooner or latter you will realize that once the product is out you don’t have much work for them. Big design firms are awfully expensive. Search on behance and  coroflot for freelancing designers in India and abroad and get quotes from them. You need to pay by the hour later which works for everyone. If you are making a physical product then you need a designer whom you can meet face to face often. The Pitch Most Entrepreneurs are pumped up about their venture. For them it’s THE THING worth doing. However you want to spend considerable time educating the prospective employee on What the company intends to do ? Who are the founders and their background ?. How is the company funded ?. What the role and responsibilities are ?. Get your pitch in place. Perception is important but if you lie you reap what you sow. Infrastructure Make sure your workplace is clean and neat. It makes a intangible impression on the candidate. Specially Senior Employees who have worked at large. Yes you cannot match MNC when it comes to How big the workplace and facilities are ?. However you got to compete, so invest in good chairs, desk, water cooler, air conditioner, sanitizer. Put some nice pictures on your walls. Make the workplace no matter how small pleasant. I once interviewed at Vmware and in the final round HR offered me some biscuits. I told him I cannot consume gluten and upon knowing that I have immune disorder towards gluten HR promised me that if I join he will make sure the pantry / canteen will have gluten free meal options throughout the year. He also took me to an meet an employee  who had some dietary health issues and told me How they helped him out.  I was blown away. I am sure they have all the money in the world to do extend such help while a startup founder doesn’t. But point is most founder don’t put thought into How their workplace looks like and is it comfortable for employees to work ?. Be Trigger Happy My first company I worked for despite everyone’s disapproval the founder hired this one guy for GUI work. Turned out he couldn’t write a for loop, which was also found after we interviewed him. Founder is a very kind person and ended up taking lot of time to ask him to leave. If you hired the wrong candidate you need to ask them to leave asap. Many founder get desperate and hire people because many offers get rejected. Be ready for rejection. Hiring is very tough for startup then for big companies. I heart startups and everything about them I hope this is helpful for someone.

Hybrid Apps

At ThinkLABS our end customers are children who use our Robotic kit in classrooms. In India you will find schools running Windows 2000 , XP, 7, Vista. Computer Lab may have a network, and not necessary all computers have internet. The Second Generation of Visual programming language that we are working on unlike the previous one CiMPLE is not a native application. I have looked at frameworks that allow web apps to work on desktop too. Google Chrome Packaged Apps is one such framework and most promising of the lots. We are not using it. Why because it doesn’t run on all windows OS. So I ended up creating my own using C++/Qt. Qt never stops to amaze me. They have done a nice integration with QtWebkit that allows me to seamlessly integrate javascript function to C++/Python counterparts, I can pass data, trigger code against user interaction with components etc. As your code more less and less you run into a piece of code or software that make you as How the heck did they do this ?. It took me a while to realize they integrate javascript rendering engine to call corresponding C++/Python code. Amazing isn’t it. Qt as a community as a library is worthy of praise.