[BangPypers] Python at Comat

Kiran Jonnalagadda jace at pobox.com
Tue Feb 5 17:17:44 CET 2008


Hello. This is yet another recruitment notice, though one that will  
hopefully not pass for being just Yet Another. I'm posting this to a  
few lists. For those subscribed to them, I hope you don't mind the  
repeat posts. If you think this is worth forwarding elsewhere, please  
do.

I represent a small team at Comat Technologies (www.comat.com). We're  
seven people, with two joining later this month, which will take us to  
nine. We're looking for a tenth person to round off our skills and  
take us into double digit team size. Maybe even a eleventh and twelfth.

But before I describe the job, let me describe what we do.

Comat is a ten year old born-again startup that operates in rural  
India. You've no doubt heard the rhetoric of the digital divide and  
how it needs more attention. We operate in that space. We're not a  
charity. We're a proper business that pays competitive salaries and  
believes there's a genuine opportunity that may not be easily  
accessible, but is very real.

In real terms, what we do is setup and operate computer telecentres in  
villages across the country. Our first project was in Karnataka, where  
we operate the 800 telecentres that you've probably heard of as the  
government's Nemmadi project.

These telecentres are basically a shop on the main street of the main  
village in each cluster of villages (aka a "hobli") containing two  
computers, a printer, scanner, webcam, UPS, satellite internet  
connection, and a human operator who talks to customers. The services  
offered include getting a copy of one's land ownership certificate and  
recharging a pre-paid mobile phone.

Does this sound exciting? Perhaps as much as the rundown neighbourhood  
DTP shop where the fellow who once must have been a glorious computer  
professional now appears a lowly typist, augmenting his income with a  
Real Estate desk that finds you local Paying Guest accommodation? What  
would you want to be doing in there?

Consider this: the average village that we operate in receives four  
hours of power supply a day. The supply is often at 150V, far too low  
to power a computer or charge a UPS battery. The place is also a good  
four hours from the nearest urban centre, and given the state of roads  
in much of the country, that's four agonising hours for anyone who  
must go attend a support call because the operator complained that his  
web browser is saying "Page Not Loading" and he's got a long queue of  
agitated customers who are threatening a riot because that printer is  
not producing the document that will determine their livelihood.

You, the hotshot Web 2.0 and assorted buzzword compliant web  
developer, must produce an app that will keep that crowd happy. You're  
not going to get away by telling them that your JSON-spewing Ajax  
application requires a low latency internet connection. You're going  
to have think this through very carefully.

If your family is from a village that you visit on vacation once a  
year, you've probably fantasised having to explain to your  
grandfather's neighbour what Python is and why it's not a snake, and  
what the heck a programming language is if it's not a snake.

What we're offering you is a telecentre that is already in your  
village (if that village is in Karnataka), where folks will directly  
or indirectly use the code you write. That's a guarantee.

The trick, and the challenge, is to do this in a manner that's  
applicable across the country. A field trip to one location that's  
reporting weird behaviour is probably an adventure. You'll pack for a  
day trip, leave early in the morning to avoid the rush, drive till the  
road turns bad, grit and bear the next two hours to the location,  
break for lunch, have a nice chat with the operator, take some  
pictures of the neighbourhood, and maybe even figure out that his  
problem is that his browser somehow got set to cache too aggressively.  
Someone must have told him it was good strategy given the low quality  
connection. Maybe you'll make a new note for the helpdesk people to  
check before they ask you go to have a look next time. And then it'll  
be evening and time for a ride back, shower, dinner and a good night's  
sleep. A day well spent.

But do this five times, and it no longer seems an adventure. You want  
to write code, not be trapped in this debugging nightmare.

We're not supporting five or fifty or 500 centres. We're currently  
close to a thousand operational centres, scaling up to six in the next  
six months and aiming for ten thousand by the end of the year.  
Operations on this scale require a wholly different thought process,  
for both software development and support.

I'd like to tell you that our little team of seven does all this, that  
we're superhuman ninjas who write code so great, it never fails, who  
oversee operations for thousands of centres, who uphold peace and  
harmony everywhere, and still go home at 6 PM.

But you know better. An operation at this scale literally requires  
thousands of people. There are all the telecentre operators, at least  
one in each location, their supervisors, people who specialise in  
various forms of support, people who talk to other people to introduce  
new services, people who count even when they're sleeping, and people  
who think deeply about the larger purpose of all this.

We're the little team in the middle of the operation that provides and  
supports the technology everyone depends on, and that is constantly in  
pursuit of greater automation to enable larger scale.

We bear a great deal of responsibility for such a small team and it  
shows in the way we're structured. We have no patience for  
bureaucratic approvals and hierarchies. Everyone is their own manager  
and must see their project through its entire life cycle. In return,  
everyone gets to decide how they want to work, when they want to work,  
and what they want to work with.

Since the company has an overall HR policy, we fit our team structure  
within it. We recognise the notion of people working On Site (ie,  
home) and offer compensatory leave if someone works through a holiday.

We meet once a day to catch up on what we've been up to and determine  
if someone needs help or could do with the experience of another.  
Actually, calling that a "meeting" makes that sound more formal than  
it really is, because we also sit close to each other and talk  
throughout the day (with the more discreet types using IM with the  
chap three feet away).

We don't follow any formal methodology as we're making it up as we go  
along. Two standard features so far are the daily stand up meeting and  
two week iterations for the folks whose primary contribution is in  
code. Our next iteration starts on Feb 18.

Several of us hang out together after work. We share hobbies and  
intellectual pursuits, we blog, we organise events, we superpoke each  
other on Facebook, and we go to conferences (even the un- variety) to  
talk about our work. We do not de-bar the personal from the workplace.  
We believe in taking personal pride in what we do.

We are, however, not superhuman or all knowing. We lack certain  
crucial skills, and where we do have them, there are just too many  
things to be done. It would be nice to actually go home at 6 PM every  
day. It would help to be working with people who can round off our  
skills. In particular:

* Python (but of course!)
* Ubuntu/Debian Linux admin (both servers and user desktops)
* Windows desktop admin (the uncomfortable reality of working in the  
space we do)
* Windows/Linux network management (thousands of machines, remember?)
* Project management (people who know what a gantt chart is and why  
it's useful, or not)
* Process observation, documentation and automation (let's see you  
repeat that complicated setup again)
* Technical documentation (for interface with external entities)

Any combination of these skills is useful, interesting combinations  
better. An advanced ability with at least one is needed.

If interested, send your resume to my work id (kiran dot j at comat  
dot com) with a note on why you're interested. Or if you're just  
curious and have a question or a comment, I'm 'jace' on  
irc.freenode.net, usually in ##linux-india, and 'jackerhack' on most  
IM networks. You could also call me during a reasonable hour. My phone  
number is easy to find.

-- 
Kiran Jonnalagadda
http://jace.seacrow.com/
http://jace.livejournal.com/



More information about the BangPypers mailing list