
The role: a broad picture
These positions are for techies, who have the ability to teach
themselves about new systems, and whose fundamental understanding about
computer systems is very sound. The position involves mainly software
design and development duties, including systems programming, but at a
level which is beyond the technical competence of the average business
application programmer.
Technical Specialists are not assigned to simple business application
development projects. You will either be put in our Products group where
you will be working in various programming languages at various times,
or in core module development which will be used as infrastructure
for large production application systems. You will be expected to be
flexible in choice of programming languages and will be expected to pick
up the basics of new programming languages as needed, based on your strong
fundamentals in programming language behaviour and implementation. Almost
all your work will be on Linux and Unix systems.
As a company, we are comfortable with technology. All the
desktop computers and laptops in our office run Linux, and we use
LaTeX, not Microsoft Word or OpenOffice,
for official document creation. (This applies to our sales
managers and accountants too.) We use XFig to create corporate Form 16 tax
statements and company share certificates. We sometimes send out
business correspondence using home-grown Perl scripts to perform mailmerge
functions. It is very unusual to find a company like ours in the Indian
software industry. We invite you to join us as a Technical Specialist
if you value this work environment and culture, and the opportunity for
technical growth that you will get here.
For Technical Specialists, the gross remuneration package will be
between Rs.500,000 and Rs.1,500,000 per annum, depending on
individual experience profiles and competence.

What your work will involve
Technical Specialists are not expected to handle full-time coding
responsibilities for any client project. The tasks you are expected to
handle will include:
Technical leadership and guidance: This is
really the key expectation from the role of the Technical
Specialist. This is why you will not have project implementation
responsibilities for customer projects.
During ongoing projects, you may be called upon to solve technical
problems. This may require hands-on work. The TS will need to analyse
code, write small test programs or debug existing code, identify the
cause of problems, and provide a direction to the developer to help
them proceed. The bugs which you will be expected to address will not
be simple cases like incorrect data output from business logic. They
will be more technical in nature, e.g. seg-faulting of
daemons, OS-level problems, performance bottlenecks or security
issues, where application developers feel out of depth.
In addition, there will be a demand to provide technical leadership
while creating a solution architecture for a new project. Here,
you will be expected to bring greater technical insight into the
exercise and contribute a technology edge to the solutions
we build.
Technical exploration: There will often be a
need to explore new technologies in the broad areas in which we
work. This may be something simple like "Does IBM UDB maintain
system-generated modification timestamps for every record updated?" to
something more complex like "Draw up a broad set of measures that can
be used to perform military-grade hardening of a Linux email server
using SELinux over and above the RHEL Targeted profile."
The TS will be assigned such tasks and will expected to deliver
output, working either as a solo specialist or as a head of a small,
specialised, purpose-built team.
Module development: Some critical reusable
modules are technically challenging, because of security or
performance reasons. These are either used in our product suite or as
part of the core modules in the business applications we develop. You
may be assigned to design and develop such modules. Such coding
tasks will involve Perl, C or shellscripts; Java is rarely used. They
will sometimes involve databases, networking, cryptography, or Unix
process management.
Pre-sales tech support: Our sales teams often
face technical questions and challenges while discussing new
opportunities with prospective customers. These can only be addressed
by a mature technical professional with some techno-commercial
sensitivity. The TS will be pulled in occasionally to provide this
pre-sales technical support to the sales team, in customer-facing
meetings, presentations, and discussions.
Specs capture:
You will have to work with Project Managers and Account Managers
to meet prospective clients, understand the requirements of a new
assignment, identify the technical grey areas and potential pitfalls,
discuss those with the prospect, and get a clear technical spec from
the prospect after these discussions. You will hand over these inputs
and clarifications to the PM, who will draw up a formal
specs document.
Project effort estimation:
You will have to work with the Project Manager to estimate the effort
required for executing the project and the type of the resources
needed for each task. The PM will have the expertise to do effort
estimation for routine tasks, but you will have to focus on the
unusual or technically challenging modules and estimate their effort.
Solution architecture:
At the start of new projects, you will work as the solution architect
for the overall design. You will then identify technically challenging
modules which will need deeper exploration, and you will do a detailed
design of these modules. Routine Web-based business apps can be
designed in detail by the PM with tech leads. You will hand over
your architecture and design to the PM and clarify grey areas at
initiation. During implementation, you will be available to provide
clarifications whenever design or architecture issues are raised.
As a TS, you are expected to keep yourself well-informed about
technology developments by reading online e-magazines, print magazines,
and tracking other sources of information. This reading should be
reinforced by hands-on experiments and explorations in our very informal
lab environment within our office, where new operationg systems are
constantly being re-installed and tools tried out.

