Prior to joining Microsoft, I worked at a consulting company for a bit over 13 years. Prior to that, I started the IT department at a medical billing company and worked there for 4 years while completing my Computer Science degree.
Seeing Scott’s post on past work he did years ago at SparkFun and 800.com got me to thinking about some of the interesting projects I’ve been on. I’ve been a developer, a designer, an architect, a project manager, an engagement manager covering multiple projects, and an analyst. I was happiest, though, when I could get my hands on the code and visual design :)
One thing that was interesting about consulting vs being in internal IT, is your problem domain changed every two to nine months. I met new clients, had to solve new problems and understand a new business on a pretty regular basis. Often times, I’d be on multiple projects at the same time, so it was even more of a stretch.
So here are some interesting ones, in roughly chronological order. No, this isn’t a resume, just some interesting cherry-picked stuff :)
Before I joined Microsoft, I worked for AIS, and before that, I worked for a medical billing company in Massachusetts, so we’ll start there.
Doctor’s Office Billing System – C++
My first application I wrote professionally was a Borland C++ 3 (DOS) medical billing program. I bought a book on how to write a database using C++ – it was all about b-trees and interesting data structures, and wrote the whole thing. It worked reasonably well, had a good dos-based character mode windowing library, and was a decent performer. That was a crapload of custom database code, but I didn’t know any better.
Doctor’s Office Billing System – dBase IV and FoxPro 2.x
Once I realized I didn’t have to write databases from scratch, I used dBase to write the next office billing program. When I moved it to foxpro and added sql statements into the mix, the performance went through the roof. To this day, this is still the fastest database application I’ve written. It was blazing, and the UI was awesome.
Medicaid Billing Program – VB3/VB4
When I started programming in Windows, I tried Delphi 1.0, PowerBuilder 3, Gupta SQL Windows, Borland C++ with OWL, and Visual Basic 3. The company I worked for at the time felt programmers should buy their own tools just like carpenters so that was a fair outlay of cash to get started, all while still in college. I liked learning all the different tools, though.
While I still have, in production, a Delphi 1.0 app (just found out about that the other day – amazing!), I was most proud of a VB3 app I wrote for UB92 Medicaid billing. It was one great big data entry app with an access database, and an exporter that wrote out Medicaid flat files for writing on a big old tape for submission.
Cruise Ship Group Reservations System – VB4 + COBOL
My first project when I joined AIS was to travel to Miami every Monday and fly back home to Maryland every Friday during the months of June through October. If you’ve ever been to Miami at that time of year, especially if you were a pasty white yankee fresh out of New England like me, you know that’s a rough commute.
The project was interesting. I did UI work in VB4 for the group reservations system for a cruise line. The application connected to a Unisys mainframe and used “stored procedures” written in COBOL. All in all, pretty neat, and my first taste of large-scale application development.
Course Materials / Demos for Intro to VB in French
During December 1996 I traveled to Lille, France for two weeks to teach Visual Basic to a bunch of COBOL programmers. Before I left, I was told I was going there to write some demos. It wasn’t until I arrived that I was told I was to teach a class on VB, in French. My French picked back up in the second week (takes me a week to get immersed) and it went pretty well.
Law Enforcement Evidence Management System – VB4/5 + ASP.NET
Another project in Florida. I’m not sure why I kept getting assigned to Florida-based projects, but hey. This one was pretty neat: a complete evidence management system for the Florida Department of Law Enforcement. The strange thing was the customer had a legislative mandate that it had to be a “web app” – no questions allowed. However, they wanted to do a bunch of desktop integration (automate Word and Excel) as well as have a rapid data entry experience, and integration with a hand held barcode scanner.
This was around the time ASP was first released, and browser apps just weren’t up to the task. What we ended up doing was bundling all the client-side code into activeX controls, and surfacing them through the browser. The users decided they didn’t like the browser chrome, so we had to host a browser control in a VB shell, and then do some hackery to wire up the shell menu system into the browser control and into the activeX controls. Major mess just to meet a misguided mandate.
In the end, due to changing requirements and team attrition, I wrote almost all of the VB code for this application.
Pension Management System – VB6
One of the largest VB applications I ever worked on was a pension management system that used VB6 and (I believe) MTS. Could have been COM+ but I think it was MTS. Back end database was a unisys mainframe using COBOL “stored procedures”
The interesting mandate in this app was I had to write a VB6 framework that would allow client non-programmers who wanted to be programmers (ack!!) to enter in the transaction details, business rules etc. without getting too deep into the architecture.
The solution ended up being a ton of code generation via a custom code generator I wrote for Rational Rose, a custom dataset replacement that had a lot more built-in functionality, and templates that basically had “insert code for X here”. It was successful in the end, but surely would have taken a lot less time to build if not for the desire to allow non-programmers to participate in programming.
.NET 1.0 alpha/beta 2 Day Seminar
Another education task. I gave something like 10-15 of these around the country. In the .NET 1.0 alpha days (when everything was still changing) I did a 2 day seminar using Microsoft-provided decks and demos (which you had to keep modifying to keep up with the bits) showcasing all the major features in .NET. It was all about showing VB6 programmers how cool .NET is, and doing the same for classic ASP programmers. Lots of demos of brand new and exciting technology.
Healthcare Vaccine Clinic Scheduling App – ASP.NET
For this ASP.NET application, I did overall UI design, use-cases and modeling work. I didn’t do much code, and that was a first. This was also the first project where I ended up taking on formal managerial duties.
Stock Trading Regulation Enforcement Reporting Application – ASP.NET and XSLT
Back when it was still called NASD, I wrote an ASP.NET application that was used to show data from a bunch of different systems in a common format. It had to be written so that other systems could be added without requiring changes to source code in the application. I ended up doing a bunch with config files and fairly large custom XSL transforms to allow plugging in various different data sources and get meaningful data from them. The client wrote the (convoluted and huge) SQL statements but otherwise this was a fun little one-man project for me.
Education Bookstore eCommerce Site – ASP.NET 2
Sometimes we got called in to clean up other people’s messes. This was one of those times.
This company had an architect working on an ASP.NET application for a year and a half, unchecked, with no oversight. A month before they had to go live they finally decided to see where the application was. The architect had finished about 3/4 of a completely custom framework that tossed out almost everything in ASP.NET and replaced it with his own patterns. The framework, though, met exactly 0% of the business requirements, as there was no app to show.
On this I led a team and also did a ton of ASP.NET coding. We tossed out the custom framework, went straight to in-box functionality – working 15 and 20 hour days, and a number of 24 hour days, and got the online bookstore up and running just in time to meet the summer demand period. You see, they existed as the online bookstore for schools and universities, and if they weren’t live in early summer, they were out of business. We cut this so close that we were taking orders on the site before the credit card charging part of the application was completed. It took about a week before the CC charging bits were done and cards were actually run and charged.
This turned out to be a fairly ungrateful client in the end, but I was really happy with what we accomplished here. I can truthfully say that my team saved this company from going out of business, and that’s a feel-good thing for sure :)
Auto Glass Claims Counselor App – .NET 2 Windows Forms + COBOL
Around the early .NET 2 timeframe, I worked on a Windows Forms project for a large insurance company who happens to have a green mascot. I did mostly the UI and a little back-end on this.
This was the project I always tell people about where the client wanted a UI that looked cool and modern, but couldn’t get capital budget for 3rd party controls. They decided there was less friction in having me do a ton of custom painting for windows forms controls since that was coming out of a staffing budget and didn’t require such a big approval process.
Mobile Phone Store – ASP, ASP.NET, C#, .NET 1.1 and 2
One of my almost purely management projects (I had 11 team members) was for an online Mobile Phone Store for a major electronics retailer, though a company that did all the actual selling and fulfillment for the phones. The platform the team had to build on was set, we “just” had to augment it with a bunch of new functionality, new skins etc. The platform was an interesting combination of ASP.NET that then called a checkout process in classic ASP, and then bounced back to ASP.NET. Oh, and the ASP.NET code was in the process of being converted from 1.1 to 2.0, so that was extra fun :)
The project was a success and the customer and the electronics retailer were both very happy with the results and the process. While this customer went through a bankruptcy process much later and have a different name now, they were always good folks to work with.
For this same customer, I ended up doing some Amazon.com integration work later. That was my first exposure to the hot mess that is the amazon catalog and partner system. I only hope it has gotten better since then.
Carbon Calculator – Silverlight 1.1 Alpha
My first foray into RIA was with Silverlight 1.1 alpha. I and a colleague built the Carbon Calculator for Conservation International. While the app was functional, it was ugly, and this was my first experience with hitting the limitations of my own design abilities and deciding future projects would need a real designer.
You can see some info and screenshots of the calculator here.
I’m happy to say, though, that this project cemented my interest in Silverlight. Also, due to the permission I got to deploy the app into production, it also let me say we had the first and only Silverlight managed-code application in production at the time. I’ve always taken pride in that.
MSDN East Coast News – Silverlight 2
MSDN East Coast News is a Silverlight 2 app that I built (through AIS) at the request of some of our local DPE folks. I had some availability, and was the only person willing to put in a bunch of my own time, so I did this one solo.
This was the first time I did any Facebook integration. Of course, it was also done at the time Facebook was changing their API and the application screen layout. What a mess that was.
I’m pretty proud of the app I designed and built here. It worked well and did most of what we envisioned. This is also the app I used to develop some of the early patterns I used in other Silverlight applications. You can find more information on it here.
Document Search Application – Silverlight 3 in SharePoint
One of the last applications I worked on at AIS was a SharePoint document search application. The customer wanted Silverlight for the rich UI, but more importantly, for speed and document/index caching. This customer has field reps who are often on the other end of a very slow dial-up connection, so they needed to pre-seed their laptops with index data, and have a good way to incrementally update that to allow document searches that were much quicker than the all sharepoint approach. They also wanted to experiment with other ways of visually classifying the data and otherwise augmenting the search.
On this project, I worked with the customers design team for the UI. I did all the initial UX work (with them in the room) using SketchFlow pre-release bits on my laptop, and then walked them through wireframes and a progressively higher fidelity prototype. The visual design team then took the screens we all came up with, and made them look SOO much better. They were involved from day 1, so they knew the UX, and the types of constraints we had to work within. It was a good experience all around.
I wasn’t there for the completion of this project, but I left it in very good hands.
Of course, in 17+ years of work there are quite a few other applications and projects I left out (not counting all the things I did on my own), but those are the ones that always stand out in my mind. Since I don’t actually write applications for a living any more <g>, I figured I’d put this list in web-cement for future generations of computer nerds to marvel at :)