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