Don’t be evil Zomato

I just got spammed by somebody at Zomato. They weren’t selling viagra, but they wanted me to join their development team and what not. It was a little surprising because of all the companies around in India, you don’t expect Zomato to be spending spam, so I went through the email. Here’s what I found

PS. You are receiving this one time email because you signed up for the Zomato API. If you are not interested you can safely ignore this email and you’ll not receive any more communication in this regard.

That just sucks.

How does signing up for the API give you permission to start sending recruitment emails my way. And oh, you don’t need to remind me that I can safely ignore this email. I have made sure I mark it as spam.

That just reminds you to not give out email addresses, because when push comes to shove, even companies as loveable as Zomato would start throwing crap your way, all because they HAVE your email address.

Here’s the full email.

Subscribe | Tagged , | 3 Comments

[Github] Audio on iOS, Yahoo’s Mojito and Multiple Internet Connections

Here are some interesting things from the github mafia

Novocaine

An analgesic for high-performance audio on the iPhone, iPad and Mac OS X.

Really fast audio in iOS and Mac OS X using Audio Units is hard, and will leave you scarred and bloody. What used to take hours relentless sobbing now starts with just a handful of lines of code.

Check it out here : https://github.com/alexbw/novocaine. You can’t see the history of commits for this project on Github, but it’s the same AlexBW who wrote iPhoneFFT

Yahoo’s Mojito

I’ve always wondered what developers at Yahoo do these days. And well, it seems like they aren’t wasting all of their time.

Mojito is a sweet (and minty!) MVC application framework built on YUI 3 that enables agile development of Web applications. Mojito allows developers to write client and server components in the same language (JavaScript), using the same framework.

The source can be found here https://github.com/yahoo/mojito/. Yahoo also has a few other interesting projects up on Github like Oozie – a workflow engine for Hadoop, the much older performance testing tool Boomerang.

ISP Unity

This one is from somebody much closer to home and if you’re not in India, you don’t know how important this is!

ISP Unity lets you take multiple different broadband / leased line connections and then automatically load balances so that your internet doesn’t go down. Take that Reliance. And Airtel. And BSNL. And Tata.

You can find the source here – https://github.com/aruntomar/isp_unity. Even though Arun is a veteran in networking, he’s just got started with Github. I look forward to some more cool stuff from him soon!

Subscribe | Tagged , , , , , | 1 Comment

How to always get a ticket in Tatkal

The fact that you’re reading this post means that you’re one of those who can never ever seem to get a train ticket in Tatkal when you need one.

But don’t worry, there are about 120 crore more suckers like you, who are armed with broadband and leased lines, the bleeding edge in phones, tablets and computers, and the will to get up at 8 in the morning.

The problem is certainly difficult to solve. And the one thing that difficult problem reminds me of is all those engineering books which always left the difficult problems for the readers to solve as an exercise. Dude, if you don’t know the answer, just tell me, I’ve no bloody clue either.

Anyways, so the major issue is that finding tickets in tatkal is impossible is because the site is as fast as Inzamam ‘ul Haq between the wickets. I can think of at least three ways in which the problem can be solved. One is to solve it from the service provider’s side (or site), the second is by using a killer third party solutions (which sucks less), the third is do some technical trickery or wizardly from your side, and finally the fourth and the easiest solution (which will come at the end of the post).

The Service Provider

Believe it or not, the “slowness” of your website is directly proportional to the incompetency of the people running it. This is not to say that the developers at IRCTC suck, it’s just to say that the overall competency of the company lacks a respectable threshold.

With this in mind, I started venturing on the internets to find quotes by people who have a say in how the website runs and I happened to come across this fantastic article.

Subir Agarwal starts off as a smart guy

One need not put a separate request for the train, seats, availability and fare. The intelligent enquiry software would help getting the required information from a single request to central server and that in return bring down the load on the servers

but soon comes out with quotes which kind of make me quiver

the number of bookings on an average had been increasing multifold compared to the servers/infrastructure. These bookings and enquiry request are 6-7 times higher during the peak hours than the rest of the day. So while the existing infrastructure is well equipped to handle the daylong traffic, it is the peak hour traffic that clogs servers.

If I met Subir, I would love to tell him, “Boss, every website faces the same issue. This is why when you design a system (especially one as huge as this), you design for the peak load.” But well, he doesn’t really listen, anyways, he goes on further

new-age technologies like virtualization are already being tested, but even they have their limitation

Now again, virtualization is not really new, so kindly hold your horses on that.

“The best suit would be if we could get more 40-50 servers just for the peak hours to share the load, but none of the systems integrators today provide such facility on rent or any other ways.”

