SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
dean@deanwampler.com
Dean Wampler                                                                                      http://polyglotprogramming.com
                                                                                                   http://github.com/deanwampler
                                                                                                                     Chicago, IL

Technical Leadership in Software Development
I am a software consultant that teaches and mentors teams in a number of areas.
• Polyglot and Poly-paradigm Programming: Combining the best of object-oriented,
  functional, and aspect-oriented programming paradigms, along with the best languages,
  Scala, Ruby, Java, and others, to build robust applications quickly.
• Agile Methods: Extreme Programming, Scrum, Lean and Agile in the Large.
• Lightweight Enterprise and Internet Technologies: In particular Ruby on Rails, the
  Spring Framework, and Akka.
In addition, I am an author and speaker with an established, international reputation.
• Programming Scala: (O’Reilly, 2009) A concise and comprehensive introduction to the
  Scala programming language.
• Speaker at Industry and Academic Conferences: QConSF, JavaOne, RubyConf,
  OOPSLA, AOSD, and others.


 Experience
  Senior Trainer, Mentor, and Training, mentoring, and consulting on Object-Oriented, Functional, and Aspect-Oriented
                  Consultant Software Development (OOSD, FSD, and AOSD), Agile Methods, Scala, Enterprise Java,
                   Object Mentor Ruby, C/C++, and C#.
                    Chicago, IL      • Co-author of Programming Scala (O’Reilly, Sept. 2009).
                                      •    Developed and delivered courseware and conference talks on OOSD, FSD, AOSD,
                                           Test-Driven Development (TDD), Refactoring, Agile techniques, Scala, Java, C++,
              July 2006 - Present          and Ruby.
                                      •    Frequent conference speaker on FSD, AOSD, Scala, Ruby, polyglot and poly-
                                           paradigm ideas, and craftsmanship.
                                      •    Mentored clients on design, XP/agile methods, corporate agile transitions (Agile in
                                           the Large), Enterprise Java, C/C++, Ruby, Scala, and C#.
                                      •    Founded the open-source project, Aquarium, an AOSD toolkit for Ruby.
                                      •    Contributed to FitNesse, an open-source acceptance-testing tool, and other open-
                                           source projects.
                                      •    Organizer of the Chicago-Area Scala Enthusiasts (CASE) user group.

         Principal Consultant Consultant on Aspect- and Object-Oriented Software Development, Enterprise Java, Ruby on
      Aspect Research Associates Rails, and Agile Methods.
                                      •    Architect and team lead for new services using the Spring Framework, Hibernate,
                                           and other lightweight enterprise Java technologies at an online advertising services
         August 2005 - June 2006           provider in San Francisco, CA.
                                      •    Contributed to a Ruby on Rails portal project at a major automotive manufacturer.
                                      •    Mentored clients on Spring, AOSD, and AspectJ.
                                      •    Contributed to the AspectJ standard library project.
                                      •    Speaker at several conferences on AOSD and Ruby development.
Directory of NCG Software Directed the server software development team for BridgePort’s Network Convergence
              Development Gateway (NCG), telecom SCP/VLR that integrates VoIP and other IP media with CDMA and
           BridgePort Networks GSM wireless networks.
                  Chicago, IL     • Built development team from 2 to 10 members.
                                      •    Project Management for all BridgePort development teams, using Scrum.
 September 2003 - August 2005         •    Participated in customer engagements for business development and requirements
                                           determination.
                                      •    Software process mentor and implementer.
                                      •    Implemented Enterprise Java components and server cluster configuration and
                                           provisioning tools.

                 Site Owner Managed advocacy web sites for Aspect Oriented Software Development (AOSD), a.k.a.
          Aspect Programming Aspect Oriented Programming (AOP), and Polyglot and Poly-paradigm Programming (PPP).
       Polyglot Programming      • Published white papers and conference talks on several facets of AOSD and PPP.
           July 2003 - Present   • Founded several open-source projects
                                      •    Contract4J, a Java 5 and AspectJ tool that supports Design by Contract in Java.
                                      •    Aquarium, an AOP library for Ruby

       Sr. Product Manager Senior Product Manager for the Enterprise Java features and Aspect-Oriented Programming
      IBM/Rational Software (AOP) support in Rational XDE, a modeling and patterns-oriented development tool that runs
              Redmond, WA in the Eclipse environment.
                                      •    Specified feature set for J2EE and Java Web Services support in XDE.
                                      •    Researched AOP and drove strategic planning for AOP support in XDE and other
   January 2002 – August 2003              Rational Products and services.
                                      •    Participated in whole-product strategies for product evolution and marketing.
                                      •    Worked with Rational and IBM customers and IBM to understand their
                                           development needs and to evolve XDE to support those needs.
                                      •    Presented XDE at industry trade shows.
                                      •    Expert Group Lead for JSR-26, "UML Profiles for Enterprise Java Beans" (starting
                                           with Public Draft 2).

       Software Architect Software Architect for Powerhouse's Pinpoint technology for routing wireless telephone calls
    Powerhouse Technology over the Internet. At the user's discretion, calls could be routed to IP devices or to mobile
               Seattle, WA phones. I was directly responsible for the web-services component and the overall network
                              architecture, including security issues. I contributed to the designs of a PC-based VoIP client
                              and the System Control Point (SCP), a server that is part of the telecom-signaling network