The profile we are looking for
We do not demand work experience for this position; the technical
stream needs both junior and experienced professionals. What we require
are:
- A B.Sc. degree in Physics or Mathematics, or an engineering or MCA degree
from a recognized university or institute
- Excellent, not merely good, knowledge of C and computer architecture
- Deep familiarity with some programming languages
and data structures. You have to be a good programmer.
- In-depth knowledge of Unix, including system calls, kernel
internals, and shellscripting. You must
have read and understood Bach,
both the network
programming and Unix
programming books by Stevens,
and preferably Leffler-McKusick.
- Knowledge of networking protocols, IP routing, firewalls and
security. You must have read and understood
Comer, and preferably
Cheswick and Bellovin.
Additional desirable attributes:
- A degree in Computer Science and Engineering (BE/B.Tech./MCA)
- Knowledge of theoretical computer science, complexity analysis of
algorithms, functional programming languages, and formal verification
of programs.
- Excellent command over written and spoken English with a taste in
literature and an ability to teach, make a presentation, and conduct
lectures
- HTML, Perl and Javascript experience
- Work experience
- Experience in large software projects

The selection process
All applicants will have to go through two written tests, each of
which will last 60 minutes. You are encouraged to take both tests on the
same day, with a brief gap, to save travel overheads for you
and management overheads for us.
One test will be a C programming test, which will contain ten
multiple-choice questions. The other will test your knowledge of Unix,
basic operating systems concepts, and TCP/IP networking. This will
have thirty multiple-choice questions. You will have to perform well in
both tests.
If you perform well in the tests, you will be asked to appear for
an interview, lasting 30-60 minutes. If selected by the interview panel,
you will be offered a position with us.
You must apply online for a
time slot for your test. When you do so, you will receive an automatic
system-generated response by email, confirming your time slot. This email
should reach your mailbox within 30 minutes of your applying online,
if you have typed in your correct email address.
Please note that there is a big difference between applying
online for a test and taking a test online. We have no
mechanism to let you take any of our tests online, nor is such a facility
planned in the foreseeable future.
Unless otherwise specified, you will have to come to our office
to take the test(s). We are not conducting any tests anywhere other
than in our office in Navi Mumbai.
You can also call our office and fix a time slot for your test,
in case applying online did not work. Call (Bombay)4153 0500
and ask for
Suma More or Rashmi Phalke
who coordinate our recruitment process. You will have to specify the
following information:
- Which position you wish to apply for
- Your full name as per official records
- Your date of birth as per official records
- Number of years of industry experience
- When you wish to appear for the test
Please do not ask our recruitment coordinator any questions about the
tests and what they will contain. She is not qualified or equipped to
answer any such questions.
Please do not send us your resume till we ask for
it. We do not look at resumes or keep them in our files unless you
successfully qualify in our test. Bring a printed copy of your resume
with you when you come for our interview.
The test will be conducted at our office at Mahape, Navi Mumbai.
Directions to reach our office are given here.
We will notify all qualifying candidates of their test results by
email within a maximum of 3 working days after they take the test. We
will call shortlisted candidates for an interview to our office in
Mahape. This interview will last between 30 and 60 minutes. Selected
candidates will be issued an Offer of Employment immediately.

Some interesting statistics
The TS test, which tests your knowledge of Unix, TCP/IP networking,
and systems concepts, has a set of 30 questions. A correct answer to
a question gets you +1, and an incorrect answer gets -0.5. Therefore,
the highest possible score on the TS test is +30, and the lowest is
-15. We hope to find applicants who will score at least +12.
From 1 July to 30 Sep 2005, 36 people took this test. The highest
score in this set was +6.5. Ten candidates scored +1 or more. Four scored
+0.5. Two scored zero. And the remaining twenty scored less than zero, the
lowest of which was -8.5 (i.e. negative eight point five).
We often call TS candidates for interviews even when they have not
performed well in the written tests. We have still not found anyone worth
considering for the position.
We continue to look for talented young Technical Specialists.
|
|
|