I don’t mind hearing startups bitch about something like this, but for a company which did a crore successful transactions last month, it’s a lame excuse.

I’m sure Subin had his reasons, any maybe he knows how to fix the mess and doesn’t have the authority, so let’s just give him the benefit of the doubt.

Third Party Solutions

There are a number of super popular companies who are in this field, and they have made things easier when it come to flight bookings. Things still suck (and especially now) when it comes to train bookings. I quite loved the Cleartrip interface and I believe apps for mobile devices are soon coming out from the other players too. (No, don’t mock me, I’m not taking about WAP sites, I’m talking about real iPhone and Android apps).

IRCTC kind of killed these people by asking users to login with the IRCTC login when you use one of these sites. The number of problems with that are tremendous, however, the biggest is that when you try to use say Cleartrip and enter your IRCTC username, these buggers CHANGE YOUR PASSWORD! (It must be some ridiculous piece of code sitting there, which nobody at IRCTC know about. I just hope to God, it’s not by design)

A few months back, yours truly decided to solve the problem by caching a lot of things on your device and our servers, with our lovely app Interminus. We wrote crawlers to make sure that we could build the application before getting an API, but after everything, we really couldn’t convince any of the big shots in the travel industry to give us the API. I swear to god, I would have made life fantastic if they had just given us the access. Sadly, our app is still not online because unlike other apps in the AppStore which are stealing content, I just couldn’t convince myself that no matter how good your intentions, you can’t create a killer product by stealing things.

Technological Trickery

Moving on to another sphere of the issue, if the service provider (which is our beloved IRCTC) would not budge about making their site super fast, the only other option is to game the system and start setting up automated systems similar to what people build for Arbitrage. I was seriously considering that till I found that you can get yourself arrested for that. These guys were certainly scumbags, but it just means that the company doesn’t really appreciate technology like this.

The Zen Solution

All in all, here is the solution that you have been waiting for:

The only way is not to want a ticket in Tatkal. Plan months in advance, get a ticket three months before you have to travel, and one day before your day of journey, get up at 8 in the morning, open the IRCTC website and laugh to your heart’s content.

Subscribe | Tagged , , , , | 9 Comments

“Design” is how it works

John Gruber goes all out today with a great article on Steve Jobs’ work, quite a bit of history and his utter contempt for Walter Isaacson’s treatment of Jobs’ work. If you have 15 minutes today morning, head over there to read it now.

But “Design is how it works” is a much better statement of Apple’s philosophy. Talk of a “product’s essence” (Isaacson’s words) or “the fundamental soul of a man-made creation” (Jobs’s) only serves to separate, conceptually, the art of design from the cold hard science of engineering. With just five words, “Design is how it works” expresses succinctly and accurately that engineering should and can be part of the art of design.

Here are some more interesting reads on Apple and Steve Jobs’ story – Folklore and Nytimes

Subscribe | Tagged , , , , | Comments Off

Which mobile devices do people use to download your apps – Numbers from USA Today

Geekwire ran a post today giving out usage statistics of different mobile devices, and the numbers reveal a good story about how the operating systems are doing.

Here are the numbers in a nutshell – 69% downloads are on Mobile Phones, while 31% are on Tablets. Overall, 67% percent of downloads happen on an iOS device. If you consider only phones, the ratio of iOS to Android is about 60:40 while if you consider Tablets, 82% users were on the iPad followed by Kindle and WebOS each with about 7%. Users who used Android based tablets were only about 4%.

So if you’re a publisher and you’re looking to start development of your mobile applications, this is the order that you need to follow
1. iPhone App
2. App for Android Phones
3. iPad App
4. App for Android Tablets
5. Windows Phone

Subscribe | Tagged , , , , , , , | Comments Off

Knowing what to say

The biggest problem with starting up and doing your own thing is a lack of confidence about how things need to be done. Many new entrepreneurs (those have started up, not those who are planning to) ask me about how to handle this part of the business or handle that part. Most feel that there is a certain way of doing things, which they assume is similar to how most big businesses handle things, and they’re not sure if what they are doing or saying to potential clients is right.

Here is something interesting I found for the next time somebody asks me this question – Do you know what Alok Kejriwal said when the first company approached them to place ads (it was Intel)? Here it is

“Wow! But Ajay, I don’t know what ads to sell you, the prices of the banners, etc. Also, I don’t know what the ads will deliver to you!”

That’s it. You can’t always know what to say or do. The only way forward, most of the times, is to just do what feels right, at that time.

There are a lot of other interesting conversations on Alok’s blog

Subscribe | Tagged | Comments Off

Disruptive Technology Product Startup

Artificial Intelligence, Machine Learning, NLP and Speech Processing.

