[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