Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. Dean Wampler 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. 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. 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. 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. 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 • Cat Fight in a Pet Store: J2EE vs. .NET • A Pet Market with Flash • Contract4J: Design by Contract for Java • Aquarium: AOP for Ruby • Use Cases as Aspects 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