During my tenure at IDI, I was involved primarily in the development of the company's Array product (a replicatable site-building engine for vertical market companies). My primary duties on that project included the Planner, Address Book, Site Builder, Login, Survey Builder, Message Board, Email List Manager, and so on until eventually it became my project with other developers being assigned to help with implementation only. As time went on, I was pulled on to a few other projects, including the company billing system Odyssey.
Note: Some of these dates may be inaccurate, but the chronology should be correct. Also, some of the sites may have been changed or removed since I worked on them, so bear that in mind when clicking on the links.
Project began Oct 2003
Concurrently with developing Array 4.5, I took on a side contract to develop a custom leads generation site for ISC. It was a basic site, but since IDI would be responsible for maintenance, I was allowed to use the core code that powered both Odyssey and Array at this point. That made development go quickly and lowered the amount of maintenance needed.
Launched Nov 2003
Basically, this site is used to generate leads in foreign countries where Amway has not yet expanded. I only had to implement a few forms, an approval process for the submitted leads, and send emails to proper individuals when the situation warranted it.
Project began Jul 2003
The final project I worked on for IDI was another re-architecturing of the Array product. ISC wanted to upgrade to Array 4.0, but unfortunately a lot of their customized code would not work with the codebase, so a new codebase was needed. We used the Odyssey code as a base, and rebuilt the core of it so that any crossover code was contained in generic modules which could be used by both projects. New IDIML features were implemented, the old database structure for ISC was redone, and additional features were completed so that the new Array would work with all of our customers needs. It was a vast undertaking, and frankly it didn't get done on time. The deadline was tight, and both my brother and I were delayed on starting due to demands on other projects. When we finally launched ISC, we had a 75% complete product with many unfinished features needing implemenation.
But the core code was beautiful. I still occasionally hear word from my old boss that debugging it is hard, but adding new features is extremely easy. If we'd had more time, debugging it wouldn't be so hard, either. Sadly, I heard that Array 5.0 is being written in PHP, so ISC is to be the only client put on Array 4.5.
Launched Dec 2003
The only site ever put on Array 4.5 was ibocity (and its 15 co-branded domains). This was a hellish project. Originally it was to begin in June and be finished in November. I started in late July, and Garth was otherwise occupied until September. We finally got it launched in December, with some features unfinished.
It was a case of creeping scope, combined with a late start, and an unrealistic deadline to begin with.
Project began Oct 2002
The company's internal billing database was showing its age, so a rewrite was inevitable. One other developer and I spent several months designing and implementing that database. We developed IDIML (a customized Markup Language which we parsed internally to dynamically create web pages more easily). If we had only known about Template Toolkit, we could've saved a lot of time. All transactions from the other web servers were done via Web Services (originally SOAP, then replaced with XMLRPC). There was also a web site interface built for use by billing and customer support reps. It was an excellent product when finished, complete with user level-based administration rights, auto-recovering web services, single and recurring transactions, report generation, cron-based account management scripts, etc. It was based on a streamlined Array 4.0 codebase with additional security features and proper mod_perl implementation.
Launched Apr 2003
Because any page that displays actual data would have sensitive information, I am only providing screenshots of the login page and search page. I have, however, shown the search page logged in as 3 separate users, to showcase the restriction of certain fields when logged in as different users.
I have recently heard that IDI has begun selling the Odyssey system to other businesses as a billing software package. I guess that means that it has stood the test of time pretty well.
Project began Jan 2002
At the beginning, Array 4.0 was going to be a joint project with the Quicksite Builder developers to create one codebase for both projects (they were very similar, so such a task was not too difficult). At the last minute, someone in management decided to discontinue development on Quicksite Builder, so those developers were layed off and I was left with creating Array 4.0 by myself. Eventually, my boss came in to lend a hand with the final bits of implementation, but the core code was mine and mine alone. Considering that I was the only developer, it was a complete re-architecture of the product (including a revamped database design), and it was the first project IDI had done in Object-Oriented Perl, I think it turned out pretty well. Unfortunately, we were unable to do a mod_perl implementation prior to launching it due to time constraints, so a rushed mod_perl build was created soon thereafter when performance issues crippled Tupperware's servers.
Launched Aug 2002
Tupperware upgraded to Array 4.0, necessitating a mod_perl Array 4.1 to be quickly hashed out. The load on their servers was about 10 times higher than what was forecast, so the early load tests did not indicate the performance issues we encountered. After that was worked out, things went really smoothly.
Launched May 2002
New Vision was Array 4.0's first client. They upgraded from Array 1.0.
Med Revolution was IDI's foray into the medical profession, hoping to leverage Array's replicatable site-building engine for doctor's offices. Unfortunately, this idea was not properly researched by the project managers prior to beiginning implementation. It turned out that doctors neither desired nor needed such a system, so after a few months of part-time development, it died a quiet death.
I will try to track down some screenshots.
Project began Apr 2000
I was promoted to Lead Programmer at this point, and for a time had a team of one to four developers working under me (though not all on ISC). Eventually, all but one was layed off.
ISC (Internet Services Corporation) was IDI's biggest client before they landed the Tupperware contract. They had a vision for their site, so we spent nearly a year implementing that vision. This was a nightmare project, as the scope was constantly changing and deadlines were delayed, creating friction between the developers and the client. Shortly after the end of the project, the other developer on my team left for a new job and was replaced by my brother. I was then pulled off to work on some internal projects using the Array 3.0 product.
Launched May 2001
Because so much was added and customized for version 3 of ibocity, we separated it from the Array codebase completely. This created a maintenance nightmare, but it needed to be done.
Some of the new features were Dream Book (a drag-and-drop page of photos to represent one's worldly goals), My Community (a new section of the site with a custom login, used for training purposes), and Business Meetings (similar to planner events, but with locations).
I can probably dig up some screenshots of this one.
Project began Mar 2000
When it came time to develop Array 3.0, I was asked to clean up code from Array 2.0 (part of which included switching to use DBI for database connectivity). I also added some new features to the planner. Before the project was completed, I was pulled off to take charge of ISC 3.0 (a bastardized Array 2.0 implementation with far too much custom coding, documented above).
After I finished that project, I used the finished Array 3.0 code to work on a couple of internal projects documented below.
Launched Aug 2001
We created an intranet for IDI that centralized all of the HR forms and reports into one place. It also had a bug tracking system that was never fully finished and was replaced with Bugzilla at a later date. There was a time clock, time-off request forms, payroll reports, reference materials for developers, vacation/sick day accrual information, etc.
All-in-all it was a good intranet, though I wanted to add some more features but never had the time alotted for it.
Launched May 2000
The second revision of Tupperware's site was the basis for Array 3.0. I didn't work a lot on this one, but I did help out here and there.
I found some old screenshots, but they are lower resolution. They'll have to do.
Unfortunately this site never launched. Streetwise is a company that does Street Team promotions for bands, including some of the bigger hard rock bands like Staind. They wanted an Array implementation for bands to build their own website and for statistical information gathering about a band's fan base (hence the name).
We added sections for discography, band member bios, tour dates, and a survey generator. The client wanted to include complex mapping software for a band to be able to have a graphical representation of their fanbase. Unfortunately, none of the solutions available did what the client wanted, and most were too expensive and cumbersome for us to attempt implementation. Eventually, the client dropped out and the site was scrapped.
A few low res screenshots were available on the IDI home page, so I snagged those.
Project began Dec 1999
When I first started at IDI, I worked on the ISC version of Array 2.0, which was nearing completion. I mostly worked on adding features to the login scripts and daily planner, but I also spent some time working on various other sections, a list of which I cannot recall.
Launched Feb 2000
I honestly don't remember what all was added in this release. I know we added repeating events to the planner and a 'Remember Me' login. We also fixed a ton of bugs. Other than that I can't remember.
I'll have to see if I can find some old screenshots of this one.