Rick Cochrane
RICK COCHRANE
ObjectZen Consulting
7116 Coachwood Road, Woodbury, MN 55125
email: rick@objectzen.net / rickcochrane@hotmail.com
mobile) 612.414.1024 home) 651.714.1957
PROFILE: Skilled senior-level software engineer with 12 years of
experience developing shrink-wrapped as well as custom in-
house and enterprise applications. Experienced leading small
teams and mentoring other software engineers. Very deep and
broad range of development abilities to draw upon. Thorough
experiential understanding of Object Oriented Development,
and common pitfalls encountered when developing in large groups.
Effective working independently as well as collaboratively -
very motivated. Certified in both Java (SCJP) as well as
Microsoft platforms (MCSD).
LANGUAGES: Java/J2EE, C++, C#, ASP.NET, SQL, XML / XSL, ADO.NET, ASP,
ADO, C, Visual Basic, Object Pascal, Assembly, Scheme, Ada,
Fortran, FoxPro/DBase.
TOOLS / TECH: .NET, Microsoft Visual Studio .NET, IntelliJ IDEA, NetBeans,
Omnicore CodeGuide (Java IDE), Karmira BugSeeker (Java Debugger),
Microsoft Visual C++, Macromedia Dreamweaver, Microsoft
Foundation Classes (MFC), Rational Rose, COM, COM+, DCOM, ATL,
MTS, MSMQ, Microsoft SQL Server 2000, Oracle, LDAP, source code
control applications (Visual Source Safe, Perforce, ClearCase,
CVS), Ant, Microsoft Project, Borland Delphi, Borland C++, lex, yacc.
JAVA / WEB: JDK 1.3.1 and previous, JSP (including custom taglibs), ASP.NET
(and classic ASP), Java security/cryptography (JAAS, JCE), servlets,
RMI, JDBC, JNDI, JUnit, ECS, HTML, CSS, Apache Tomcat (through v4.0),
"model-2 architecture", Struts, Tiles, Swing, AWT, Jakarta Commons
(Collections, Digester, Pool, Workflow), IBM Websphere 4.0,
Websphere Application Developer (WSAD)
METHODOLOGIES: Modeling in UML / Booch / OMT, Rational Unified Process (RUP),
Microsoft Solutions Framework (MSF), knowledge of and limited
experiences with XP (eXtreme Programming)
PLATFORMS: Windows 2000, Win NT 4.0, UN*X
EMPLOYMENT HISTORY
JAVA TEAM LEAD / ARCHITECT (Contractor) July 2002 - present
Wells Fargo, Minneapolis, MN
* Accountable for successful development of a mission-critical and strategic web
application that processes tens of billions of dollars in mortgages per year.
Helped execute on plans to drive profits through lowering costs (automation,
volume, BPR). Reduced costs of refinancing loans by over 65%, while increasing
volume 300%+. These factors combined to generate hundreds of millions of
dollars in profits in 2003.
* Performed in various roles on the project as needed, at different times Team Lead
to Developer to Architect. Also, significant time interfacing with business as
a Technical Project Manager.
* Responsible for overarching technical decisions for the development of the
product, and longer-term action plans necessary to morph the product into an
application platform for enterprise reuse. Creation of a standard XML grammar
for cross-application communication, and a message bus architecture using JMS and
XML/XSL. Movement toward a Service Oriented Architecture (SOA).
* Led the highly-achieving technical team to re-architect our product to mitigate
the spiraling development/maintenance costs associated with the current architecture.
Some examples of this are moving from a model-1 to a model-2 JSP architecture and
creating a significant productivity gain by replacing an inadequate proprietary O/R
(object-relational) database-mapping layer with Hibernate. Also led the design and
development of a completely new object model to support multiple flavors of the
application. These improvements were all performed in addition to new feature
development, and enabled my team to complete higher-quality work ahead of schedule.
* As development lead, I completed development on several features in the application
while managing my other duties on defect management and code review.
* Optimized portions of the application to be more fault-tolerant and asynchronous
(through JMS and database queueing). Converted underperforming XML portions from
DOM to SAX where appropriate. Helped to create and improve services layer (in
both XML-RPC and true SOAP web services)
Technologies exercised: Java/J2EE, IntelliJ IDEA, Apache Tomcat (through 4.0), JSP,
Struts/Tiles, XML/XSL, Ant, JDBC, servlets, Hibernate, JMS, SQL (DDL, DML, stored
procs, tuning), ILOG JRules, IBM Websphere
DEVELOPER / CONSULTANT (Contractor) July 2002 - November 2002
<< unspecified client >> , Saint Paul, MN
* Involved in commercialization of a web-application construction tool. Developed
significant portions of presentation- and middle-tier. Utilized workflow
framework to create process execution engine. Custom tree and grid views using
subclassed Tree and TableModels.
Technologies exercised: Java, NetBeans, Ant, Swing, AWT, Jakarta Commons (Collections,
Digester, Pool, Workflow)
DEVELOPER / CONSULTANT (Contractor) May 2002 - June 2002
SCICOM, Minnetonka, MN
* Led effort to provide billing data to clients and end-customers through a web portal.
Created framework to enable the client to extend this functionality to other
industries and clients. A significant goal of engagement being to transfer
knowledge to other staff (on a daily basis) regarding object-oriented programming,
.NET (primarily C#, ASP.NET, and ADO.NET), web architecture, XML, relational data,
and software engineering best practices.
Technologies exercised: Microsoft .NET Framework, C#, ASP.NET, ADO.NET, Visual Studio .NET,
SQL, javascript, XML/XSL, pair-programming
ARCHITECT / SENIOR DESIGNER (Contractor) June 2001 - March 2002
Prometric, Edina, MN
* Helped to lead a team of two-dozen developers while designing and implementing a
distributed, multi-tiered scheduling and registrations (S&R) system - the
application responsible for driving Prometric's business. The effort was particularly
complex, as it was replacing an enterprise-application that had grown over a period
of 10 years.
* Managed several parallel development teams (RUP) - responsible for driving and
documenting the design artifacts in UML.
* Responsible for coordinating integration efforts between S&R and other portions
of the business.
* Detailed project-planning and management activities (risk-analysis, task
identification, dependency-management, etc.)
* Other duties as needed: interviewed candidates, provided consultative insights to
management, organized and led technical- and business-meetings. Also provided
"point support" on a broad range of topics such as analysis, design, architecture
(and integration between our products), process- and coding-improvements, security,
and performance.
Technologies exercised: COM+, RUP, UML, Windows security (Active Directory), XML/XSL,
Visual Basic 6
SENIOR SOFTWARE ENGINEER March 2000 - April 2001
Macromedia, White Bear Lake, MN
* Participated on world-class team of developers in an intense effort to bring a
hotly anticipated 1.0 product to market. Very quickly transferred expert C++
skills to advanced level Java programming. Integration with databases (JDBC) and
other third-party applications. Experience in JNDI/LDAP programming.
* Worked on java security implementation for authentication and authorization.
Understand internals of Java security architecture (SecurityManager, AccessController,
Principal, Permission, etc.). Created custom permissions and a reference
implementation of ACL security (based off of the WebDAV ACL RFC). Knowledge in JAAS
(PAM), JCE, cryptographic theory.
* Created a framework for data transformations and flexible import/export of project-
management data in the product.
* Several iterations of redesigning the architecture and heavy work in RMI.
* Experienced working with very tight deadlines and under heavy stress.
Technologies exercised: Java (through JDK 1.3.1), JSP, XML/XSL, J2EE (JNDI, LDAP, RMI),
Java security and cryptography, servlets, ECS, JUnit, JRun, Apache Tomcat, javascript,
HTML, C++
CONSULTANT (Contractor) March 1997 - March 2000
Cotelligent Minneapolis, Inc., Minneapolis, MN
* Technical Interviewer (as well as Technical Interviewing workshop co-presenter and
regular participant)
* Columnist and regular contributor to the Cotelligent corporate newsletter
CLIENTS:
West Group February 1999 - March 2000
Eagan, MN
* Automated complex process for mission-critical data, using a combination of
technologies from XML to DCOM to transactional message queuing.
* In addition to carrying a heavy technical load, I was hired to mentor several
other Senior and Lead Developers in C++ and advanced software engineering concepts.
Spearheaded many educational/improvement efforts on topics such as OOA&D, C++,
coding standards, UML, and InstallShield.
Technologies exercised: C++, Windows programming, XML, COM, DCOM, ATL, UML,
InstallShield, authoring multithreaded NT services (as well as async I/O completion
ports, etc.), MSMQ, MTS, Rational Rose, Design Patterns
Residential Funding Corporation (GMAC/RFC) June 1998 - February 1999
Bloomington, MN
* Complete rework of the AssetWise Engine. This is an automated loan appraisal,
information, and approval product that is significantly table-driven, with data
stored in databases defining much of the functionality.
* Worked primarily in the middle-tier, developing objects to insulate our product
from format and data changes.
Technologies exercised: C++, STL, COM / DCOM / ATL, Design Patterns
West Group (West Publishing) March 1997 - May 1998
Eagan, MN
* Served as a lead member of a team development effort for Westmate 97 for Windows
95/NT, a software package that provides desktop access to WESTLAW legal databases.
This product is a critical component of West Group's long-term vision, and arguably
the industry standard legal research software package on the market today.
* Involved in the full product lifecycle, including requirements, user liaison,
programming, and usability testing.
* One of very few people involved with defining the overall architecture of the
product. Gained very deep knowledge of Windows internals. Led several teams to
successful completion of the teams' missions. Created many frameworks for the product.
* Approach used was Microsoft Solutions Framework Software Development Discipline
(MSF-SDD, a precursor to RUP).
Technologies exercised: C++, MFC, 32-bit, n-tier Windows development, custom controls
authoring, Rational Rose, heavy use of Design Patterns,
prototyping in Delphi
SOFTWARE ENGINEER March 1994 - March 1997
Triticom, Eden Prairie, MN
* Involved in all aspects of development on several award-winning network management
products for worldwide sale. Experienced in program- and interface-design, analysis,
programming and of large-scale products. Responsible for the two largest selling
products marketed by Triticom for two years.
* Demonstrated diverse understanding of network related issues, on hardware and software
levels. Real-time programming experience. Experienced in reading and implementing
worldwide formal specifications (RFCs and ISO).
* All three of my products have been profiled and favorably reviewed many times in
technical magazines such as LAN Magazine, Network Computing, InfoWorld, and
Data Communications.
Technologies exercised: C++, MFC, ObjectPascal, Assembly, Design Patterns.
Major accomplishments:
LANdecoder32( Distributed Network Monitoring / Analysis Application
* Co-developed an RMON (Remote MONitoring) manager application written for Windows NT / 95.
* Real-time packet capture with filtering and decoding capabilities.
LANdecoder family of products (Ethernet, Token-Ring, Arcnet)
* Developed and enhanced significant portions of a software-based protocol analyzer.
Supports complex filtering of network capturing based on station addresses as well
as packet contents.
* Includes full seven-layer decodes of the vast majority of network protocols in use,
including the full TCP/IP protocol suites, Netware Core Protocol groups, NFS, NetBIOS,
SMB, SNA, SNMP, ISO, and many more.
* Re-architected and re-implemented this extremely complex and "design-brittle"
application from DOS real-mode to DOS protected-mode (DPMI). Designed and implemented
a scheme for dual-mode NIC drivers - ISRs that communicate from both real- and
protected-mode. Implemented low-level network drivers and communication between processes.
* Developed new protocol decodes including IBM SNA and several layers of the ISO
protocol suite (8473, 8073, 8327).
AWARDS WON: LAN Magazine Product of the Year (1993, 1995)
Data Communications "Testers Choice" (1993)
InfoWorld Buyer's Assurance Seal (1993)
LANVision family of products (Ethernet, Token-Ring, Arcnet)
* LANVision (EtherVision, TokenVision, and ArcVision PLUS) is a software-based network
traffic and usage monitor. This product monitors the network and displays very detailed
usage statistics in real-time, including stations on the network, network conversations,
protocols transmitted, topology, and many others. Under my watch, the interface and
functionality of the LANVision family was greatly enhanced.
AWARDS WON: Tietokone "Editor's Choice Award 1994" (Finland) (1994)
Data Communications "Testers Choice" (1993)
COMPUTER SYSTEMS MANAGER January 1993 - January 1994
Minnesota Council of Nonprofits, Saint Paul, MN
* Operated and maintained a one-office network, running Novell NetWare. Was fully
responsible for authoring and maintaining office applications in FoxPro 2.0. Acted as
primary DB Administrator and Programmer for the Council.
* Some of the main programming duties included writing a Data Acquisition and Conversion
system to format raw IRS data, writing Data Entry and Retrieval Systems, and maintaining
the existing program base.
JUNIOR APPLICATIONS PROGRAMMER/ASSISTANT NETWORK ADMINISTRATOR October 1993 - March 1994
University of Minnesota - General College, Minneapolis, MN
* Performed college-wide computer and network support, and assisted in network
administration for a 400 node, multi-platform network operating under Novell NetWare 3.2,
connected to the University's TCP/IP backbone.
PROGRAMMER / CONSULTANT September 1991 - July 1992
Alt-Kie Computer Consultants, Inc., Minneapolis, MN
* My principal duties involved individual and group database development. Examples are
back office and POS systems.
* Worked with software and hardware installation and maintenance. Proficient networking
in Novell Netware 3.11.
PERSONAL INTERESTS / SIGNIFICANT CLASS-RELATED EXPERIENCES:
* Web services / SOAP / WSDL / UDDI
* EJB / JavaCard
* Security (JAAS, JCE)
* Advanced XML / XSL
* Wireless (WAP / WML)
* Voice Recognition (VXML)
* Swarm Intelligence / Emergent Behavior
* Compiler, networking, operating system, database, and language theory.
* Distributed programming, neural nets.
EDUCATION / CERTIFICATIONS:
* Sun Certified Java Programmer Sun Microsystems 2002
(Java 2 Platform) - SCJP
* Microsoft .NET Training ILM Learning 2002
* Several classes at the St. University of St. Thomas 1999-2000
Thomas Graduate School of Management
* Microsoft Certified Solution Developer Microsoft 1999
MCSD (MCP since 1998)
* Mastering Distributed Application Microsoft 1998
and Design and Development using
Microsoft Visual Studio 6.0
* Microsoft Solutions Framework - Microsoft 1997
Software Development Discipline
* Bachelor of Science, Computer Science University of Minnesota March 1994
Institute of Technology
Member number:8462
Additional Contact information is available on the Information Page.
Software Contractors' Guild (www.scguild.com)
Copyright(c) 1995 - 2001 Rick Cochrane and Software Contractors' Guild,
Post Office Box 257,Nottingham, NH USA 03290-0257