January 2001 - September 2001 (SS7 in N. America). (Powerhouse was a predecessor of BridgePort Networks.)
                                      •    Developed the network security architecture, utilizing IPSec, firewalls, proxies, etc.
                                      •    Explored conflicts between Internet standards for Voice over IP (VoIP), security
                                           (IPSec), and Network Address Translation (NAT). Recommended possible
                                           solutions.
                                      •    Member of the team that defined requirements and use cases using the Rational
                                           Unified Process (RUP).
                                 Architected the web-based Service Administration Module (SAM), a three-tier J2EE system,
                                 used by subscribers and administrators to provision the system. Implemented the web tier
                                 using Java, Apache Struts (JSP and Servlet based), dynamic HTML, and Cascading Style
                                 Sheets (CSS). The web tier communicated with Enterprise Java Beans (EJBs). The JBoss
                                 J2EE implementation was used.
                                      •    Provided technical contributions for business-development initiatives.
                                      •    Met with potential business partners and investors.
                                      •    Performed various process improvement and tool evaluation/selection tasks.
Systems Design Engineer Led the Advanced Development Team that investigated and implemented new technologies
                   Mercata for Mercata, both to improve Mercata's e-commerce site and to support corporate objectives
              Bellevue, WA for new business initiatives.
                                      •    Team Lead for Mercata Marketplace™, a self-service portal for third-party sellers
                                           to offer PowerBuys™ hosted by Mercata (analogous to auctions on eBay).
November 1999 - December 2000
                                      •    Implemented and maintained Mercata's web site for shoppers using WAP phone
                                           and Palm™ devices, using the BroadVision One to One™ e-commerce platform.
                                      •    Coauthored U.S. Patent applications for enhancements to Mercata's proprietary
                                           Group Buying technology.
                                      •    Provided technical contributions to strategic business development initiatives with
                                           Wireless and Broadband partners.
                                      •    Investigated Wireless and Interactive TV (iTV) technologies.
                                      •    Investigated XML/XSLT, Voice Recognition, and ShopBot technologies.

     Software Development Managed teams developing the user interface and Internet-Protocol (IP) monitoring and
                 Manager filtering technology for Sequel's Internet Resource Manager™ (IRM).
           Sequel Technology          •    Led effort to develop next-generation Java and web-based user interface.
                 Corporation
               Bellevue, WA
                                      •    Member of the team that defined new products, documented requirements and use
                                           cases, and developed the system architecture and design.
                                      •    Mentored junior engineers. Introduced process improvements.
    January 1999 - October 1999

         Software Architect Project Lead and Architect for the second-generation Mobility Operating Environment™
     Global Mobility Systems (MOE), a three-tier, client-server, web-based system for provisioning business dialing plans,
        (now part of OpenWave) which are enhanced services for wireless phone subscribers.
                 Bellevue, WA      • Member of the team that specified product requirements and use cases.
                                      •    Implemented user-interface and server components in DHTML and Java.
       April 1998 - January 1999
                                      •    Member of the team that re-architected a legacy system to incorporate new
                                           features and a web-based user interface.
                                      •    Developed the build process and improved other development processes.

    Staff Software Engineer Project Lead and Architect for a new user interface for an existing source-level debugger
       Applied Microsystems product line.
                 Corporation     • Led requirements gathering, architecture, design, and implementation.
               Redmond, WA
                                      •    Developed a reusable C++ component framework for debugger-type applications
                                           based on the Galaxy Application Environment™ from Visix Software.
      February 1995 - April 1998
                                      •    Designed a cross-platform user interface that supports the Windows and Motif
                                           design guidelines. Applied the principles of effective human-computer interaction
                                           (HCI).
                                      •    Promoted use cases as a tool for driving quality assurance (QA) activities.
                                      •    Mentored other engineers in object-oriented (OO) methods.
                                      •    Supervised small development team.

       Software Engineer III Developed user-interface and system-diagnostics software for real-time medical ultrasound
        ATL Ultrasound, Inc. system, the Ultramark 2000™.
                 Bothell, WA      • Pioneered the use of object-oriented methods and C++ at ATL.
                                      •    Developed diagnostic user interface "panels" for technicians, customers, and other
     June 1991 - February 1995             non-technical users.
                                      •    Developed C/C++ software for the VxWorks and iRMX operating systems and the
                                           X window system.

        Software Engineer Developed user-interface, data-analysis, and system-control software for real-time, three-
   Technical Arts Corporation dimensional scanning systems.
              Redmond, WA         • Used object-oriented design techniques.
                                      •    Implemented C/C++ software for iRMX, UNIX V4.0, and DOS platforms.
       January 1990 - April 1991
