[VPM] I'm hiring programmers for new high-impact project

Darren Duncan darren at DarrenDuncan.net
Sun Dec 5 20:36:21 CST 2004


I'm planning to launch a new business by the end of February that develops 
its own new software applications and libraries for the mass market; 
around that time, I would like to hire several programmers to help this 
venture succeed (up until that time, I will be going it alone).  For all 
around simplicity and fairness, I plan that all the early hires will be 
done on a contract basis, and paid by the hour at negotiable rates; I will 
have them when I need them, which can often be full time, and they will be 
free to do other projects on the side.

Please contact me asap if my venture is something you have any amount of 
interest in working for (more details are below).  While I won't be making 
any final decisions now, I would like to get to know any applicants better 
before bringing them in, and the intermediate few months should provide 
opportunities for that.  Some desirable traits in applicants are also 
listed below.

My new business venture is the culmination of about 6+ years of planning 
and design work plus research that I have been doing to date.  I have a 
strong interest in the relevant subject matters and the real-world needs 
which this business and its products will serve; I will be doing whatever 
it takes (that remains ethical) to see that this venture succeeds, and 
continues to last for a long time.

The core product of this new business is a system for managing and 
preserving all kinds of data in a way that is highly accurate and readily 
adaptable to changing times and circumstances, over a long period.  One of 
the main goals is to empower people of today to keep records in such a 
fashion that they can be fully and un-ambiguously understood later on, 
whether in 5 years or 5000 years, despite the inevitable changes to a 
society's living context that lead them to make different assumptions than 
we do today, and despite the inevitable disasters that can wipe out 
civilizations or historical records alike.  Similarly, this system should 
be a huge improvement over the tools that people have today for assembling 
and verifying the various patch-work of records we have about those people 
that came before us.  The system is also not limited to handling records 
about people, but about anything else, such as natural history or 
scientific methods and discoveries.  It can also handle not only large 
events but daily minutae such as inventory or financial transactions.

The core product is technically a "database engine", but working on it or 
with it should not be boring or same-old by any means.  The product core 
is a library that implements a particular database schema and takes care 
of issues such as internal consistency, security, and auditing.  It is 
implemented as a layer on top of a traditional SQL database; users can 
typically chose any back-end database that they want, or one will be 
provided by default that hides any gory details behind the veneer of a 
typical point-and-click application.  Said library is a platform upon 
which various user interface or bridge applications or plug-ins can be 
built, some of which I/we will provide, and others that can be made by 
third parties to solve particular needs.  The whole system is designed to 
be portable and will run on any commonly used operating system.  The 
system is also simultaneous-multi-user from the ground up.

One of the main initial user groups of this application will be 
genealogists of all stripes, though it is the professionals that should be 
especially interested in what I bring to the table.  My system will 
compete with the dozens of existing genealogy applications by being a lot 
more functional they are, but just as easy to use, providing all 
functionality they do plus a lot more that they couldn't hope to do 
without being rebuilt from scratch; it does this without being bloated.

