Monday I start working for the front-end ruby on rails team at <omitted>. I’m so excited to work with some great ruby guys, get paid well, and have an awesome machine (they just handed me a MacBook Pro and said here you go, get it all setup) Yesterday was my last day “contracting” for <omitted> where I had developed an <omitted> system in ruby on rails. The system is mostly complete save for the <omitted> module. It was actually beneficial for them for me to leave. A lot of processes that I had been trying to put in place (People wise, not system wise) had to be made b/c I was doing so much of the data work for them.The scope of the project for them sounds simple but its not: TV stations run commercials for them when they have unsold air time. The commercials are usually selling crappy/cool products to the consumer directly (call this 800 number, go to this stupid url, or text 445 to 65877 now!). Each TV station gets paid for a portion of each sale of the product in the commercial. So to tell which TV station sold what they get a unique 800number, url (this is why you see “go to www.somecompany45.com now!” url’s in ads), or a text code (445). So the call center or the clearance house keeps track of all sales and on what 800 number the sale came from – which in turn will tell us which TV station needs to get paid. Ok so my system needs to take sales data that only contains date, sales, and 800 number and then match it to the station we have it assigned to and then figure out how much they get paid (different for each commercial). Sounds easy right…not really – there are SO many data problems (getting rid of duplicates (how do you know what a duplicate is?), different data formats, non existent or descriptive headers in the data, missing data, determining a lead (sometimes the client will pay the TV station if people call – the consumer doesn’t even have to buy anything and people like <omitted> will pay for the person’s info…crazy – but <omitted> will say, well we’ll only pay if the consumer’s call lasts longer than 60 seconds, and they can’t call back for 30 days, if either of those conditions aren’t met then we won’t pay you for the “lead”)So ok that stuff is not that hard to deal with BUT there is a sister company involved, an evil and stupid sister company. I had to take the “raw call data” run it through my system, determine which calls were “leads” and then assign them to the correct station (oh and sometimes the 800number is shared between stations and then you have “geocode” the location of the caller based on zip code or if not available area code, if their location is within 300 miles of a TV station then that station gets the lead – if no stations are within 300 miles the ad agency doesn’t have to pay anyone on the lead and they get the full amount of revenue from the client) ok so sister company that’s evil runs the data through their multi-million dollar data system and my report has to match theirs….well shit…so my reports didn’t line up after 6 months of tweaking and pestering the CTO of the sister company – turns out the sister company was doing it wrong and shorting the ad agency a lot of money every month – like $10k every month for over a year. So I blow the whistle and the ad agency starts collecting the money they were due based on my results but the sales manager negotiated a commission on all the missing revenue behind my back – so I did all the work and don’t get any of the return…that’s cool – fuck you guys. So looks like my FIRST REAL WORLD APPLICATION THAT I’VE EVER WRITTEN IS DOING A BETTER JOB THAN A MULIT-MILLION DOLLAR APPLICATION AND I DON’T GET FUCKING PAID A GOING RATE FOR IT. So i got a job with a much better company for a good rate and I’m really happy. So my leaving the ad agency forced them to do all this data management themselves I finally got the point across (through quitting) to the CFO that I’m not responsible for the integrity of the data put INTO their system…they are. So it all ended up with me leaving them on a good note b/c I transfered as much of my knowledge to them so they can do the whole deal all by themselves.