I find it disturbing that a number of companies use terms like these to describe themselves to journalists. The problem is not with these words or verticals. As a company if you’re working on things like these, you’ve earned yourself the right to be called engineers. The problem is that most companies talk about these without really doing anything.

If you’re a journalist who’s reading this, please take a little time to understand what each of these terms mean, and ask the company more specifics about what exactly do they do. If their CEO can’t, please label them as bogus, irrespective of the fact that they’ve been funded or not.

If you’re the founder of a tech company, please take a little time to explain in more detail the cool algos that you’re writing. When you don’t do it, it all looks really fake.

If you’re a investor here in India, please invest in companies which are really disruptive. Mobile phone recharge is not disruptive. Local deals is not disruptive. E-Commerce is not disruptive anymore. You’re really killing all us techies out here.

Image by x-ray delta one

Subscribe | Tagged , , | 2 Comments

Strava

Given the kind of stuff that’s available to us these days, it’s quite easy to come up with really interesting ways to kill time. Here’s what I did with the extremely powerful Strava app and website.

(For those that aren’t sure what this is, it’s a comparison between the time it took me to cover 10kms today and the time I took yesterday. The one in blue is for today and the one in orange is for yesterday. Sadly when you ride once a year, you can improve by 10% on a daily basis).

Subscribe | Tagged , | Comments Off

Sparrow – the silent killer

It was a while ago that the SparrowEmail App launched. Sparrow is one of those apps which is really addictive, and I was just hooked on to it. I kind of dumped the gmail client in the browser and decided to start using this for all my email consumption.

The Early Signs

Initially, it was all good. But then I started running into a few strange issues. It’s possible that some of them came up because I use email in a way which is different than most users. Each of my emails (yes each and every one of them, for the last 6 years) have been tagged with at least 3 tags. One tag is for the name of the client, one is for the project, and one is for the priority or the importance. This means that I have more tags than you can possibly imagine. The Gmail web app handles them better than I could ever hope. However, this became a problem with the initial version of Sparrow. I used to allocate my tag trio to each email and some time later I would search for the tag and the email would not show up. It took me about a week to realize that the tags were getting lost!

If you’ve used a software like your life depends on it, you know bugs can creep you out a little at a time. My wife would even go on to say that I became angry and irritated. That was when I knew I had to give these guys some more time to fix it.

And of course, they did. But we’ll get back to it later.

Back in love with Chrome

I spend the next month or so using the Gmail web client, and all was good, except when it’s in chrome, it’s easy for the tab to get lost. So I would have multiple windows open at any time, and I couldn’t Cmd+Tab to the email client. This made me a little jealous of all those people happily using Apple Mail and Outlook, even though I knew I could find any email on my system faster than they could on their systems, I still could not reach my email client fast enough.

A Fling with Fluid

It was around this time that I discovered the Fluid App. It kind of reminded me of the old Windows 7 days when I could open up my Gmail Web app is a new browser window and reach it faster than a speeding bullet. So I downloaded Fluid, and quickly installed it. One of it’s coolest features was that when you closed the window, and then opened it again, it opened from the exact same place. For a week, life was beautiful. I cracked more jokes and made friends easily.

Sadly, Fluid had a short life as the app running my email. It was just a tad slower and downloads were not as smooth as chrome. I had very quickly migrated both my WordPress Admins, Basecamp, Gmail and Google Calendar to their own windows on Fluid. However, the more things I added, the slower it kept getting. After some time it reminded me of the sad old browser called Firefox (some of your kids might not even know that it existed, like we never knew until much later than Netscape existed).

So, I was back to Gmail on Chrome.

Falling in love again

One fine day, a few months later, I opened up my email to find a really cool deal for all SumoLings. The AppStore sells Sparrow for $10, these guys were giving it for $6. The difference isn’t much, but I still fell for it.

So, now I had a paid version of Sparrow, and it handled my tags properly, and I was once again completely sold. I just pitched to every person I met, and did manage to sell it to a lot of them as well (including a lot of people at my company). Things were once again good, I guess you know the drill by now.

The sad finish

About a month later, our internet was running slow, and we moved on to a new leased line. However, things didn’t really improve when it happens, and I cussed at Tata Indicom on every chance that I got. It again took us a few days to realize what the problem was. The new leased line had committed hara-kiri due to Sparrow’s magic. The new brand new issues on the Sparrow app were that it took us an indefinite amount of bandwidth and CPU.

Here is the CPU usage, 1 hour after start on my Macbook Pro

This is what it was doing 8 hours after reboot

Sparrow had taken up 180% more than Google Chrome, and 84% more CPU that the second highest most CPU intensive application running on my mac.

