Joshua Scott Gough
Resident of Atlanta, GA
Mobile Phone: 770-714-2465
Email: jsgough _ gmail _ com
URL: http://www.ultravioletconsulting.com
Professional Objective
I enjoy working
with teams that use a strong iterative development methodology, using UML or related principles, .NET, and C#. Since 1999
I have worked hands on in the design, implementation, maintenance, and management of mission-critical information systems.
During this time I have gained strong experience in systems analysis, architecture, and development of n-tier
applications throughout all phases of the software development life cycle. When designing systems, I focus on layering,
extensibility, testability and automation, usability, and reliability.
In my spare time
I keep up with current industry trends and augment my skills by participating
in .NET user groups, contributing to open source projects, and blogging. I am
currently working toward MCAD and MCSD.NET Certification and have a growing
interest in design patterns and enterprise architecture. I enjoy working with other motivated
people with a passion for continued learning, excellence, and community activism.
Analysis, Design, Architecture, and Implementation Development Skills
Analysis:
Business
process analysis; Requirements gathering; Use case descriptions; Information
architecture; Conceptual modeling.
Logical
Design: Systems architecture; Class diagramming and design; Using
abstraction, interfaces, encapsulation, polymorphism, and inheritance; Data
modeling; Relational database design and normalization.
Physical
Implementation: Identifying and recommending usage/purchase of commercial
and open source software, toolkits, frameworks, APIs, and standards;
Implementing new front-end GUI, backend components, and modules as per software
requirements specifications; Implementing application instrumentation;
Interfacing new systems to legacy applications; Implementing new requirements
in existing code bases; Rapid prototyping; Documenting user interfaces, code
changes, and system APIs.
Testing
and Debugging: Performing code reviews; Identifying, documenting,
researching, and resolving defects; Unit testing via automation interfaces;
Integration testing; User acceptance testing.
Deployment
and Maintenance: Maintaining source code repositories; Implementing automated
build processes; Packaging, versioning, and deploying software upgrades;
Working with local sandbox development, testing, staging, production, and
failover hotsite deployment environments; Working with DMZs, firewalls, IIS
perimeter security ISAPI filter configurations; Creating diagnostic test
scripts to instantiate COM objects and automate tasks; Monitoring application
health and troubleshooting issues.
Business and Presentation Skills
Organizational
related: Working with scientists, analysts, and managers from
inter-organizational units; Working with external stakeholders and
organizations.
Peer
related: Authoring technical tutorials, guidelines, code samples, and
blog posts; Authoring technical implementation presentations; Presenting
presentations.
Security Clearances
- National Agency Check
Investigation (NACI)
Employment History
Senior Developer / Architect
Abel Solutions, Inc.
February 2006-Present
Abel Solutions, Inc. is a
consulting firm specializing in custom business application development with
Microsoft .NET technologies. It also specializes in the implementation of solutions using Microsoft
Sharepoint and other information worker technologies.
Projects
and Responsibilities:
- Sporting Goods Auction System Architectural Review Phase
Lead technical analyst for creating client deliverable consisting of technical architecture assessment of an existing $100 million sales
volume generating sporting goods auction application. Analyzed C++, COM, ASP 3.0, and SQL Server 2000 components and
recommended a hybrid horizontal and vertical migration strategy to ASP.NET 2.0 and C#. The horizontal portion called for implementing a new
front-end layer in ASP.NET while using RCW interop assemblies for short-term reusability and maximization of existing
investment. The vertical portion was applied to new functionality modules,
calling for these to be written in pure C# with no COM middle layer.
- Sporting Goods Auction System Application Module Requirements Definition Phase
Lead requirements analyst for creating client deliverable consisting of requirements documents detailing
all functional and non-function requirements, assumptions, boundaries, expectations, and project exclusions for new account and inventory management modules
to be designed and developed for the client's auction system.
- Sporting Goods Auction System Application Module Design Phase
Lead architect for creating client deliverable consisting of design documents detailing
all implementation goals and design specifications for implementing new account and inventory modules. Design plan included prototype
code for building on top of client's existing interface signatures and specified how to loosely couple all object dependencies to enable ease of
modification in future releases.
- Sporting Goods Auction System Application Migration Foundation and Module Development Phase
Lead developer for creating client deliverable consisting of C# interfaces, classes, ASP.NET 2.0 pages, custom web controls,
user controls, JavaScript libraries, and related configuration files for the foundational code needed to support a complete
horizontal migration and for new account and inventory management modules. Utilized Master Pages, C# generics, interfaces,
GridView, Wizard control, and developed client-side JavaScript based data-binding and templating mechanism for creating
just-in-time paramaterized popup menus in GridView rows. Created custom Membership provider to wrap client's existing user API. Used Visual Studio 2005 Testing Projects
to perform unit testing for new components. Directed one other developer during this project.
- Sporting Goods Auction System Application Horizontal Migration Development Phase
Currently the lead developer for creating client deliverable consisting of C# interfaces, classes, ASP.NET pages, custom web controls,
user controls, JavaScript libraries, and related configuration files for the complete front-end migration to ASP.NET 2.0 of the client's
auction application, comprised of more than 300 original ASP pages. Directing two other developers on this project, one
in office, the other at the client's site. Utilized ASP2ASPX third party migration tool to translate large portions of VBScript function/sub libraries into C# code.
- Sales and Incentives Management Application Module
Added new reporting module to existing ASP.NET 1.1 / C# application used by client for managing sales information and
creating bonuses and promotions based upon collected data. Utilized NUnit testing framework for testing new code.
Senior Systems Analyst
Anteon Corporation / Centers for Disease Control and
Prevention -- Epidemic Information Exchange Program
March 2002-February 2006
The Epidemic
Information Exchange Program is the Centers for Disease Control and
Prevention's web-based communications solution for public health professionals.
Through Epi-X, CDC officials, state and local health departments, poison
control centers, and other public health professionals can access and share
preliminary health surveillance information --- quickly and securely. Users can
also be actively notified of breaking health events as they occur. Key features
of Epi-X include unparalleled scientific and editorial support, controlled user
access, digital credentials and authentication, rapid outbreak reporting,
peer-to-peer consultation, and CDC-assisted coordination of investigations.
Projects
and Responsibilities:
- Enterprise
Directory Web Services Integration: Analyzed and defined technical requirements for
integration of the CDC mission-critical Epi-X system with the emergent CDC
enterprise-wide J2EE
based user directory. Worked with class diagrams, WSE Beta 3, and Web Services proxy objects
in C#
using the Visual
Studio .NET 2005 IDE.
- User Training Course Scheduling Portal
Module: Analyzed,
designed, and implemented modifications for integration of commercial
source-code-available DNN
portal module. Completed module allows the Epi-X Training
Manager to schedule sessions and record metrics about users trained
on-line without using cumbersome spreadsheets. Modified original module
source code to upgrade it to DNN Framework v. 3.1 compatibility to
address breaking-changes between DNN framework versions. Used Visio for
class/entity diagrams, CodeSmith
code generation templates to create T-SQL CRUD, DAL, BLL, and Controller class
code. Coded VB.NET
based ASP.NET UI
code in Visual
Studio .NET 2003. Created SQL Server 2000 stored procedures and user-defined-functions
using Visual Studio
.NET 2003 database project template. Used NDoc and NAnt for API
documentation and automated builds.
- Outbreak Report Import/Export
Tools: Created
tools for exporting, transforming, and importing outbreak reports from production
SQL Server 2000 DB
into mobile demonstration DBs. Used XML, C# and Visual Studio.NET 2005.
Created SqlMirror
class that builds upon the SqlBulkCopy ADO.NET 2.0 class
internally. Used Doxygen
tool to generate API documentation for classes.
- Security Training Course
Software: Designed
and implemented interactive security training course software to ensure
that Epi-X complied with federal regulations. Implemented system module
using Visual
Studio.NET 2003, SQL Server 2000, PowerPoint, Macromedia RoboDemo 5.0,
prototype-based JavaScript, XML and XSLT (with nxslt and EXSLT
extensions), and Adobe Photoshop.
- Business Intelligence Reporting:
Created SQL
Reporting Services reports for displaying both summary and drill-through
reports about Epi-X system usage activity. Implemented reports using SQL Reporting Services for
Microsoft SQL Server 2000. Created flexible dynamic T-SQL stored procedures and
table-valued user-defined-functions for aggregating
disparate queries into one result set for summarized viewing.
- Mobile Device Access: Worked with CDC
secure network stewards, information security stewards, and other
stakeholders to implement plans for offering Blackberry RIM device
support for HTTPS-protected
CDC resources. Researched and determined how to configure devices for
securely communicating in end-to-end mode. Created prototype application
for adaptable UI presentation layer based on HTTP header inspection.
- Deployment Process Automation: Researched, designed and
implemented an automated process for source code building, packaging,
versioning and deployment, and providing code changes accountability
summaries. Used Red-Gate
SQL Tools, Araxis Merge Professional 6.5, and InstallAnywhere.NET
to create MSI
deployment packages. Used XSLT transformations to create change logs
from Araxis reports. Replacing the previous manual process reduced
redundancy of efforts and possibility for human error, and increased time
available for development and testing.
- Terrorist Attack Emergency
Preparedness Exercise: Participated in US Federal Government Emergency
Preparedness Exercise in September 2003 at Fort McClellan with the Epi-X
notification officer. Monitored Epi-X system availability in the control
room during exercise execution, communicated with Atlanta base team, and
assisted on-site users during a simulated outbreak scenario of a terrorist
attack of aerosolized plague.
- Additional Projects,
Responsibilities, and Experience: Created dynamic role-based emergency notification
improvements using SQL
Server 2000 tables, relationships, stored procedures, and
user-defined-functions; Created data-driven RoboHelp deployment,
replacing legacy context-sensitive static help files with RoobHelp X5. Ajax JavaScript techniques for
retrieving SQL Server 2000 stored procedure derived data into
the help files; Performed versioning, packaging, and deploying upgrades
duties for code built from Visual Source Safe. Maintained development, integration,
production, hotsite, and mobile demonstration deployment environments;
Additionally, I routinely work with VB6 COM Objects, SQL Query Analyzer, SQL Profiler, digital
client certificates and IIS in HTTPS mode, GIS queries, HTML/XHTML, CSS,
JavaScript, ASP/VBScript, Excel, Adobe PhotoShop, GIMP, and Windows
Scripting Host.
Analyst Programmer
Georgia State University College of Arts & Sciences Dean's Office
July 1998-February 2002
Projects
and Responsibilities:
- Information Architecture Design
and XML Based Publishing Portal: Lead analyst and developer in the analysis,
design and implementation of new versions of the College of Arts &
Sciences web site, http://www.cas.gsu.edu,
and its supporting information systems. Implemented system using ASP.NET, C#, Custom Server
Controls, User Controls, XML and XSLT, MS SQL Server, and Web Services.
Finished system used by other offices to upload XML story content
to promote college and departmental news highlights.
- Report Collection and Querying
System: Designed,
implemented, and supported web-based system for collecting, verifying,
sorting, viewing, and merging faculty annual reports as required by state
Board of Regents. Used CPAN
and modular object-oriented PERL, dbi:Oracle, Oracle 8 for Linux, and MS
Word VBA automation API. Finished system replaced previous
manual process and allowed department directors to query and sort entries
of individual faculty members.
- Additional Responsibilities and
Experience: Provided
design and programming assistance, leadership, and guidance to
departmental designers and programmers; Set up and maintained college web
servers running Linux
and Windows 2000
Server; Mentored computer science graduate students on
such technologies as JAVA, the .NET Framework, ASP.NET, C#,
VB.NET, JavaScript, PERL, XSLT, CGI, SQL, etc; Authored
technical tutorial articles to support department level designers and
programmers.
Miscellany
I have done
independent consulting with the National Academy of Sports Medicine, Georgia
State University's Andrew Young School of Policy Studies, and the TRENDS
Marketing Group. Work I have done for these groups includes, respectively,
DotNetNuke 3.1 systems integration design plan review, creating PERL 5 CGI
programs for XML and SGML processing, and creating PERL 5 CGI web forms and
graphic design.
Experience with Programming Languages and Related Technologies
Markup:
HTML;
XHTML; CSS; XML; XSLT; XPath; XUL.
Scripting:
JavaScript;
JScript; PERL; VBScript; DHTML.
Web
Development: ASP.NET; ASP; CGI.
Portal
Frameworks: DotNetNuke Module Architecture and Custom Development;
Abstract Factory Provider Model.
Programming:
C#;
C; C++; VB.NET; OO PERL 5; IDL; OOA/OOD/OOP.
APIs,
Toolkits, and Technologies: MS .NET Framework 1.0 - 2.0; MFC;
Gtk+; Sockets; Winsock; ADO.NET; ADO; PERL DBI; Win32 API; POSIX; Mozilla API;
Mozilla JavaScript C Engine; SWIG; Regular Expressions.
Component
Architectures: .NET; MS COM; Mozilla XPCOM.
Modeling:
UML;
ERD; Object Role Modeling (ORM); BPML.
Database:
SQL;
T-SQL; PowerScript; Oracle PL/SQL.
End-user:
MS
Visual Basic 5.0-6.0; MS VBA; MS Word Object Model.
Experience with Software Packages
Operating
Systems: MS Windows 3.1 - 2003; Windows Advanced Server 2000; Linux.
Desktop
Environments: GNOME; KDE.
Web
Servers: IIS 5.0 - 6.0; Apache 1.3.x.
Portal
Servers: DotNetNuke 2.1.2 - 3.1.
Web
Conferencing: Live Meeting; Akiva WebBoard.
Help
Authoring and User Training: Macromedia RoboHelp X5; Macromedia
Captivate; TechSmith Camtasia.
Editing:
MS
Office XP; OpenOffice.org; MS FrontPage; HomeSite; TextPad; HTML-Kit; UltraEdit
32; GNU Emacs; XEmacs.
Database
Management: MS SQL Server 2000; Oracle 8.0.5; MS Access; Sybase SQL
Anywhere; MySQL; PostgreSQL; Red-Gate SQL Tools (SQL Compare and SQL Data
Compare).
Application
Development: MS Visual Studio.NET 2003 - 2005; MS ASP.NET Web Matrix; MS
Visual Basic 6; MS Visual C++ 6; PowerBuilder; ActiveState Visual XSLT; IDE 4
Laszlo (Eclipse).
CASE
Tools: Popkin System Architect; MS Visio Enterprise Architect
Edition; Rational Rose.
Code
Generation and ORM Tools: CodeSmith 2.6; MyGeneration Software;
IronSpeed Designer.
Graphics
and Animation: Adobe Photoshop; Adobe ImageReady; GIMP 2.2; JASC Paint Shop
Pro; Macromedia Flash 5.0; ImageMagick.
Project
Management: MS Project.
Miscellaneous:
Araxis
Merge Pro 6.5; InstallAnywhere.NET; Windows Scripting Host; GNU Bash Shell; VNC;
VMware; Microsoft Virtual PC; Timbuktu Pro; Dialogic Communicator; TechSmith
SnagIt; SmartFTP; FireFox Browser w/Extensions.
Education
- BBA in Computer Information
Systems (Summa Cum Laude), December 2000
Georgia State
University J. Mack Robinson College of Business
Major
Coursework: Discrete Mathematics, Decision Sciences I, Decision Sciences II,
Intro to Computer Information Systems, Intro to End User Programming in VB, C++
Programming, C++ Object Oriented Programming, C++ Windows API and MFC Development,
Systems Analysis, Systems Design, Relational Database Management Systems,
Networking Systems, Business Systems Development.
- During school I volunteered with the Mozilla
organization to help fix bugs and build nightlies. I contributed JS and
XUL code to the ChatZilla Mozilla extension, contributed C++ code to
integrate SWIG with JS, and contributed POSIX regular expression C code
to the open source X-Chat IRC client. I used CVS, LXR, and BugZilla
during this time.
- Microsoft MCP - ASP.NET Web Applications (70-315)
- Certificate of Excellence in
C/C++ Programming (with Distinction). Awarded for completing all three C/C++
programming courses with an A grade.
Georgia State University J. Mack Robinson College of Business
Honors and Recognition
- Awards
Awarded Faculty Scholarship Plaque
for sustaining a 4.0 GPA through at least 36 consecutive course hours;
Awarded Dean's
Scholarship Key three times.
- Honors Societies
Member of Beta Gamma Sigma Honor Society,
awarded to seniors in the top 10% of their class; Member of Golden Key National Honor Society,
awarded to recognize excellent performance in academics.
Training Courses
- ASP.NET Programming with C# and
VB.NET
5-day
instructor-lead course at Extreme Logic
- Advanced ASP.NET Programming
with C# and VB.NET
3-day
instructor-lead course at HP
- .NET XML Web Services Programming
with C# and VB.NET
3-day
instructor-lead course at HP
Community Involvement
Professional:
Member
of Association for Computing Machinery (ACM); Helped organize the Atlanta DotNetNuke Users Group Meetup in 2006.
Volunteering:
Participated
in the Big Brothers and Big Sisters of Metro Atlanta organization as a
"Big Brother" mentor since 2003; Active participant in Hands On Atlanta events.
References
Provided
upon request