Warren Scott Dillman


422 High St.
Uxbridge, MA 01569

Website:http://www.binaryrevelations.com
home:sdillman@binaryrevelations.com
pdf: download
 
 

Objective
I am very passionate about writing elegant and efficient code that solves business problems by abstracting the solution in a way that does not suffer from over engineering. I enjoy finding the balance between abstraction and application efficiency, while strictly adhering to the requirements in the problem domain. Producing code that easily conveys the solution to other developers and is maintainable and self documenting. This is the challenge that I enjoy. What I am looking for is a team of like-minded people striving for the same objective, to create an industry leading product by utilizing these principles; and who enjoy the challenges this provides.

Education
Northeastern University Boston Massachusetts
Bachelor of Science, June 1993
Concentration: Management Information Systems / Management

GameInstitute.com  
Advanced 3D BSP, PVS and CSG Techniques, September 2001
Concentration: Game Development
on line certificate

Experience
IBM Software Lotus Division
Advisory Engineer Tools Developer
Release Engineering, December 2003 - Present

I joined the release engineering team to help maintain and extend the existing in-house code management and build tool set. I have spent my time at Lotus, extending old tools to comply with new requirements, as well as implementing new feature requests.

Most of the tool set is written in pure C. Since applications written in C are harder to maintain and extend, I decided to survey the tools and pick a few out for re-engineering. The idea is to make the tools easier to maintain and extend without altering any of the interfaces. This allows the tools chain to continue un-effected, but makes each tool more robust. Part of the re-engineering process is also to document existing tools, since most of the applications that grew up around the build process are very organic. Since this is done during downtime between bug fixes and enhancements requests, I have only found time to re-work a single tool. I chose this particular tool because of it's widespread use and the fact that process changes in the future were going to make extending the tool necessary. I moved the tool away from proprietary and homegrown libraries to standards like the STL and open source solutions like the WTL. I reworked many application features using class templates in order to facilitate application extension when the time comes.


Rational Software / IBM Software Rational Division
Staff Software Engineer
Web Services, January 2000 - December 2003

I joined Rational Software as the second engineer on the Rational web team. I was quite familiar with Java as far as client side programming is concerned, but had little to no J2EE experience. Rational immediately sent me to the advanced OOAD class at Rational University, and it had a huge impact on the way I designed my future applications. I also attended several Java seminars and was quickly brought up to speed.

I was then quickly thrown into the world of J2EE as we migrated the Rational.com site from a proprietary app server built on JRun to Weblogic. It was a difficult and challenging experience, but one of the most rewarding projects I have ever worked on. This was the largest team project I have worked on to date and my first experience with the RUP process. Even the last 2 week crunch period of 14 hour days was a very good learning experience and was a testament to the communication and cohesion of the team.

Since that initial re-architecture, most of my work has been in the J2EE space supporting the web site, as well as adding new features, and re-factoring old systems with new designs.

Some of my contributions to Rational.com include: Geo coding the events system to allow customers to search within a zip code radius for company events and classes. Single sign on, to allow Rational Developer Network and Rational.com to share user information. Porting of the Rational licensing application to Websphere to generate customer evaluation licenses. In completing these projects I leveraged many Java libraries and constructs, including; EJBs, JSPs, custom tag libraries and other technologies in the J2EE and Java toolbox, as well as making use of commonly understood and reusable patterns.

Most of my contributions have been targeted at improving the customer experience and to help the field accomplish it's sales goals.

Rational exposed me to many design and development philosophies and allowed me to work along side many people who have helped me grow as a developer. There has also been time for many courses in OOAD , Rational Rose, Clear Case, and now WebSphere and WSAD.


Sybase, Inc.
Sr. Web Application Specialist
Web Services, July 1997 - December 1999

My responsibilities at Sybase were mostly centered around supporting the content developers and maintaining the back end systems for Sybase.com. These areas involved mostly lead capture and development of the Sybase Developers Network.

I shared the technical lead position on SDN with one other engineer. Together we architected and delivered the site/application built on Sybase's own proprietary web development language called Power Dynamo. It was an important step to show the development community the power of the language. The site was delivered on time and was a success. Membership steadily increased during my time there, and proved to be a very valuable lead generation tool which helped the sales force to find new customers.