Sadly we had to send out a company wide email to stop using Sparrow with immediate effect. I really like this software and I hope soon they fix this issue. Or at least I hope that their iPhone app works better.

Till then, it just me and Chrome.

Subscribe | Tagged , , , | 4 Comments

7 easy steps to recruit the right developer

Recruitment is one of the most important things a startup needs to do. We too put in a lot of emphasis on recruitment at VXT and even though we have had a few bad recruits, I would consider that we have been really lucky so far. I had written about recruitment about three and a half years back, and I think some of the things have changed. We are a lot more structured now.

Our recruitment process is a simple five step procedure

  1. Find resumes you like
  2. Ask them to fill up this questionnaire
  3. Have a telephonic interview with people who send in nice answers
  4. Call them for a personal interview
  5. Ask them to write a piece of code in 2-3 hours

It seems to work well for us. Since our questionnaire is quite generic, we have been able to use them with designers and testers alike. The last step gets left out with those two, though I’m sure we will build up a way to improve that with time too.

Hiring is a big problem here in India and rere are some things that we consider before we recruit anybody.

1. Don’t hire people who switch companies a lot

A lot of younger developers in India just pick up whatever job gets offered first and then start looking around. The problem is that most people don’t even consider this to be a bad thing. The origin of this problem starts from our schools and colleges. People get pushed to take up science or commerce based on what somebody else thinks is right for them. The same thing happens when they join a college. Eventually, the first time that they have to take a decision is when they have to join a company, and they are just not experienced with it. So they take up the first thing that they come across, and soon find that it doesn’t work for them. Once they start switching, they realize that you get a salary jump in moving from company to company without really doing anything.

So, If a junior developer has spent less than 6 months at their last company, we just discard their resume, no matter how good it looks.

2. Check if they know why do they want to work in your company

Another very clear way to finding out if the person is the right fit for your company, is to ask them ‘Why would they like to work for your company’.

If they are just randomly looking around, they will give you some crap like, ‘we want to work with your esteemed organization’ or ‘I love the work that you do’ or ‘I want to work on this technology’. Whenever you get any of these or similar answers, you need to dig deeper with this like ‘Which product did you like best’ or ‘What do you think we can improve on the one that you like’.

The smart ones always look up who you are, and will know little details about your company. Many times they would have talked to somebody at your company as well.

The best ones will also be able to tell you WHY you are a better choice that your competitors. They will also ask you some really insightful questions

3. Write your job descriptions well so that the right people find you.

People have researched that if you use words like ‘ninja’, most developers don’t like it. ‘Programmers’ is also another bad word. You can find more details about what to use and what not to use here

4. Experience with huge services companies makes (most) people useless for startups

Some people don’t agree with me on this but I just don’t hire people who have worked at the really huge services firms (I’m talking about you TCS, Infosys, Wipro). I’ve put this lower in the order because this is not the most important deciding factor, but it still is very important. If you’ve ever worked at any of these companies, you would know that working culture if not really good. Most developers even with decent work experience, can’t sit in a chair and code for 3 hours straight.

Also, when their friends start going onsite, they will just want to go too and in smaller companies it is not always possible to keep sending them.

The only person who I have ever recruited with such a background was one who wanted to move into designing because he just wasn’t interested in working as a developer anymore.

5. If they can’t type fast, don’t take them

I’m not sure where I read this (found it), but I’ve found it to be really true. All great developers type really fast. It doesn’t mean that if you type fast, you would be a great developer, but I have never come across any great developer who typed slow. Ever.

Also, I have noticed that the people who type slow, never put in comments. I guess it just takes them really long to do it if they keep typing in long comments too.

6. Ask them to write code

This comes in really low not because it’s not important, but because everybody knows this. Still, most people don’t follow it. I myself used to do this a lot earlier. But now, we just don’t do it anymore. It takes slightly more time, but you need to get them to write a component is 2-3 hours before you can understand how they will deal with bigger problems when they actually join your company.

7. Check if they have a github profile

You can use rapportive to find out if they’ve used Github or not. If they have, give them a lot of extra points because you can go and check out that code even without talking to them. Even if they have just forked another repository and never added anything to it, give them a few marks for that because they would know how to use git. It shows that they are trying to be better developers and have read in places that you need to work with repositories.

All in all, no matter how bad-developer-proof you try to be, some bad-developers will still get in. When this happens, I would like to point you to something really important that I heard from Anand’s (from Gluster) speech at Unpluggd

If you put a lot of emphasis on hiring, you also have to put a lot of emphasis on firing. And you have to ensure that you fire the right people frequently, soon they would be 20% of your company and then you can’t do anything about it

How do you handle your recruitment?

Subscribe | Tagged , , , , , | 10 Comments