Key Responsibilities and time percentages thereof:
30% - Work with users to satisfy their needs, by establishing and
refining requirements and developing solutions, preferably solutions that
do not require any programming to be done.
15% - Participate in team decisionmaking, by asking intelligent
questions and actively expressing the reasoning behind his or her views.
40% - Develop software with an active sense of ownership in the process
and its results, on a variety of time scales from hours to weeks, either
as independent tasks or as part of a group effort.
12.5% - Support our team's operators and administrators by providing
technical assistance on our software, or by serving as a standby system
administrator. (The right candidate may at some point be eligible to
take on-call duty and its associated pay, but this is not required or
expected.)
2.5% - Handle unexpected, non-routine matters, exercising personal
judgment in a way consistent with the existing values of the department
and the business.
Essential Requirements
* Flexibility - should have experience working on a variety of kinds
of software, preferably with a variety of tools
* Experience developing software in a fast paced, small group (2-10) of
developers, preferably with involvement in architectural decisions and
the use of revision control software. (Note: experience with larger
teams is NOT a substitute for this requirement and may actually be a
MINUS.)
* Ability and experience developing software for Unix-like platforms
such as GNU/Linux
* Strong object-oriented development skills, relational database
development experience, and knowledge of SQL.
* Verbal and written communication skills: should be clear, articulate,
and persuasive, in writing and in speech.
* Analytical ability: should be able to tell the difference between
the solutions people propose to fix their problems, and what their
problems actually are.
* Must understand web application development; should be familiar with
HTML, JavaScript, and application server development such as servlets,
FastCGI, or other long-running server process approaches.
Non-Essential Requirements
* Python experience preferred, and you will have to learn it if you don't
know it. But we'd much prefer a well-rounded developer who's new to
Python, over an experienced Python developer who's not well-rounded.
* Experience using "agile development" methods such as Extreme
Programming or Scrum
* Experience in non-programming work, especially as a small business
manager or owner
Position Conditions
* Some short-term trips may be required for special projects
* Use of Python, CVS, and peer code reviews are mandatory.