This article is written as my experience as a PostgreSQL contractor and to all those that that think they might want to be one.
It all began about 4 years ago when, oddly enough, I retired. Shortly after I moved to my new, and final home ( I hope), I began recieving calls from headhunters wanting to place me in companies that required me to relocate. Having had to relocate 4 times in 8 years due to a bad job market, I was in no mood to due it again, so I politely informed them I was not interested and hung up the phone. That was until I recieved a call that advised me I only had to be on site for two days and then I could work remotely from home. I was asked what my hourly rate would be and I just threw something out there, not expecting them to be ok with it, but they were. So I took the job (and trip) and was impressed with the company and personnel I was working with. The database was well designed and I was given a laptop to connect from my home with. I was given the task of testing new auxillary software for PostgreSQL and writing bash scripts to insure backups and restores were being done and were reliable. That position lasted 6 months and I left with a feeling of having completed a job well done. However, my next contract was a nightmare. The database was poorly designed. Instead of a simple scaled database, each customer was given their own schema, with a copy of each table in it. What was really bad was they had put an index on every column of every table, only a few of which were actually used in queries. I begged them to let me drop the unused indexes so they could save space and optimize inserts, updates & deletes, but they refused because "they had higher priorities". Now, my latest commitment is somewhat better, but not without it's own annoyances. Primarily, despite my repeated attempts to convince them otherwise, the developers at that site seem to feel it is essential to constantly issue queries of "SELECT 1;", so that they do not lose the connection to the database. That of course, has resulted at times in no connection being available for other users/developers. Let alone the fact that developers should not be allowed on production systems. I have advised them they are much better off using a connection manager like PgBouncer, but they apparently do not understand the concept or benefit. In summary, I can only advise that aspiring contractors find out as much about a system/schema/policies before commiting to a contract, no matter how much they offer to pay. -- *Melvin Davidson* I reserve the right to fantasize. Whether or not you wish to share my fantasy is entirely up to you.