Technologies
     Software Development     •   Aspect-Oriented Software Development: Pioneering work on applications of
                                  AOSD to the full development life cycle. Lead developer of the open-source
                                  Aquarium toolkit for AOSD in Ruby and Contract4J for Design by Contract in Java.
                              •   Object-Oriented Software Development: 20 years of experience using several
                                  OOP languages.
                              •   Functional Software Development: 2 years of experience using Scala and some
                                  Erlang, Clojure, and Scheme.
                              •   Software Life-cycle: XP, Lean, and Scrum, Test-Driven Development (TDD) and
                                  Refactoring, Scaling Agile to Large Organizations.
                              •   Languages: Scala, Ruby, Java, C/C++, C#, JSP, HTML, XML, CSS, JavaScript,
                                  Perl, UNIX shells, plus some Erlang, Clojure, and Scheme.
                              •   Internet/Enterprise: Ruby on Rails, Spring Framework, Akka, J2EE.
                              •   Databases: MySQL and Oracle, some exposure to NoSQL data stores.
                              •   Operating Systems: Mac OS X, Linux, Windows.
                              •   Other: Concurrency, multi-platform portability, real-time and performance issues.

              Management      •   Project Management: XP, Lean, and Scrum, agile transitions for large
                                  organizations, resource and people management, scheduling, team mentoring.
                              •   Technology Trends: Evaluation of trends as they apply to business objectives.
                              •   Product Management: Technical contributions to strategic business initiatives.
                              •   Communications: Customer-focused, skilled at communicating technical concepts
                                  to non-technical stakeholders.

      Internet and Telecom    •   Internet Standards: Voice over IP (VoIP), IPSec protocols, Network Address (and
                                  Port) Translation (NAT/NAPT), etc
                              •   Telecom: SS7 signaling protocols
                              •   Wireless LANs: 802.11 ("Wi-Fi") wireless LAN protocols

 User-Interface Technology    •   Human Factors: Effective presentation of information, visual clarity
                              •   UI Design: For technical and non-technical users, for web and “rich client
                                  applications

Publications & Speaking Engagements (links are PDFs unless otherwise noted)
       Programming Scala      •   with Alex Payne (O’Reilly, Sept. 2009)

               Clean Code     •   “Clean Systems” chapter of Robert Martin’s Clean Code book

                 ICSE 2007    •   Aspect Oriented Design for Java, AspectJ, and Ruby (full day tutorial)

             OOPSLA 2007      •   Aspect Oriented Design for Java and AspectJ (1/2 day tutorial)

  Aspect-Oriented Software    •   Aquarium: AOP for Ruby (2008)
  Development Conference      •   An Aspect-Oriented Perspective on Object-Oriented Design (2007)
                2006 - 2008
                              •   The Challenges of Writing Reusable and Portable Aspects in AspectJ: Lessons
                                  from Contract4J (2006)
                              •   Contract4J for Design by Contract in Java: Design Pattern-Like Protocols and
                                  Aspect Interfaces (2006)
                              •   Aspect Oriented Design for Java, AspectJ, and Ruby (1/2 and full-day tutorials,
                                  2006-2007)

            RubyConf 2008     •   Better Ruby Through Functional Programming (video)

      QCon San Francisco      •   Radical Simplification Through Polyglot and Poly-paradigm Programming (video,
                                  slides - 2008)
                2008 - 2009
                              •   Scala Full-Day Tutorial (2009)

             JavaOne 2009     •   Don't Do This! How Not to Write Java Software
Agile 2007 - 2008      •   Ruby’s Secret Sauce: Metaprogramming (1/2 day tutorial - 2007)
                                 •   Clean Systems: Clean Code at the Architecture Level (2008)
                                 •   The Seductions of Scala (2009)
                                 •   Acceptance Testing Java Applications with Cucumber, RSpec, and JRuby (2009)

       SD West 2007 - 2009       •   The Seductions of Scala (Tutorial - shorter version here, 2009)
                                 •   Better Ruby Through Functional Programming (2009)
                                 •   Polyglot and Poly-Paradigm Programming (2008)
                                 •   Aspect-Oriented Programming in Ruby (2008)
                                 •   Aspect-Oriented Design and Programming in Ruby (2007)

    SD Best Practices 2008       •   Principles of Ruby Application Design (1/2 day tutorial)

   Architecture and Design       •   Ruby Application Design (2008)
         World 2006 - 2008       •   Aspect-Oriented Design in Ruby (2007)
                                 •   Aspects in Dynamic Languages (2006)
                                 •   Architecture Best Practices for Ruby Applications in a Java World (2006)

      WindyCityRails 2009        •   (Son of) Better Ruby Through Functional Programming (video, slides)

         Chicago Polyglot        •   Polyglot and Poly-paradigm Programming (May 2008)
      Programmers Group          •   The Seductions of Scala (Oct 2008)