There were many smaller projects that gave me a chance to continue my C++ and Java development. I was able to write a Windows screensaver for the World Cup sponsorship. I successfully designed and implemented a Windows CD-ROM autorun UI system that was used on a CD distributed at a Sybase user conference. I also developed many in-house tools to automate many of the daily tasks that the web content team was responsible for.

My time at Sybase gave me invaluable experience working in the web space, giving me the experience of being a technical lead on a high profile project, ands improving my communication skills by allowing me to work with a large team of people.


Polaroid Corporation ( Independant Consultant )
In-house Application Developer
Computational Modeling / Film Imaging Development, September 1993 - July 1997

Polaroid gave me the opprotunity to develop my programming skills by bringing me into the computational modeling group as an in-house developer to support the mechanical engineers. This gave me the opportunity to develop my understanding of UNIX as well as start to learn the skills needed to gather requirements and work with internal clients. Most of my work was command line in UNIX and C and focused on writing text file translators for moving data between finite element analysis applications and reporting on that data. The job gave me a lot of freedom and allowed me to experience a wide range of operating systems and engineering problems. It also gave the engineers a way to share information and data between platforms and applications which greatly helped in their support of the film development team.

I eventually left the modeling group and moved over to a development group responsible for several of Polaroid's film products. My job in this organization was to develop applications to allow people to analyze data collected from experiments done on the film system to test changes made in the reagent. The data initially was being assigned arbitrary numbers visually by different people. I worked with a team to develop a Windows based application to identify and quantify the severity of defects in the film system by processing film density information. At the time I used the Borland C++ compiler and the OWL windowing system. The project was a success. by allowing engineers to quickly correlate chemistry changes with defects on a proven scale, it helped to reduce the #2 reported customer defect in film. This was an important project for me, as it was my first real team development project. We had two developers and one business analyst. To insure proper use with as little training as possible, interface design was a high priority.

The project taught me a lot about design, user experience and effective communication in a team; as well as broadened my knowledge of C++ and common programing constructs and algorithms.

My final and most successful project at Polaroid was a bit smaller in scale, but was much more scientifically intensive. The object of the project was to save the company money by phasing out a dying array of machines used to report film density with less expensive machines that worked on the principle of sensitometry. The data generated by the new machines was equivalent but was not on the same scale ( almost like the difference between Fahrenheit and Celsius). The new machines also provided extra information as well that could be leveraged. It was decided a Windows application would be written to read in the new data format for each film run, process the data, and save it to a database for archiving and reporting. The application had to be very simple to use, reliable, and allow for a high level of configuration.

The team put together for this project was quite small. I was the only developer; and was teamed up with one of the chemical engineers who would be responsible for describing the calculations the application would be required to make and to validate the data generated.

Most of the configuration that was needed was handled in the GUI and then stored in config files. The config files could also be modified to support extended features.

We also added a simple reporting system that printed a color chart of the film's sensitometry data, giving the engineers a quick way to evaluate the quality of the current film run.

The project was completed in 1997 and was a complete success. The application is still in production today. It is used to validate the quality of Polaroid's black and white film as it comes off the production line. This saved the company hundreds of thousands of dollars and gave them a valuable reporting and archiving system for historical data analysis.

This project gave me a better understanding of the value of C++ and the encapsulation of data as well as the benefits of the OO paradigm. I had no UML experience, but actors and objects and interfaces emerged just the same and became part of my design.

Staying Current
 ** In this section I list some of the ways I keep myself current on developments in the industry, and some of the resources I frequently turn to, to help me with my projects. I also list many of the books I have read in the last year or so; some still in the process of being read and digested.

 

Publications

Books

