Scott Dorman

Microsoft MVP, Software Architect, Developer, Author

ABOUT

I am a Microsoft C# MVP, author, speaker, blogger, developer, and creator of codestyle.co, WP Requests and WinStore Requests.

I've been involved with computers in one way or another for as long as I can remember, but started professionally in 1993. Although my primary focus right now is commercial software applications, I prefer building infrastructure components, reusable shared libraries and helping companies define, develop and automate process and code standards and guidelines.

AWARDS & CERTIFICATIONS


Visual C#
2008 - 2016

Windows Development
2007

In progress

In progress

WORK

  • DevEvolved
    APRIL 2015 - CURRENT
  • InfernoRed Technology
    MAY 2014 - APRIL 2015
  • Accusoft
    JANUARY 2013 - MAY 2014
    • Senior Software Developer

      Responsible for redesigning and rebuilding the company’s outward facing customer portal using ASP.NET MVC. This included a custom membership provider which integrated with the SalesLogix CRM application. Developed a new customer facing invoice payments system to provide PCI compliance. Developed a new e-commerce system which integrated with the SalesLogix CRM application. Developed a web-based sales opportunity component for SalesLogix which replaced the out-of-box experience with a customized experience tailored to how our sales team works.

  • Serve/American Express (TEKSystems)
    JULY 2012 - SEPTEMBER 2012
    • Senior Software Developer

      Helped document the internal customer service tools for the American Express Software Architecture Review group. Participated in weekly technical lead discussions focused on software development lifecycle improvements and process implementations. Performed code reviews prior to code check-in and migration between application environments (development, QA, UAT). Assisted in day-to-day troubleshooting and product release troubleshooting.

  • BST Global
    January 2007 - June 2012
    • Senior Software Developer/System Architect
      October 2010 - June 2012

      Acted as a senior software developer, team lead and system architect for the platform API team. This platform API consisted of a core API and a set of WCF Windows services used by the design tools and the desktop client. Responsibilities included reviewing the architecture of the existing legacy code base, simplifying the public API interface, ensuring the API performed in a responsive manner, developing and approving architecture design for new features, developing core components of the API, and acting as a mentor to other team members.

    • Senior Software Developer
      January 2007 - October 2010

      Acted as the primary developer for the “Design Studio” suite of tools for the next release of the BST Enterprise project. These tools allowed a business analyst to visually develop XML based “models” for business entities, security primitives, and work flows which made up the core business data layer of the application. The tools communicated through WCF services to interact with a set of Windows services to perform validation and publishing the model information in to the database. The primary design tool was written in C# 4.0 using Windows Forms.

      Developed a consistent automated continuous integration build process using CruiseControl.NET and MSBuild. This included customizing the CruiseControl.NET installation to add custom extensions to CruiseControl.NET and custom XSL style sheets to format the build email and web dashboard reports as well as developing MSBuild extensions and standard target files.

      Helped establish the Jira workflows used for issue tracking and throughout the product life cycle. Assisted in developing custom integration between CruiseControl.NET, Team Foundation Server (TFS) and Jira in order to provide relationships between Jira issues, TFS work items (for check-in policies) and builds.

  • Sunbelt Software
    September 2004 - December 2006
    • Senior Architect/Lead Developer—Network Security Inspector
      August 2006 - December 2006
      This was the result of an organizational change consolidating several management positions into two Director of Development positions.

      Acted as a senior level developer and team lead for the SNSI 2.0 release, which was ported to C# 2.0 (from C++) using a web-services based vulnerability scan engine. Managed all aspects of this product, including the requirements definition, marketing description, user interface design, and technical architecture and implementation.

    • Application Development Manager—Network Security Inspector
      October 2005 - August 2006

      Initiated the move to C# 2.0 by porting the Sunbelt shared code library to C# 2.0 and refactoring the code base to take advantage of the newer language features provided by C# 2.0, such as generics. Also incorporated additional classes in to the library that had previously been isolated to individual products or reused at the source code level.

      Managed a team of 5 developers, 4 of whom were remote (3 in India and 1 in Spain), which consolidated all of the Sunbelt network security tools development to a single team. These tools included the Sunbelt Network Security Inspector (SNSI), LanHound [this product has since been sold to another company], and the Sunbelt Personal Firewall.

      Helped architect and design the next releases of all network security tools products, including writing and contributing to product requirement documents, writing and contributing to product technical requirement documents, writing and contributing to product testing requirements documents, tracking development time lines, negotiating features, and controlling the change management process.

    • Senior Architect/Lead Developer—CounterSpy Enterprise
      September 2004 - October 2005

      Acted as a senior level developer and team lead through 3 releases of the CounterSpy Enterprise anti-spyware product. CounterSpy Enterprise is a 3-tier enterprise ready application built using C# Windows services and Windows Forms applications, C++ Windows services and MFC applications, and Visual Basic 6 components (both DLLs and executables).

      Responsibilities included system technical design and architecture, integration with other Sunbelt technologies (including the Sunbelt Spyware SDK), system development, and technical mentoring/assistance to other team members.

      Helped implement full software development life cycle methodologies, including development and documentation of formal code style and quality standards, standard code reviews, and design reviews, including static code analysis using FxCop.

      Developed a consistent automated continuous integration build process using CruiseControl.NET and NAnt that was shared across the three development teams. This included customizing the CruiseControl.NET installation to add custom extensions to CruiseControl.NET and custom XSL style sheets to format the build email and web dashboard reports.

  • UnitedHealth Technologies
    September 2002 - SEPTEMBER 2004
    • Application Services Manager
      May 2003 - September 2004

      Established and managed an application development team of 5 developers to implement the next major release of the ODAR application. The architecture of the application was redesigned to more closely follow an Accounts Receivable (AR) system and all applications were consolidated under a single umbrella. This umbrella followed a framework model written in C# that served as the application run-time library. The framework supported a shared business layer that was shared across all of the application layers, which then supported multiple application interfaces, including ASP.NET WebForms and traditional Client/Server applications as well as C# based Windows Services.

    • Senior Application Developer
      September 2002 - May 2003

      Acted as a senior level developer and team lead on a series of applications to provide a claims management system for the Audit and Recovery Operations (ARO) department to track claim overpayments, recoveries, and generate letters requesting refunds to support an approximate annual target of $225M by ARO.

      The web application used ASP, extensive DHTML and CSS to implement a standard Windows GUI interface, VB COM+ components, XML, XSL, and XPATH queries. The database was migrated from IBM DB2 on Windows 2000 to SQL Server 2000 on a clustered Windows 2000 server.

      In addition to the web-based application, a supporting VB 6 application was rewritten as a Windows Service using VB.NET to provide multi-threading capabilities, and then subsequently rewritten to C#.

      In December 2002, this application was launched nationally across all of the UnitedHealth ARO departments, and was being considered for a commercial application.

  • Connextions.Net
    October 2001 - August 2002
    • Senior Application Developer

      Acted as a senior level developer and team lead on projects utilizing ASP, VB COM+ components, XML, XSL, and XPATH queries, SQL 2000 databases, SharePoint Portal, E-Gain, ASPECT voice systems integration (CTI), Call-Center CRM applications, fulfillment/shipping/warehouse integration (Pack/Verify systems, inventory management systems, and order management systems).

      Responsibilities included system technical design and architecture, system development, technical mentoring/assistance to other team members, ensuring that the project stayed within budget (hours), risk reduction, project and resource scheduling, and managing client expectations.

      Provided on-call support to Network Services for development support on production client problems. Provided technical assistance to application support and provided assistance on RFQ/RFP initiatives for time and staffing estimates, and initial technical designs.

      Participated in infrastructure design and development, including development and documentation of our design/development methodology and development of standard document templates (including System Design, Risk Reduction, System Requirements, RFQ/RFP, and System Test Plan templates).

      Developed a series of standard low-level, mid-level, and high-level infrastructure components and tools to provide a common framework for data validation, data access, error handling, session management, site configuration, and common utility functions. These standard components allowed the development process to be simplified to a "building-block" style, which used and extended the standard components and still allowed the flexibility to write project-specific components. High-level infrastructure components included internally used applications to provide time-tracking facilities, work order request management, and resource scheduling.

      Clients
      • Pearson Education, Inc.
      • Blue Cross/Blue Shield of Florida
      • Vector Group, Inc.
  • Osprey Systems, Inc.
    March 1999 - March 2001
    • Senior Consultant—Debix Systems, Inc.
      Debix Systems, Inc. closed operations in 2002.

      This project began as a B2C web site selling stored-value, pre-paid charge cards backed by the MasterCard Network on which I was the primary developer. I assisted in the technical architecture and design of the web site, database, and hardware infrastructure. The site developed into a B2B site, on which I was again the primary developer, and assisted in the technical architecture and design of the web site, database, and integration into the existing site. The site then progressed into a "platform", where I assisted in integrating the back-end processing portion of the site with the Beenz (Beenz was a UK based "online-cash" company) web site, and porting the entire site to a new Debix client, College Parents of America. College Parents of America has since changed providers for this feature.

      In addition to my development responsibilities for this client, I acted as a technical lead and mentor to the development team (12 developers, 3 graphics designers, and 3 business consultants). I also provided assistance to the project manager in scheduling/estimating times to completion, delegating development assignments, ensuring that development work was done to budget (hours), and acting as quality control. This site was developed using SiteServer Commerce Edition, ASP, VB DLLs, a clustered SQL Server database, and load balanced web servers. It included back-end integration with two banks to perform product fulfillment, and one mailing center for promotional pre-mailers. A custom management site was also developed as well as a call-center application.

    • Senior Consultant—Jeffers Pet

      This project was a B2C site for a Veterinary Supply company. The initial work done for this client consisted of developing a web site for the "small pet" market – cats, dogs, birds, and "exotic small pets". I was the only developer on this project, which consisted of one business consultant, one graphics designer, and me. I assisted in the technical architecture and design of the web site, database, and hardware infrastructure with another Senior Consultant. This site was developed using SiteServer Commerce Edition, ASP and SQL Server. A custom management site was also developed.

    • Senior Consultant—Lowes – Reliabilt Doors
      Lowes has since removed the online store capabilities of this site and has chosen to sell this product in the retail market only.

      I was one of three developers for this client and assisted in the technical architecture and design of the web site and database, including a complete database driven nine-step custom configurator. This site was developed in approximately one month as compared to a normal development lifecycle of 3-6 months. This site was a B2C site and was developed using SiteServer Commerce Edition, ASP, and SQL Server.

    • Technical Resource/Mentor

      I acted as a technical resource/mentor for the developer and business consultant working for these clients.

      Clients
      • Cracker Barrel Old Country Stores
      • Hendrick Motor Sports
      • Jack Henry & Associates – FormSmart
      • Parkdale Mills
  • Lockheed Martin Electronics & Missiles
    August 1993 - March 1999
    • Intranet Webmaster/Systems Administrator—Scientific Computing Operations Center
      January 1997 - March 1999

      I developed an Intranet site for the department utilizing an Apache web server running on an HPUX 9.x server. This site utilized UNIX shell script as the CGI language and included read-only access into an Oracle 7.3.3 database running on an HPUX 9.x server. In addition to these duties, I was a UNIX systems administrator, working with Sun, HP, and SGI systems. This included NFS support, NIS support across two NIS domains, user support, application support (installation, maintenance, and user support).

      I lead a process improvement group and participated in the configuration and control board as well as helped update the department’s policies and procedures. I automated software license tracking procedures and streamlined the software inventory process using Microsoft Access as both a back-end data source and front-end GUI application.

      I also developed and enhanced a series of shell scripts that automated workstation and server hardware health and configuration tracking that ran every morning across all of the UNIX workstations and servers (Sun, HP and SGI), consisting of approximately 1000 systems.

    • Staff Engineer—Comanche EOSS
      August 1993 - December 1996

      I was a developer for this project doing embedded process software development in C, Ada, and Texas Instruments DSP Assembler, writing the TI DSP self-test routines for part of the hardware diagnostics. I also began implementing a serial communication layer in Ada between the servo motor controls and the software user interface.

      In addition to these responsibilities, I assisted in the Comanche Software Library, which included data storage and update using an Oracle Forms application and updating Library policies and procedures. I also assisted in technical document preparation using FrameMaker, developed and enhanced a series of CASE utilities written in C for Teamwork and developed the preliminary Comanche Intranet site running the Apache server running on a SunOS system and utilizing PHP as the scripting language connected to a mySQL database.