Chicago Ruby Users Group         •   Aquarium: AOP for Ruby (Oct. 2007)

Chicago Java Users Group         •   Aspect-Oriented Programming and Design for Java and AspectJ (Oct. & Dec.
                                     2007
                                 •   The Seductions of Scala (Dec. 2008)
    DePaul Univ. Computer        •   AOP in Academia and Industry
  Science Group, Oct. 2007
 developerWorks Live 2003        •   Model-Driven Development of J2EE Applications - A Practical Guide

     JBossTwo Conf. 2003         •   The Future of Aspect-Oriented Programming

     IBM’s developerWorks        •   AOP@Work: Component Design with Contract4J

             oreillynet.com      •   Cat Fight in a Pet Store: J2EE vs. .NET
                                 •   A Pet Market with Flash

 polyglotprogramming.com         •   Contract4J: Design by Contract for Java

  aspectprogramming.com          •   Aquarium: AOP for Ruby

             contract4j.org      •   Use Cases as Aspects

   aquarium.rubyforge.org

Education
 Ph.D., Theoretical Physics      •   Studied rare decay processes in atoms and nuclei.
    University of Washington     •   Developed numerical models of these processes using object-based methods and
                       1989          VAX FORTRAN.

   MS, Theoretical Physics       •   Studied the structure of protons and neutrons in atomic nuclei.
       University of Virginia
                        1985
               BS, Physics       •   Minor in Mathematics.
        University of Virginia
                         1982

Contenu connexe

Tendances

Developer Experience Overview
Developer Experience OverviewDeveloper Experience Overview
Developer Experience OverviewRoss Jimenez
 
Big data tim
Big data timBig data tim
Big data timT Weir
 
Distributed Software Development with Scrum and Social Coding
Distributed Software Development with Scrum and Social Coding Distributed Software Development with Scrum and Social Coding
Distributed Software Development with Scrum and Social Coding Intland Software GmbH
 
Acceleo Day - Orange
Acceleo Day - OrangeAcceleo Day - Orange
Acceleo Day - Orangesliard
 
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...Intland Software GmbH
 
Establishing a service factory
Establishing a service factoryEstablishing a service factory
Establishing a service factorydavemayo
 
JDE & Peoplesoft 1 _ Michael Plon _ JDE EnterpriseOne in the big bad world of...
JDE & Peoplesoft 1 _ Michael Plon _ JDE EnterpriseOne in the big bad world of...JDE & Peoplesoft 1 _ Michael Plon _ JDE EnterpriseOne in the big bad world of...
JDE & Peoplesoft 1 _ Michael Plon _ JDE EnterpriseOne in the big bad world of...InSync2011
 
Whats Hot, Whats Not Skills For Sas® Professionals (Presentation)
Whats Hot, Whats Not   Skills For Sas® Professionals (Presentation)Whats Hot, Whats Not   Skills For Sas® Professionals (Presentation)
Whats Hot, Whats Not Skills For Sas® Professionals (Presentation)Kirk Lafler
 
Ugif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutesUgif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutesUGIF
 
A Lap Around Visual Studio 11
A Lap Around Visual Studio 11A Lap Around Visual Studio 11
A Lap Around Visual Studio 11Chad Green
 
DPC2007 Zend Framework (Gaylord Aulke)
DPC2007 Zend Framework (Gaylord Aulke)DPC2007 Zend Framework (Gaylord Aulke)
DPC2007 Zend Framework (Gaylord Aulke)dpc
 
TAG17 - O'Zapft is - Daten zapfen leicht gemacht?
TAG17 - O'Zapft is - Daten zapfen leicht gemacht?TAG17 - O'Zapft is - Daten zapfen leicht gemacht?
TAG17 - O'Zapft is - Daten zapfen leicht gemacht?SbgMartin
 

Tendances (20)

Developer Experience Overview
Developer Experience OverviewDeveloper Experience Overview
Developer Experience Overview
 
Ketan Resume
Ketan ResumeKetan Resume
Ketan Resume
 
Big data tim
Big data timBig data tim
Big data tim
 
Distributed Software Development with Scrum and Social Coding
Distributed Software Development with Scrum and Social Coding Distributed Software Development with Scrum and Social Coding
Distributed Software Development with Scrum and Social Coding
 
Resume (1)
Resume (1)Resume (1)
Resume (1)
 
Lithesh Anargha Resume Final 1.0
Lithesh Anargha Resume Final 1.0Lithesh Anargha Resume Final 1.0
Lithesh Anargha Resume Final 1.0
 
RadPHP XE Datasheet
RadPHP XE DatasheetRadPHP XE Datasheet
RadPHP XE Datasheet
 
Acceleo Day - Orange
Acceleo Day - OrangeAcceleo Day - Orange
Acceleo Day - Orange
 
CGM versus SVG
CGM versus SVGCGM versus SVG
CGM versus SVG
 
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
 
Establishing a service factory
Establishing a service factoryEstablishing a service factory
Establishing a service factory
 
JDE & Peoplesoft 1 _ Michael Plon _ JDE EnterpriseOne in the big bad world of...
JDE & Peoplesoft 1 _ Michael Plon _ JDE EnterpriseOne in the big bad world of...JDE & Peoplesoft 1 _ Michael Plon _ JDE EnterpriseOne in the big bad world of...
JDE & Peoplesoft 1 _ Michael Plon _ JDE EnterpriseOne in the big bad world of...
 
kk_resume
kk_resumekk_resume
kk_resume
 
Whats Hot, Whats Not Skills For Sas® Professionals (Presentation)
Whats Hot, Whats Not   Skills For Sas® Professionals (Presentation)Whats Hot, Whats Not   Skills For Sas® Professionals (Presentation)
Whats Hot, Whats Not Skills For Sas® Professionals (Presentation)
 
Querix Lycia: 4GL is modern!
Querix Lycia: 4GL is modern!Querix Lycia: 4GL is modern!
Querix Lycia: 4GL is modern!
 
Ugif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutesUgif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutes
 
Resume2015-V1
Resume2015-V1Resume2015-V1
Resume2015-V1
 
A Lap Around Visual Studio 11
A Lap Around Visual Studio 11A Lap Around Visual Studio 11
A Lap Around Visual Studio 11
 
DPC2007 Zend Framework (Gaylord Aulke)
DPC2007 Zend Framework (Gaylord Aulke)DPC2007 Zend Framework (Gaylord Aulke)
DPC2007 Zend Framework (Gaylord Aulke)
 
TAG17 - O'Zapft is - Daten zapfen leicht gemacht?
TAG17 - O'Zapft is - Daten zapfen leicht gemacht?TAG17 - O'Zapft is - Daten zapfen leicht gemacht?
TAG17 - O'Zapft is - Daten zapfen leicht gemacht?
 

Similaire à resume (20)

Resume
ResumeResume
Resume
 
caseywest
caseywestcaseywest
caseywest
 
caseywest
caseywestcaseywest
caseywest
 
Akanchha_Aparajeeta
Akanchha_AparajeetaAkanchha_Aparajeeta
Akanchha_Aparajeeta
 
Chalam_JAVA_Portal
Chalam_JAVA_PortalChalam_JAVA_Portal
Chalam_JAVA_Portal
 
Santosh_Liferay_Developer
Santosh_Liferay_DeveloperSantosh_Liferay_Developer
Santosh_Liferay_Developer
 
Appnovation Intro Deck
Appnovation Intro DeckAppnovation Intro Deck
Appnovation Intro Deck
 
Ramarao_US_NewNumber_Promatrix_Webservice
Ramarao_US_NewNumber_Promatrix_WebserviceRamarao_US_NewNumber_Promatrix_Webservice
Ramarao_US_NewNumber_Promatrix_Webservice
 
Ramarao_US_NewNumber_Promatrix_Webservice
Ramarao_US_NewNumber_Promatrix_WebserviceRamarao_US_NewNumber_Promatrix_Webservice
Ramarao_US_NewNumber_Promatrix_Webservice
 
Vikas_Singh_updated
Vikas_Singh_updatedVikas_Singh_updated
Vikas_Singh_updated
 
Ravi Kiran Resume
Ravi Kiran ResumeRavi Kiran Resume
Ravi Kiran Resume
 
Ranjeet_Profile
Ranjeet_ProfileRanjeet_Profile
Ranjeet_Profile
 
Venkata
VenkataVenkata
Venkata
 
Wael Abdeen Resume
Wael Abdeen ResumeWael Abdeen Resume
Wael Abdeen Resume
 
Priyanka_Resume_Oct102015
Priyanka_Resume_Oct102015Priyanka_Resume_Oct102015
Priyanka_Resume_Oct102015
 
Bala Sr Java Developer
Bala  Sr Java DeveloperBala  Sr Java Developer
Bala Sr Java Developer
 
SRIRAM THOTA_JAVA_RES
SRIRAM THOTA_JAVA_RESSRIRAM THOTA_JAVA_RES
SRIRAM THOTA_JAVA_RES
 
Shah niharc vmar1a
Shah niharc vmar1aShah niharc vmar1a
Shah niharc vmar1a
 
Shah niharc vmar1a
Shah niharc vmar1aShah niharc vmar1a
Shah niharc vmar1a
 
Resume
ResumeResume
Resume
 

Plus de tutorialsruby

<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>tutorialsruby
 
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>tutorialsruby
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008tutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheetstutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheetstutorialsruby
 

Plus de tutorialsruby (20)

<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>
 
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0
 
xhtml_basics
xhtml_basicsxhtml_basics
xhtml_basics
 
xhtml_basics
xhtml_basicsxhtml_basics
xhtml_basics
 
xhtml-documentation
xhtml-documentationxhtml-documentation
xhtml-documentation
 
xhtml-documentation
xhtml-documentationxhtml-documentation
xhtml-documentation
 
CSS
CSSCSS
CSS
 
CSS
CSSCSS
CSS
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
 

Dernier

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Dernier (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

resume

  • 1. dean@deanwampler.com Dean Wampler http://polyglotprogramming.com http://github.com/deanwampler Chicago, IL Technical Leadership in Software Development I am a software consultant that teaches and mentors teams in a number of areas. • Polyglot and Poly-paradigm Programming: Combining the best of object-oriented, functional, and aspect-oriented programming paradigms, along with the best languages, Scala, Ruby, Java, and others, to build robust applications quickly. • Agile Methods: Extreme Programming, Scrum, Lean and Agile in the Large. • Lightweight Enterprise and Internet Technologies: In particular Ruby on Rails, the Spring Framework, and Akka. In addition, I am an author and speaker with an established, international reputation. • Programming Scala: (O’Reilly, 2009) A concise and comprehensive introduction to the Scala programming language. • Speaker at Industry and Academic Conferences: QConSF, JavaOne, RubyConf, OOPSLA, AOSD, and others. Experience Senior Trainer, Mentor, and Training, mentoring, and consulting on Object-Oriented, Functional, and Aspect-Oriented Consultant Software Development (OOSD, FSD, and AOSD), Agile Methods, Scala, Enterprise Java, Object Mentor Ruby, C/C++, and C#. Chicago, IL • Co-author of Programming Scala (O’Reilly, Sept. 2009). • Developed and delivered courseware and conference talks on OOSD, FSD, AOSD, Test-Driven Development (TDD), Refactoring, Agile techniques, Scala, Java, C++, July 2006 - Present and Ruby. • Frequent conference speaker on FSD, AOSD, Scala, Ruby, polyglot and poly- paradigm ideas, and craftsmanship. • Mentored clients on design, XP/agile methods, corporate agile transitions (Agile in the Large), Enterprise Java, C/C++, Ruby, Scala, and C#. • Founded the open-source project, Aquarium, an AOSD toolkit for Ruby. • Contributed to FitNesse, an open-source acceptance-testing tool, and other open- source projects. • Organizer of the Chicago-Area Scala Enthusiasts (CASE) user group. Principal Consultant Consultant on Aspect- and Object-Oriented Software Development, Enterprise Java, Ruby on Aspect Research Associates Rails, and Agile Methods. • Architect and team lead for new services using the Spring Framework, Hibernate, and other lightweight enterprise Java technologies at an online advertising services August 2005 - June 2006 provider in San Francisco, CA. • Contributed to a Ruby on Rails portal project at a major automotive manufacturer. • Mentored clients on Spring, AOSD, and AspectJ. • Contributed to the AspectJ standard library project. • Speaker at several conferences on AOSD and Ruby development.
  • 2. Directory of NCG Software Directed the server software development team for BridgePort’s Network Convergence Development Gateway (NCG), telecom SCP/VLR that integrates VoIP and other IP media with CDMA and BridgePort Networks GSM wireless networks. Chicago, IL • Built development team from 2 to 10 members. • Project Management for all BridgePort development teams, using Scrum. September 2003 - August 2005 • Participated in customer engagements for business development and requirements determination. • Software process mentor and implementer. • Implemented Enterprise Java components and server cluster configuration and provisioning tools. Site Owner Managed advocacy web sites for Aspect Oriented Software Development (AOSD), a.k.a. Aspect Programming Aspect Oriented Programming (AOP), and Polyglot and Poly-paradigm Programming (PPP). Polyglot Programming • Published white papers and conference talks on several facets of AOSD and PPP. July 2003 - Present • Founded several open-source projects • Contract4J, a Java 5 and AspectJ tool that supports Design by Contract in Java. • Aquarium, an AOP library for Ruby Sr. Product Manager Senior Product Manager for the Enterprise Java features and Aspect-Oriented Programming IBM/Rational Software (AOP) support in Rational XDE, a modeling and patterns-oriented development tool that runs Redmond, WA in the Eclipse environment. • Specified feature set for J2EE and Java Web Services support in XDE. • Researched AOP and drove strategic planning for AOP support in XDE and other January 2002 – August 2003 Rational Products and services. • Participated in whole-product strategies for product evolution and marketing. • Worked with Rational and IBM customers and IBM to understand their development needs and to evolve XDE to support those needs. • Presented XDE at industry trade shows. • Expert Group Lead for JSR-26, "UML Profiles for Enterprise Java Beans" (starting with Public Draft 2). Software Architect Software Architect for Powerhouse's Pinpoint technology for routing wireless telephone calls Powerhouse Technology over the Internet. At the user's discretion, calls could be routed to IP devices or to mobile Seattle, WA phones. I was directly responsible for the web-services component and the overall network architecture, including security issues. I contributed to the designs of a PC-based VoIP client and the System Control Point (SCP), a server that is part of the telecom-signaling network January 2001 - September 2001 (SS7 in N. America). (Powerhouse was a predecessor of BridgePort Networks.) • Developed the network security architecture, utilizing IPSec, firewalls, proxies, etc. • Explored conflicts between Internet standards for Voice over IP (VoIP), security (IPSec), and Network Address Translation (NAT). Recommended possible solutions. • Member of the team that defined requirements and use cases using the Rational Unified Process (RUP). Architected the web-based Service Administration Module (SAM), a three-tier J2EE system, used by subscribers and administrators to provision the system. Implemented the web tier using Java, Apache Struts (JSP and Servlet based), dynamic HTML, and Cascading Style Sheets (CSS). The web tier communicated with Enterprise Java Beans (EJBs). The JBoss J2EE implementation was used. • Provided technical contributions for business-development initiatives. • Met with potential business partners and investors. • Performed various process improvement and tool evaluation/selection tasks.
  • 3. Systems Design Engineer Led the Advanced Development Team that investigated and implemented new technologies Mercata for Mercata, both to improve Mercata's e-commerce site and to support corporate objectives Bellevue, WA for new business initiatives. • Team Lead for Mercata Marketplace™, a self-service portal for third-party sellers to offer PowerBuys™ hosted by Mercata (analogous to auctions on eBay). November 1999 - December 2000 • Implemented and maintained Mercata's web site for shoppers using WAP phone and Palm™ devices, using the BroadVision One to One™ e-commerce platform. • Coauthored U.S. Patent applications for enhancements to Mercata's proprietary Group Buying technology. • Provided technical contributions to strategic business development initiatives with Wireless and Broadband partners. • Investigated Wireless and Interactive TV (iTV) technologies. • Investigated XML/XSLT, Voice Recognition, and ShopBot technologies. Software Development Managed teams developing the user interface and Internet-Protocol (IP) monitoring and Manager filtering technology for Sequel's Internet Resource Manager™ (IRM). Sequel Technology • Led effort to develop next-generation Java and web-based user interface. Corporation Bellevue, WA • Member of the team that defined new products, documented requirements and use cases, and developed the system architecture and design. • Mentored junior engineers. Introduced process improvements. January 1999 - October 1999 Software Architect Project Lead and Architect for the second-generation Mobility Operating Environment™ Global Mobility Systems (MOE), a three-tier, client-server, web-based system for provisioning business dialing plans, (now part of OpenWave) which are enhanced services for wireless phone subscribers. Bellevue, WA • Member of the team that specified product requirements and use cases. • Implemented user-interface and server components in DHTML and Java. April 1998 - January 1999 • Member of the team that re-architected a legacy system to incorporate new features and a web-based user interface. • Developed the build process and improved other development processes. Staff Software Engineer Project Lead and Architect for a new user interface for an existing source-level debugger Applied Microsystems product line. Corporation • Led requirements gathering, architecture, design, and implementation. Redmond, WA • Developed a reusable C++ component framework for debugger-type applications based on the Galaxy Application Environment™ from Visix Software. February 1995 - April 1998 • Designed a cross-platform user interface that supports the Windows and Motif design guidelines. Applied the principles of effective human-computer interaction (HCI). • Promoted use cases as a tool for driving quality assurance (QA) activities. • Mentored other engineers in object-oriented (OO) methods. • Supervised small development team. Software Engineer III Developed user-interface and system-diagnostics software for real-time medical ultrasound ATL Ultrasound, Inc. system, the Ultramark 2000™. Bothell, WA • Pioneered the use of object-oriented methods and C++ at ATL. • Developed diagnostic user interface "panels" for technicians, customers, and other June 1991 - February 1995 non-technical users. • Developed C/C++ software for the VxWorks and iRMX operating systems and the X window system. Software Engineer Developed user-interface, data-analysis, and system-control software for real-time, three- Technical Arts Corporation dimensional scanning systems. Redmond, WA • Used object-oriented design techniques. • Implemented C/C++ software for iRMX, UNIX V4.0, and DOS platforms. January 1990 - April 1991
  • 4. Technologies Software Development • Aspect-Oriented Software Development: Pioneering work on applications of AOSD to the full development life cycle. Lead developer of the open-source Aquarium toolkit for AOSD in Ruby and Contract4J for Design by Contract in Java. • Object-Oriented Software Development: 20 years of experience using several OOP languages. • Functional Software Development: 2 years of experience using Scala and some Erlang, Clojure, and Scheme. • Software Life-cycle: XP, Lean, and Scrum, Test-Driven Development (TDD) and Refactoring, Scaling Agile to Large Organizations. • Languages: Scala, Ruby, Java, C/C++, C#, JSP, HTML, XML, CSS, JavaScript, Perl, UNIX shells, plus some Erlang, Clojure, and Scheme. • Internet/Enterprise: Ruby on Rails, Spring Framework, Akka, J2EE. • Databases: MySQL and Oracle, some exposure to NoSQL data stores. • Operating Systems: Mac OS X, Linux, Windows. • Other: Concurrency, multi-platform portability, real-time and performance issues. Management • Project Management: XP, Lean, and Scrum, agile transitions for large organizations, resource and people management, scheduling, team mentoring. • Technology Trends: Evaluation of trends as they apply to business objectives. • Product Management: Technical contributions to strategic business initiatives. • Communications: Customer-focused, skilled at communicating technical concepts to non-technical stakeholders. Internet and Telecom • Internet Standards: Voice over IP (VoIP), IPSec protocols, Network Address (and Port) Translation (NAT/NAPT), etc • Telecom: SS7 signaling protocols • Wireless LANs: 802.11 ("Wi-Fi") wireless LAN protocols User-Interface Technology • Human Factors: Effective presentation of information, visual clarity • UI Design: For technical and non-technical users, for web and “rich client applications Publications & Speaking Engagements (links are PDFs unless otherwise noted) Programming Scala • with Alex Payne (O’Reilly, Sept. 2009) Clean Code • “Clean Systems” chapter of Robert Martin’s Clean Code book ICSE 2007 • Aspect Oriented Design for Java, AspectJ, and Ruby (full day tutorial) OOPSLA 2007 • Aspect Oriented Design for Java and AspectJ (1/2 day tutorial) Aspect-Oriented Software • Aquarium: AOP for Ruby (2008) Development Conference • An Aspect-Oriented Perspective on Object-Oriented Design (2007) 2006 - 2008 • The Challenges of Writing Reusable and Portable Aspects in AspectJ: Lessons from Contract4J (2006) • Contract4J for Design by Contract in Java: Design Pattern-Like Protocols and Aspect Interfaces (2006) • Aspect Oriented Design for Java, AspectJ, and Ruby (1/2 and full-day tutorials, 2006-2007) RubyConf 2008 • Better Ruby Through Functional Programming (video) QCon San Francisco • Radical Simplification Through Polyglot and Poly-paradigm Programming (video, slides - 2008) 2008 - 2009 • Scala Full-Day Tutorial (2009) JavaOne 2009 • Don't Do This! How Not to Write Java Software
  • 5. Agile 2007 - 2008 • Ruby’s Secret Sauce: Metaprogramming (1/2 day tutorial - 2007) • Clean Systems: Clean Code at the Architecture Level (2008) • The Seductions of Scala (2009) • Acceptance Testing Java Applications with Cucumber, RSpec, and JRuby (2009) SD West 2007 - 2009 • The Seductions of Scala (Tutorial - shorter version here, 2009) • Better Ruby Through Functional Programming (2009) • Polyglot and Poly-Paradigm Programming (2008) • Aspect-Oriented Programming in Ruby (2008) • Aspect-Oriented Design and Programming in Ruby (2007) SD Best Practices 2008 • Principles of Ruby Application Design (1/2 day tutorial) Architecture and Design • Ruby Application Design (2008) World 2006 - 2008 • Aspect-Oriented Design in Ruby (2007) • Aspects in Dynamic Languages (2006) • Architecture Best Practices for Ruby Applications in a Java World (2006) WindyCityRails 2009 • (Son of) Better Ruby Through Functional Programming (video, slides) Chicago Polyglot • Polyglot and Poly-paradigm Programming (May 2008) Programmers Group • The Seductions of Scala (Oct 2008) Chicago Ruby Users Group • Aquarium: AOP for Ruby (Oct. 2007) Chicago Java Users Group • Aspect-Oriented Programming and Design for Java and AspectJ (Oct. & Dec. 2007 • The Seductions of Scala (Dec. 2008) DePaul Univ. Computer • AOP in Academia and Industry Science Group, Oct. 2007 developerWorks Live 2003 • Model-Driven Development of J2EE Applications - A Practical Guide JBossTwo Conf. 2003 • The Future of Aspect-Oriented Programming IBM’s developerWorks • AOP@Work: Component Design with Contract4J oreillynet.com • Cat Fight in a Pet Store: J2EE vs. .NET • A Pet Market with Flash polyglotprogramming.com • Contract4J: Design by Contract for Java aspectprogramming.com • Aquarium: AOP for Ruby contract4j.org • Use Cases as Aspects aquarium.rubyforge.org Education Ph.D., Theoretical Physics • Studied rare decay processes in atoms and nuclei. University of Washington • Developed numerical models of these processes using object-based methods and 1989 VAX FORTRAN. MS, Theoretical Physics • Studied the structure of protons and neutrons in atomic nuclei. University of Virginia 1985 BS, Physics • Minor in Mathematics. University of Virginia 1982