I have been a software professional since I was in high school in 1998. I'm enthusiastic about open source, and I really enjoy working in unusual software systems or within strange constraints.
One time I was working at a billing company which relied on a manual process to rotate the data files used to calculate taxes. One time, the person who was responsible for rotating the data files took a vacation and forgot to rotate the tax data files.
We had to report to our customer that millions of transactions had been taxed incorrectly, and we had to give them a delta so that they could correct them.
I used Perl and C (the tax calculation code was in C) to isolate the tax calculation portion of the billing application, and then recalculate the taxes for more than 24 million subscribers for more than four months (that’s 96 million subscriber/months).
It took me about two weeks to get the code right, but I was able to get the job done. I hit hiccups at every step, including:
The C library was too slow, so I had to fork it to remove a bunch of non-tax-related code
The C code had memory leaks that weren’t noticed before since they never ran more than a single month at a time before, so I had to run 20k records and then reap all of the C memory. I used child processes for this
I wanted to move fast, so I used Perl with the Inline::C module, which allowed me to do most of the code in Perl (and thusly avoid a bunch of build issues) and link to the C code without any weird build system fights
Our billing customers wanted the deltas in Excel, and at the time Excel still enjoyed its 16bit limitations, so I had to figure out how to split the results out into logical spreadsheets for the customer
We had a process where we wanted DBAs to process the data updates, so I also had to prepare SQL files for the DBAs
This is still one of my favorite stories, and I still find opportunities to use the skills I learned in this problem when I can. It was a whole lot of fun.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
One time I was working at a billing company which relied on a manual process to rotate the data files used to calculate taxes. One time, the person who was responsible for rotating the data files took a vacation and forgot to rotate the tax data files.
We had to report to our customer that millions of transactions had been taxed incorrectly, and we had to give them a delta so that they could correct them.
I used Perl and C (the tax calculation code was in C) to isolate the tax calculation portion of the billing application, and then recalculate the taxes for more than 24 million subscribers for more than four months (that’s 96 million subscriber/months).
It took me about two weeks to get the code right, but I was able to get the job done. I hit hiccups at every step, including:
Inline::Cmodule, which allowed me to do most of the code in Perl (and thusly avoid a bunch of build issues) and link to the C code without any weird build system fightsThis is still one of my favorite stories, and I still find opportunities to use the skills I learned in this problem when I can. It was a whole lot of fun.