Hi guys,
I have a number of questions here that I have been curious and wondering about for a while now. Maybe you guys can help me out, I would like to pick your brains and see what your take on my type of work and how it relates to the industry.
First, what I do:
On a day to day basis and for a very, VERY wide range of data sources/formats, I personally collect, clean, manipulate/massage, and then finally convert/map/migrate/ the client's membership-management data on into my employer's proprietary database schema.
This allows the client to use my employer's web-based application service, retaining all of their data from their previous member management program.
However, in most cases the client has no existing software solution, so I most often have to work with and make sense of a kaleidoscope flat files, excel documents, access tables, and MS Outlook contact exports -- in almost all cases I have multiple files and sources logically related to each other but having no unique relational identifiers, which often can be the least of the least of problems trying to splice their data together into a single form for import into my employers database schema.
For those that do have existing software solutions for managing their membership contact and billing information, the programs more often than not do not export all the data the client needs. As a result, I have to locate the raw database file or files used by the program, decipher what format or technology is being used (including propriety database formats), and then figure out how to access and extract the data.
Once this is done, I am almost always left with raw tables of data, often numbering between 10 to 60 distinct tables, where all I have to make sense and decode the data are the table names and field names. Typically I cannot attain a working local version of the software application, so I usually have to rely on these table & column names in conjunction with the data in the record sets to deduce what the data it is, how each table relates to the other, and how to logically reconstruct the abstract data objects in order to make sense of the data and map it to my employers schema.
Most of the data objects are complex, and are mission critical, i.e., company records with associated contacts linked to detailed AR history records. In such a case I basically reverse engineer and reconstruct all the company records, all the contacts for each company, and all the invoices, payments, credits, write offs, and journal entries into our database schema.
Every client is completely new project, and is almost entirely customized based on the nature of their prior data solution. This was done by three people originally, but a new CEO "consolidated" the entire operation to be solely my responsibility, and complete between 15 to 25 a month.
My employer uses SQL Server 2008, and I ahve to say, SSIS and the Import and Export Data wizard are both absolute bears to work with, as its never the same source schema I have to import; it is always new and different table and column names, storing different data types.
So now that you have all that info, it is time for the questions!
1.) Has anyone heard of anything like this before?
2.) How common is this type of work in the industry?
3.) What would you expect a job of this nature to pay?
4.) Does my employer have justification in classifying me as Overtime Exempt?
Currently, I put in 50-55 hours a week, am not paid overtime, and I have multiple friends that work for Best Buy doing Geek Squad in-home work who are making more than I am.
One person I talked to said that I should NOT be considered overtime exempt because:
A.) I have no control over the condition of the clients source data
B.) I have no control the destination database schema
C.) I make no alterations to my employers program or database schema
D.) No T-SQL scripts or lines of T-SQL code/logic are ever stand alone, all requiring direct action from me to run
E.) All T-SQL that I write is primarily only viable/useful for that one specifc client's set of data
His argument is that I am basically doing manual work, and it is not really programming as I am [&] simply taking raw material, in this case data, and re-shaping so that another program can then use that refined material, i.e., data.
What are your thoughts?
Thanks guys and gals!