My prototype of this system is written in Perl 5, some parts of which are 
relatively generic and released free on CPAN (mainly the database 
portability ensuring components), and some parts of which will remain 
proprietary.  While a few early customers may get this prototype version 
in exchange for valuable feedback, I plan to rewrite the system with the 
help of extra developers, using other tools, prior to it being released on 
the mass market.  My current plan is to target the new bleeding edge 
Parrot virtual machine (http://www.parrotcode.org/) with the final 
version, which will be distributed mainly as Parrot bytecode.  Parrot is 
the host for the new Perl 6 language, but many other languages target 
it too (and they can all talk to each other easily).  I expect that all 
software dependencies of my core product will be Free (as in "liberty") 
and Open Source Software, so that we avoid being left high and dry like 
a share-cropper on the whims of some other vendor.

These are some traits I find desirable in someone I would hire (there 
are many more, not listed); not all are essential:

- Someone who enjoys writing software and does it in their spare time for 
fun; not someone whose sole reason to code is to earn a living.

- Someone who has completed a formal education in writing software, such 
as from a college or university.

- Someone who is good enough at writing software that they have been paid 
to do it, and a reasonable customer/client would be happy with the result.

- Someone who has an eye to making their software components in an easily 
reusable fashion, such as by using functions or libraries or classes.

- Someone who normally writes software in such a way that it can be easily 
maintained by most other people skilled in the art.

- Someone that has worked in a team to develop software, and contributed 
to the team's success in making a working and maintainable product.

- Someone who has good general written and verbal communication skills.

- Someone who is good at listening to others.

- Someone who is skilled in using the internet to communicate with others 
and to look up information.

- Someone who can take the initiative and suggest logical improvements.

- Someone who regularly makes self-documenting code and use consistent 
code styles.

- Someone who is skilled at documenting and testing their software, or 
that of other people.

- Someone who is comfortable with and/or prefers object-oriented design.

- Someone who is experienced with SQL databases and knows about good 
database design, including how to normalize a schema.

- Someone who understands the basics of how their computer hardware works 
and what the main parts are (especially inside the enclosures).

- Someone who knows the basics of how computer operating systems work.

- Someone who knows about the common issues concerned with multi-process 
and multi-threaded applications.

- Someone who has considerable experience with multiple families of 
computer operating systems, including Macintosh, Windows, and Linux.

- Someone who isn't in Microsoft's pocket.

- Someone who knows good human computer interface design and makes 
applications with a good end-user experience in mind; especially 
applications that can be explored easily and used for basic tasks without 
the user having to look at a manual.

- Someone who makes applications that have reasonable default settings, 
and doing simple or common tasks is quick and easy to a user, and where 
only complicated and uncommon tasks may require considerable user work.

- Someone who designs applications with a foremost thought to reliability 
and security, that have safety mechanisms to isolate any small problems 
before they turn into big problems, and that expose the user's data to as 
little risk of loss as possible.

- Someone who has worked on large applications and/or databases.

- Someone who has used multiple vendors of SQL databases and/or non-SQL 
databases.

- Someone who understands how to write effective SQL.

- Someone who is proficient in multiple programming languages, both those 
that are statically typed and dynamically typed; someone who could learn 
and apply new languages easily.

- Someone who is proficient with Perl 5.

- Someone who enjoys using Perl, and promotes it to others.

- Someone who is experienced with C.

- Someone who is experienced with assembly languages, either hardware or 
virtual machine.

- Someone who has used and/or studied Parrot.

- Someone who is interested in the Parrot project and wants to work with 
it closely.

- Someone who has written web-based applications, either as CGI or 
non-CGI programs.

- Someone who has used multiple families of web servers, especially 
Apache.

- Someone who has used multiple families of web browsers.

- Someone who understands current web standards such as XHTML and CSS, and 
can write them by hand.

- Someone who has written non-web GUI applications.

- Someone who is experienced in windowing tool kits, such as TK.

- Someone who has written command-line applications.

- Someone who knows how to debug an application or library, both with an 
IDE debugger and without one.

- Someone who has written image or graphic generating code, or graphical 
chart generating code.  Even better if proficient with it.

- Someone who appreciates free and open source software (FOSS), 
as well as their developer communities.

- Someone who has written and released free software.

- Someone who has a general interest in preservation or archiving or 
research or genealogy or science or education or data accuracy, etc.

- Someone who has a working knowledge or fluency in a non-English human 
language, written and/or spoken.

- Someone who cares about the well-being of others, and the world.

- Someone who is open to learning or trying new things, and actively seeks 
out new knowledge and experiences.

- Someone who is willing to search in books or the internet for answers to 
things they don't know.

- Someone who is willing to ask for help from other people, rather than 
letting their pride keep them stumbling along on their own.

- Someone who doesn't give up when there are setbacks.

- Someone who lives in and/or can easily travel to the greater Victoria 
area on a daily basis.






More information about the Victoria-pm mailing list