INDEPENDENT SOFTWARE DEVELOPMENT EXPERIENCE

  • Medical Information
    A digital medical information card, similar to the one many people carry in their wallet.
    • Windows Phone
  • Flash Cards
    These are individual flash card apps which are the digital equivalent of paper flash cards to help young children (pre-school through Grade 3) learn sight words, recognize numbers (and learn to count), upper/lower-case letters, and basic shapes. These were written in C# and XAML and will run on Windows 8 and Windows RT and leveraged a reusable code base allowing new flash card applications to be easily created.
    • Sight Words
    • Numbers
    • Shapes
    • Alphabet
    • Colors

OPEN SOURCE

  • Bootstrap Flat
    Creator, Primary Contributor
    A simple flat theme for Bootstrap 3.
  • Cadru
    Creator, Primary Contributor
    c#
    A helpful utility framework containing new APIs and extensions to the core .NET Framework to help complete your developer toolbox. Cadru is designed to be portable first, which means that the majority of the library is available as a Portable Class Library (PCL).
  • MSBuildContrib
    Creator, Primary Contributor
    MSBuildContrib is a project for tasks and tools that aren't part of the main MSBuild release.
  • jQuery goTop
    Creator, Primary Contributor
    jQuery goTop is a <2KB scroll to top jQuery plugin.

