Since this is my second post, let me begin by telling you about myself. I am as much of a software developer as I am a graphic artist. In fact, the reason I started developing was to show off the graphics that I was designing.
While I had dabbled with computers as a kid, High school is really where things got going. Like many students I got my start on a Macintosh Plus to be exact, then later moved onto a Macintosh LC. I used the Macintosh to lay out our school’s year book and to write little HyperCard applications to impress my friends. Unfortunately, when it came time to actually go out and buy a computer for myself the darn things were just way too expensive… so I got myself my first X86 (on a paper route salary) and was off to learn a new platform. Much time during my high school years was spent developing 3D animations set to music (3D Studio, MMPlay and AutoDesk Animator Pro), designing our school’s yearbook (PageMaker, PhotoShop), working on our school’s weekly TV program (Pantherama, which I directed and produced my senior year), working on sound and lights for the drama club, working at Kinko’s as a Desktop Publisher, and fixing people’s PCs (a little consulting business I had on the side).
This wide base of expertise enabled me to get my first job in the field working for FTI (Forensic Technologies International) Corporation in Annapolis, Maryland (my home town). I worked in the “production” group as a team leader developing multimedia presentations and delivery systems for large corporate trials. This of course was very exciting, after all… how many 18 year olds get do develop applications, animations and graphics for multiple Fortune 500 companies?
I later moved to the Alpha Computing Group in Baltimore which is where I really grew my interest and expertise in web-application development. I have always prided myself on being able to deliver as close to a Win32 experience as possible via a web browser.
Alpha later spun off a product development team which later went on to develop iCommunicate. I made up about a fifth of the core development team and also owned the user interface.
Finally in April of 2001, Microsoft Corporation came to town and bought iCommunicate. I was packed up and shipped out to Redmond, where I have been living ever since.
Since working at Microsoft, I have been the lead developer in charge of the Application Framework. When I first joined the team the “application” was literally a mess, this of course was “ok” because at the time the application was referred to only as the “reference app”. The application that you all know and dare I say love, was originally only going to be an MSDN example of what you could build on top of the CRM Platform!
I knew that if I was going to be at all happy during the next couple years, two things had to change. First, the current architecture had to go… just rendering a basic account form (without data-binding, security or customizability) was absurdly slow, pulling in just 12 Requests Per Second (RPS) on a dual processor box. The other thing was that the UI of this “reference app” just flat out sucked. When I mentioned during a meeting that I wanted to be both a UI designer and developer, there was literally laughter (and they weren’t laughing with me).
So I set out to re-write the application, with the help of my good friend Jason Hunt… I designed a new UI and we designed a new framework on which to build our forms and grids (Metamorphic XSL). Both were a big hit, the UI was light years ahead of the original (and looked surprising like iCommunicate’s J). The new metamorphic XSL model allowed our prototype to render fully customizable forms with security and data-binding at a blazing pace of 400 RPS on a dual processor. This made our fully functional prototype over 30X as fast as the less functional “reference app”. To make the rest of a long and boring sorry short… the prototype became the framework and, after 2 years of filthy late nights and a lot of hard work by most of the CRM team, v1.0 shipped.
Disclaimer:This posting is provided "AS IS" with no warranties, and confers no rights.