Personal Projects

  • Gameweave game engine
    This is a game engine I work on when I have spare time. I has gone through several iterations as well as re-writes. At the moment it consists or OGRE as the rendering engine, ODE for physics, LUA for scripting, SDL Mixer for music playback and my own serialization layer. I also utilized Scott Bilas' FuBi implementation. The project continues to be a furtile place for me to test ideas.
  • Talkback Trillian plugin
    This plugin for Trillian was designed to help me communicate with people faster and still keep my eyes on my work. It continues to be an important project to help me learn to balance feature requests with stability and testing.
  • Interactive fiction text to speech
    This has been one of my most challenging projects because of the inability of the users to actually see the application controls. It really has forced me to rethink the concept of user experience. In the end, I solved many problems by extending standard windows controls and attaching speech ques to events, to allow the visually impaired user to navigate the program.

About Me
 

Hobbies

In my spare time I have become involved with some open source development projects on-line and have become very interested in game development. It allows me to combine my musical abilities and my artistic interests. It also provides me with a set of unique problems that help hone and further my C++ skills and at the same time gives me immediate feedback on my progress. I would have to say I have learned more about good OOAD in C++ from the game development community than almost anywhere else. I am very dedicated to my advancement as a C++ developer. Even though over the last few years my 'on the job' time has been spent in the web/J2EE arena it has helped me progress in other areas I might not have had the time to pursue. My photoshop/graphics and UI skills have definitely benefited from the client side of web work and Java's strict OO design has influenced how I design and implement my code, regardless of language.

Freeware development is something I like to do to give back to the helpful community that has helped me along with all my personal projects as well as my career as a developer. I don't like doing things more than twice; for instance this resume is generated by an XSL translation of XML data so I can use the same data for print, e-mail, and on the web; it also makes it much easier to keep current. Therefore I end up with a lot of personal little tools to help me get things done. I have packaged some of those tools and put them on-line for download. One application did get me a nice mention in a web developers book that can be found here:

Webheads Guide to Netscape

Some of my very simple freeware, some very old, can be found on my web site.

Music has always been part of my life since I was a very young and I have been playing the guitar for over 17 years. I also do some composition and have licensed some music pieces to companies for corporate and commercial presentations, including Rational Software. You can find more info here.

Technology Matrix
** Here is a list of technologies I have worked with or learned over the years and my level of experience with each. I find this an easier way to look at this information instead of diplaying a list of words in a paragraph. I used 'NA' to indicate where the time/training was nominal or an entry did not make sense.
Languages
NameExp.TimeTrained?
C\C++ very experienced 10+ years yes
Fortran familiar NA NA
Java experienced 5 years NA
Pascal familiar NA NA
Scripting
NameExp.TimeTrained?
ASP familiar NA NA
Javascript very experienced 5 years NA
Lua experienced NA NA
Perl very experienced 5 years NA
PHP familiar NA NA
Unix Shell scripting experienced 5 years NA
VB Script experienced 4 years NA
API/Libraries/Frameworks
NameExp.TimeTrained?
ATL experienced 3 years NA
Boost NA NA NA
CGI experienced 6 years NA
COM familiar NA NA
DirectX experienced 3 years NA
EJB experienced 3 years NA
J2EE experienced 3 years NA
JDBC experienced 3 years NA
JSP experienced 3 years NA
MFC familiar NA NA
ODBC experienced 6 years NA
OpenGL familiar NA NA
OWL experienced 3 years NA
SQL experienced 6 years NA
STL experienced 2 years NA
UML familiar NA yes
Win32 very experienced 6 years NA
Winsock familiar NA NA
WTL experienced 3 years NA
Operating Systems
NameExp.TimeTrained?
*nix experienced 6 years NA
SGI experienced 4 years NA
Solaris experienced 3 years NA
Windows (95/98/me/NT/2000/XP) very experienced 10 years NA
Web Based
NameExp.TimeTrained?
HTML expert 6 years NA
XML experienced 2 years NA
XSL XSLT experienced 1 year NA
Applications
NameExp.TimeTrained?
Ant experienced 1 year NA
Apache experienced 3 years NA
Eclipse familiar NA NA
PCLint experienced 3 years NA
Photoshop experienced 7 years NA
Rational Rose familiar NA yes
Tomcat experienced 2 years NA
Visual C++ very experienced 6 years NA
Weblogic 5.1 experienced 3 years yes
WebSphere familiar NA yes
WSAD familiar NA yes
XDE familiar NA NA