SKILLS

C#

.NET

ASP.NET/MVC

HTML/CSS

Bootstrap

JavaScript/jQuery

SQL Server

Technical architecture

API components and class libraries

Management

Development life cycle

PUBLICATIONS

  • Sams Publishing
    • Sams Teach Yourself Visual C# 2010 in 24 Hours
    • Sams Teach Yourself C# 5 in 24 Hours
    • Sams Teach Yourself C# 6 in 24 Hours (working title, available July 2015)
    • Sams Teach Yourself Windows Phone 7 Application Development in 24 Hours
  • The Code Project
    • SafeHandle and Constrained Execution Regions
    • Using managed code to detect what .NET Framework versions and service packs are installed
    • Using managed code to detect if IIS is installed and ASP/ASP.NET is registered
    • Data Binding an Enum with Descriptions
    • Implementing IDisposable and the Dispose Pattern Properly
    • An easy to use URL file downloader class for .NET
    • CodeProject Forum Guidelines
  • InformIT
    • Understanding Classes and Objects the C# Way
    • Code Contracts in .NET 4
    • Choosing an Application Framework for Windows Phone 7 Application Development

SPEAKING ENGAGEMENTS

  • Asynchronous Programming .NET 4.5
    • Southwest Florida Code Camp (2012)
    • Tampa Code Camp (2012)
  • Code Style and Standards
    • Microsoft TechEd (2007 [BOF11], 2008 [BOF864])
    • Orlando Code Camp (2012)
    • Southwest Florida Code Camp (2012, 2010, 2009, 2008)
    • South Florida Code Camp (2009, 2008)
    • Jacksonville Code Camp (2008, 2007)
    • Tampa Code Camp (2012, 2007)
    • South Carolina Code Camp (2007)
  • Memory Management Fundamentals - Garbage Collection Deep Dive
    • Orlando Code Camp (2012, 2011, 2009, 2008)
    • Southwest Florida Code Camp (2012, 2009, 2008)
    • South Florida Code Camp (2009)
    • Jacksonville Code Camp (2008)
    • Tampa Code Camp (2012, 2010, 2009, 2008)
    • Sarasota Developers Group (2009)
    • Accusoft (2013)
  • Memory Management Fundamentals - IDisposable and the Dispose Pattern
    • Orlando Code Camp (2009, 2008)
    • Southwest Florida Code Camp (2012, 2009, 2008)
    • South Florida Code Camp (2009)
    • Jacksonville Code Camp (2008)
    • Tampa Code Camp (2014, 2012, 2010, 2009, 2008)
    • Sarasota Developers Group (2009)
    • Accusoft (2013)
  • Garbage Collection in .NET
    • South Florida Code Camp (2008)
    • Jacksonville Code Camp (2007)
    • South Carolina Code Camp (2007)
  • What's New in C# 4.0
    • Southwest Florida Code Camp (2010)
    • Tampa Code Camp (2010)
  • Understanding Lambda Expressions
    • Southwest Florida Code Camp (2009)
    • Tampa Code Camp (2009, 2008)

COMMUNITY INVOLVEMENT

  • Codestyle.co
    Creator
    An open source initiative to centralize code style and standards guidelines. The guidelines are maintained as an open GitHub repository to allow easy community involvement to maintain the standards.
  • WP Requests
    Creator
    A UserVoice community site that lets companies easily see just how much interest there is for seeing their app on Windows Phone.
  • WinStore Requests
    Creator
    A UserVoice community site that lets companies easily see just how much interest there is for seeing their app as a Windows Store app.
  • TampaDev
    Co-Founder
    TampaDev is a "meta" group designed to help the broad developer community have a single and centralized resource to find meetings and user group information.
  • Hour of Code
    Host
    Hosted an Hour of Code, a one-hour introduction to computer science designed to demystify code and show that anybody can learn the basics, with support and material and from Hour of Code and Code.org. .
    • December 2013
    • December 2015 (planned)

EDUCATION

  • University of Central Florida
    December 1997
    • Bachelor of Science—Computer Science
      • General programming/software engineering
      • Database theory/design
    • Bachelor of Arts—Interpersonal Communication
      • Organizational/Business communication
      • Small group theory and dynamics