Qualifications
Mark has over seventeen years of software development experience including
fourteen years with object-oriented techniques and languages.
His areas of specialty include growing teams, overall system architecture, architectural infrastructure,
business analysis & domain modeling, and distributed information
systems. He is skilled at producing simple and effective designs to handle
very large and complex systems.
He is also adept at educating and rallying teams to become superior through
the best software practices.
Focus Areas
Mark focuses on helping teams become highly productive and predictable.
He also concentrates on creating sound overall architectures and the necessary frameworks
to support large project teams building complex information systems,
as well as small project teams trying to quickly develop simpler systems.
His specialty areas include:
- Team Building
- Determining the most appropriate development methods, guidelines, and tools for a particular team.
- Training teams to work effectively with their chosen methodology
- Teaching the intricacies of use cases, conceptual modeling, and other analysis techniques.
- Leading and supporting teams in their weekly activities
- Methodologies: XP, RUP, Catalysis, Booch, and customized
- System Architecture
- Defining, documenting, verifying and disseminating the architecture of the system
- Architecture Qualities: Evolvable, Cohesive, Object-oriented, Component-based, Distributed, Enterprise-scalable
- System Categories: Operations, Data warehousing, OLAP and other DSS
- Architectural Infrastructure
- Creating and guiding the design and development of critical architectural components in Java, Smalltalk, and C++
- Architectural Areas: Inter-system distribution, GUI frameworks (including ultra-light clients), domain model support, object-relational mapping, data and work-flow, meta-modeling
- Technologies: CORBA, EJB, XML, OODBs, RDBMSs
- Technical Review
- Evaluating the quality and appropriateness of software and architectures to meet project needs.
- Providing technical analysis of software patents
The kinds of projects he has worked on include:
- Executive information and decision support systems for unified health
care management
- Enterprise-wide operations systems for global container shipping
- Data warehouse and OLAP software products for a retailing software suite
- A political and military information center
- A drug usage analysis, bidding, and contracting system
- A managed-care database and workflow system
- An information referral and housing assistance system
- Object-relational mapping frameworks and information-modeling (XML) architectures
Accomplishments
Examples of Mark’s previous accomplishments, working with many good
people, fall into the following categories:
Team Building, Leading, and Supporting
- Development Process — Trained and lead multiple development teams
to use incremental, use-case based, OO, and architecture based
development processes. Formality varied between RUP, Catalysis, and XP, with customizations and heaviness appropriate for each development environment.
Made sure the development process worked well for each team (from analysis to tested/delivered code)
and was fully understood by every team member. Ensured team members were responsible for
fully defining their processes and deliverables, estimating times,
taking measurements, and supporting risk management.
- Team Architectural Skills — Trained and mentored developers to proficiency
with OO analysis, design and programming (Java, Smalltalk and C++), information
system architectures, advanced versioning and configuration management (ENVY, VAJ, ClearCase, etc.), and team processes. Helped
team to learn collaborative OO analysis and design through CRC sessions, paired
programming, shared CASE/UML work, and similar techniques.
- Team Design and Coding Skills — Developed design and coding standards for Java, Smalltalk and C++. Helped
develop group processes in all areas, including configuration management, quality review, CASE usage, group
communication, and education. Supported and consulted for most parts of
the software development process including design, analysis, database design,
client interfaces, and tool learning. Created tools for design, development, and documentation that
help maintain standards, aid program development, support group collaboration
and integration, and quickly produce useful documentation.
- Team Analysis Skills — Taught the intricacies of use-case based development and OO methods (UML, Catalysis, Booch, OMT, etc.), as well as
conceptual modeling (ORM, Kilov & Ross), entity-relationship modeling, and relational modeling to multiple teams of analysts and designers.
Helped support the continued growth of modeling abilities within the development team.
- Team Management Skills —
Helped managers learn to predict, control, and support their teams that are using new development method. This
included project scheduling for incremental \& iterative development, team motivation, and risk management.
- General Skills and Overall Environment — Helped create a positive overall work environment and grew particularly
strong & happy teams. Supported the continued growth of experienced
developers, including helping them to be comfortable making public presentations (OOPSLA) and internal high-level management company presentations.
System Architecture
- Multi-tier World-wide Operations System —
Architect for the overall system and unified business model of a 3-tier
global shipping operations system. Created, documented, and disseminated
the system designs throughout a 30+ person project and supported the teams implementing
the infrastructure and applications.
- Data Warehousing and OLAP —
Architect for a multi-tier data warehousing and OLAP product for the retail market.
Formalized the conceptual model used by the system to be more general and less platform oriented.
Worked with team to produce well-composed subsystem dependencies, layering, tiers, and design-level
patterns. The general architecture continued into subsequent applications within a suite of retail-supporting products.
Also helped perform acceptance, functionality, scalability and
platform-independence tests including formal benchmarking analysis.
- Rearchitecture —
Architect and training consultant to help an eight person team develop
their first object-oriented information system. Ported an application from
a monolithic 4GL architecture to a well partitioned, 3-logical-layer architecture
in a 5 week time span. Architecture and all major frameworks were integrated,
functionality tested and performance tested within the first 2 weeks, and
the second release was delivered 5 weeks after the first release.
- Initial Architecture Work —
Created or mentored the initial architectural work for applications including:
customer relationship management, allocation planning, product management, and a
multimedia political information center.
Architectural Infrastructure
- Application Servers —
Created design and supported implementation of a 3-tier application
server and persistence system to meet global WAN requirements. Solution
used VisualWorks, GemStone, C++, and Sybase.
- Helped create the complete infrastructure of a multi-user Java application server
for sophisticated OLAP processing.
- Business Domain Environments —
For multiple projects (container shipping, cargo shipping, drug management, and others)
defined concepts for a company's unified business model, developed supporting
business model frameworks, delegated ownership of the clusters
of the model, and coordinated the integrity of the complete model.
- GUI Frameworks —
Imparted knowledge, designs and code for multiple GUI framework concepts (MVC, ValueModel, Domain Presentation, etc.)
to UI framework team to build an ultra-thin client GUI system. Subsequently reviewed and supported development through multiple iterations of the frameworks.
-
Oversaw and supported (through high-level design review and mentoring)
UI portions of system architecture. Developed user-interface standards for many applications on Macintosh
and Windows platforms. Reworked user-interfaces of several systems to make
them cleaner and more effective.
- Persistence —
Designed, developed, and productised
FORM,
a commercial framework for Object-Relational Mapping.
- Was responsible for defining persistence approaches, selecting tools,
and designing the glue surrounding persistence capabilities on more than half a dozen projects.
Made sure persistence capabilities are as database independent as possible and are stable for the business model
even when running without a database.
Have worked with all major relational databases (Oracle, MS SQL Server, DB2, Sybase, Informix, etc.)
and several object databases (primarily GemStone and ObjectStore).
- Other Infrastructure Activities —
Helped redesign and implement the infrastructure of an enterprise health care executive
information system (EIS). Optimized performance of database, client, and GUI
portions of the system.
- Researched and developed MONDO:
an architecture for encoding, modeling, and processing knowledge
that uses XML, XSL, object-serialization, and similar technologies.
- Designed and developed a dynamically extensible execution environment
to support custom information systems. Developed and reworked several
application frameworks for custom software development
Technical Review
- Evaluated the quality and appropriateness of architectures and frameworks
for projects and development teams. Suggested alternative
approaches as needed, provided examples, designs, or full working code, and
trained team to use new techniques.
- Assessed the conformance of subcontracted projects to their original
specification and whether they were compliant with technical requirements
of the contract. This included both detailed analyses of capabilities and
comparing functionality and quality to similar existing products.
- Provided technical analysis of object-technology based patents.
Other Activities
- Also worked on: large computer network creation and management,
commercial WWW site creation, OODB functionality review, WAN network analysis,
WWW/CORBA architectures for OOIS, visual programming environments,
human factors and GUI guidelines,
document processing and publishing systems
Clients, Employers, and Projects
Publications
Mark has produced architecture documents, training presentations, requirement specifications, guidelines, white papers, tutorials, design documents, and numerous
other kinds of documents to support his focus areas. Some of his online publications include:
Technologies
Mark is experienced with many important technologies including distributed
applications (CORBA, RMI, EJB), OODBs (GemStone, ObjectStore), RDBMSs (Oracle, Sybase, MS SQL Server, DB2, Informix), GUI
frameworks (MVC, DP, ValueModel), hyper-document management (SGML, XML, XSL, WWW, Unicode), visual programming languages, GIS, and
parallel processing. His primary programming language expertise is in Java, Smalltalk, C++, C, SQL-based, and Perl.
His other languages include: Eiffel, Ada, Python, Lisp, Prolog, Postscript, TeX,
Hypertalk, and Assembly (680x0, 80x86). He has worked with Unix, Windows, Macintosh,
and a number of other operating systems on most major hardware platforms.
Education
Mark received his B.S. in Engineering and Applied Science from the California
Institute of Technology
Status
Mark is working full time at Velidom building NowUR.com among other company projects.
Other Versions
|