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.
Started DevEvolved to provide high quality cutting-edge software using modern design principles, clean code and straightforward solutions. Responsible for all aspects of software development and client management.
Acted as a senior level developer and team lead on a loan portfolio analysis website and on porting an existing iOS app to a Windows universal app. Responsibilities included system technical design and architecture, application development, and technical mentoring/assistance to other team members.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
I acted as a technical resource/mentor for the developer and business consultant working for these clients.
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.
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.
API components and class libraries
Development life cycle