OBJECTIVE
My goal is to become one of the
leading authorities in the areas of object-oriented technology, agile
methodology and project management. I've been studying and developing software
since 1985. Since the mid 1990s my focus has been object-oriented technology,
frameworks, reusable architectures, adaptable and flexible systems, and
lightweight methodologies. I have developed frameworks, helped to design and
implement several applications, and mentored many developers in building
frameworks and enterprise components. I enjoy building elegant and successful
systems, helping people succeed, and learning new things. I want to continue to
provide analysis, design, and mentoring and to write papers that reflect on my
experience.
EDUCATION
B.S. in Computer
Science and Mathematics with a business emphasis at The University of Iowa; May 1989. CS GPA: 3.80/4.00; Math
GPA: 4.00/4.00; Business GPA: 4.00/4.00; Cumulative GPA: 3.80/4.00.
M.S. in Computer
Science, The University of Illinois; May 1992 GPA: 4.75/5.00; Presently working
towards a Ph.D.
Systems
|
Languages
|
|
|
IBM 370/333
(MVS), Prime 750/850, NEXT, SGI,
|
Smalltalk,
Java, JSP, Pascal, Lisp, Ada,
Clu, “C”,
|
|
VAX 11/780,
Encore (UNIX), Apollo, HPs, OS/2,
|
C#
.NET, C++, BASIC, Assembly, Forth, FORTRAN,
|
|
Sun, IBM
PC-MSDOS, Macintosh, Windows NT /9X, Windows XP, Windows 2000.
|
Lex, Yacc,
Prolog, Scheme, Hypertalk, SQL, PERL.
|
|
|
|
|
Applications
VisualWorks; Visual Studio;
Eclipse; IBM VisualAge Smalltalk and Java with VA Assist Window Builder;
Distrubuted; ENVY; GemStone; Versant; JSP and J2EE, Paradigm Plus; Rational
Rose; Corel; Xemacs; Vi; and many other editors; Microsoft Office; PageMaker;
Oracle; DB2; ERWIN; Dbase IV; Lotus 1-2-3; Suntools; X-windows; LaTex; Netscape
and IExplorer; most UNIX apps and more.
COURSE HIGHLIGHTS
Object-Oriented Programming and Design
(specifically using Smalltalk and Patterns); Programming with Pascal; Assembly
Language Programming; Programming Techniques & Data Structures; Programming
Language Concepts; Digital Systems and Computers; System Software; Algorithms
and Data Structures; Software Engineering; Automata Theory, Formal Languages
and the Theory of Computation; Numerical Analysis; Probabilities and
Statistics; Calculus I, II, III; Differential Equations; Linear Algebra; Probability
and Spatial Functions; Abstract Algebra;
Discrete Structures; Programming Language Principles; Microprocessor
Systems; Artificial Intelligence; Program Verification; Rewrite Systems;
Concrete Mathematics; Numerical Approximation and Ordinary Differential
Equations; Database Theory; Real Time Systems; Human Computer Interaction;
Learning Theory; Computer Aided Design; Computer-supported Cooperative Work;
Database Systems; Groupware and Collaboration Architectures.
HONORS
Excellent Teaching Award at The University of Illinois, 1990 to 1994; High Distinction and Honors
graduate in Computer Science and Mathematics at The
University of Iowa; The University of Iowa Academic Scholarship,
1985 to 1989; Dean’s list ten of ten semesters; President’s list January, 1987;
Who’s Who Among American High School Students during junior and senior year.
EXPERIENCE
Project Manager, Architect and
Designer, The Refactory, Inc; Urbana, Illinois. May 2003 to Present. I have provided
consulting and mentoring services to Comac, a medium-sized US
document management and order fulfillment company. I have also acted as project
manager regarding development of an Order Fulfillment System. This C# .NET project
involves the incorporation of Adaptive Object-Model technology for describing
and building invoices to adapt to evolving customer requirements. The result is an invoicing domain-specific
language that allows users to dynamically describe new invoicing rules and
adapt to these changing requirements. Additional work has included conversion
of existing warehouse applications into Microsoft Windows .NET C# applications
running on SQL Server 2000, for a medium-sized US document management and order
fulfillment company. We also worked on a
C# .NET project involving the incorporation of Adaptive Object-Model technology
for describing and building order imports to adapt to evolving customer
requirements.
Web-Design & Programming,
Web-Services, and Technical Lead,
CU LocalBiz.com; Urbana, Illinois. September 1999 to Present and
DSM Local Biz.com; Des
Moines, Iowa. January 2001 to Present. I co-founded these companies in which I am
the Director of Research & Development called CU Local Biz.com and Dsm
Local Biz.com. These are local Internet
companies that support local businesses getting online. I provide the technical support for the
web-design, provide and maintain a Unix and NT Server for our businesses web
pages, and overall management support for our companies.
Object-Oriented Consulting,
Mentoring, and Teaching, Joseph
W. Yoder Enterprises Inc and The Refactory, Inc; Urbana, Illinois.
September 1998 to Present. I
am currently working through a company I am a principal of called The
Refactory, Inc. (www.refactory.com). We
teach and customize courses on Design Patterns, Frameworks, Refactoring,
Smalltalk Advanced and Beginner levels, and Testing. We mentored Caterpillar
developers in the practices of eXtreme Programming. We also provided design experience with the
architecture of their Java framework with Websphere that is used for quickly
building Intranet applications and saving data either to Oracle or DB2. This work included assisting them with
creating a persistence framework for a generic way to save values to their
database, architecting a security framework, and building a mediator and
adaptor layer for buffering GUI values during editing.
I have taught Object-Oriented
concepts including Patterns and VisualAge Smalltalk to the Illinois Department
of Public Health (IDPH) analysts and developers, and have mentored many
developers on the development applications being deployed across the state of Illinois
such as the Newborn Screening application, the Refugee System, and the Food
Drug and Dairy application. I worked
with the analyst team doing the OOAD for the projects and I coordinated the
efforts of this development including project management and as the primary architect
of the reusable frameworks being developed.
These systems were spawned from involvement in the development of an
Enterprise Class Library to assist with the ongoing development of needed IDPH
applications. This Enterprise Class
Library is a collection of frameworks and common components used for more
quickly building applications at IDPH.
The frameworks include Persistence, Security, Replication, and Adaptive
Object-Models for quicly adapting to new business rules.
I also mentored the Illinois
Department of Insurance with migrating a Smalltalk framework for building
client-server applications and he assisted with the documentation of the
frameworks the development of an application using the evolved framework. I evolved and taught an Introductory and
Advanced Smalltalk training course for the State of Illinois
developers through Lincoln Land
Community College which was
provided as a college course for these developers in the fall of 2000.
Object-Oriented Consulting and
Teaching, Joseph W. Yoder
Enterprises Inc; Urbana, Illinois. September 1994 to December
1998. I have worked with Ralph
Johnson teaching Object-Oriented Programming and Design (specifically using
Smalltalk and Design Patterns). I also
helped Ralph with his Summer Smalltalk class, taught a seminar on Design
Patterns, trained Caterpillar developers on Smalltalk programming and designing
our Smalltalk frameworks. I developed black-box frameworks for Caterpillar
financial modeling and scenario planning.
We provided knowledge-transfer of the technology to be used in-house. This included teaching object-oriented
principles, Smalltalk mentoring, and assisting them with learning the details
of the design of our framework. I have
also provided consultation, mentoring and direct development support for
various companies in setting up systems, networks, and servers. I have been teaching the principles of
framework development using our black-box framework as an example for an OOPSLA
tutorial.
Object-Oriented Consulting and
Programming, ClearSystems; Dallas, Texas.
June 1997 - September 1997. Providing high-level support of the
design and implementation of a black-box framework implemented in VisualWorks
under the ENVY development environment and integrated with Versant. We primarily provided for the clean up of
their design, optimizing their code, and providing parallelization.
Project Manager, Research
Analyst, Designer, and Programmer,
CAT/NCSA @ University of Illinios; Urbana, Illinois. January 1994 to December 1998. This work has involved extensive research,
design, and implementation of various projects sponsored by Caterpillar at the National
Center for Supercomputing
Applications. I was responsible for
managing teams of 3-8 people on these various projects. These projects ranged from client-server
information system applications mapping to relational databases, web-based
applications to multi-tiered object-oriented applications involved with the
details of running their business.
Project Manager, Architect, and
Designer, New England Research
Institute; Urbana, Illinois. September 1992 to 1995. Developed the architecture, and designed the
specifications for the Blood Bank Analysis System sponsored as a Small Business
Innovative Research Grant by the National Institute of Health. This system was developed as a generic
framework for generating a class of these applications that allowed for
different Blood Banks to easily install a new application and was designed and
programmed using Object-Orientation.
Work also included the management of the software development process
from the requirements phase to the successful implementation and documentation.
Teaching
Assistant, The University of Illinois; Urbana, Illinois. January 1990 to 1994. I received the Excellence Teaching Award
every year I taught. Following are the
classes taught at The University of Illinois
·
Introduction to Programming
·
Discrete Mathematical Structures
·
Data Structures
·
Introduction to Theory of Computation
·
Topics in Compiler Construction
·
Concrete Mathematics
·
Object-Oriented Programming and Design
Project Manager, Research Analyst, Designer,
and Programmer, University Park Pathology Associates, P.C. and Lifespan
Research Institute; Urbana, Illinois.
August 1989 to 1993. Software projects include the development of
many types of Medical Information Systems that ranged from decision support to
assisting with the collection of physical findings and analysis of the
findings. Work included the development
and implementation of an expanded interface to a medical record prototype. Original work was done in the 1970’s on Plato
and I have developed a current interface for use on the MacIntosh along with
requirement analysis, internal specifications, and external
specifications. Developed in-house tools
for the computer-assisted design and implementation of interactive Health Risk
Appraisal software. Defined user
requirements and wrote functional specifications, implementing a methodology
for design specification and its expansion into source code. Standardized graphical interface and code
structure. Supervised the implementation
of the tools. Provide for computer
support through the research of proposed hardware and software solutions. There were various projects developed which
can be found at: http://www.joeyoder.com/Research/projects.html. The project management included creating
delivery schedules and reporting progress to management and communicating
design ideas and needs to customer and developers.
Honors Research, The University of Iowa; Iowa
City, Iowa.
August 1988 to 1990. Did
research for an Honor's research project in Computer Science and
Mathematics. The project is "The
Use of Data Compression in Cryptography” and has included empirical testing
that has provided scaling rules for different size alphabets. I have studied the security of a splaying
algorithm proposed by Prof. Douglas Jones.
Work on this project expanded my experience with Abstract Algebra,
Probability and Statistics, Information Theory, Cryptography and Data
Compression (specifically with the use of Splay Trees).
Software Development, Individual Development Project; Iowa City, Iowa. May 1987 to April 1989. Working independently with a Ph.D. student at
The University of Iowa on the development of software to be used in the medical
field. Work included: Development of
requirement analysis, internal specifications, and external specifications;
Design and implementation of modules to be used for the system; and the development
of documentation for users of our system.
Software Design, Dong-Won Research Company; Iowa City, Iowa. April 1987 to April 1989. Design of requirement specifications along
with the development and implementation of software projects that are used in
the medical field; including software development tools for aid in design.
Project Leader, Individual Programming Project at The University of Iowa; Iowa
City, Iowa.
August 1987 to May 1988. I
worked as a team leader on an independent studies project in Software
Engineering with Professor Kung at The University of Iowa. This project was the design and
implementation of an information system to be used by The UI Office of
University Relations. Preliminary work
included the development of Requirement Analysis for the information system using
the Data Flow Specification Language (DFSL) in a team environment. During the development, Data Flow Diagrams
were developed along with Data Dictionaries.
Follow up work included further studies of software engineering
techniques and the supervising/directing of the software development team. This supervising work involved: the
coordination and guiding of team efforts; the evaluation of team progress;
helping resolve communication problems; and offering experience where needed.
SOFTWARE PROJECTS:
I have been involved with quite a
few projects over the years and the details can be viewed at:
http://www.joeyoder.com/Research/projects.html
PUBLICATIONS:
I am the author of over two-dozen
published patterns and have been working with patterns for a long time, writing
my first pattern paper in 1995, and chaired the PLoP'97, conference on software
patterns.
I have written and published many
other various papers and a detailed list can be found at:
http://www.joeyoder.com/papers/papers.html
ACTIVITIES/INTERESTS
Personal computing, Tai Chi,
photography, billiards, music, dancing, communication.
REFERENCES:
Furnished upon request.