I took some time to list some of the technologies I have been using over the past few years. This should give you some idea of my exposure to them and the ways in which they were used.
TRADITIONAL SOFTWARE DEVELOPMENT
Microsoft .Net Windows Development
I. "Smart Client"
- Developed client-side applications that consume web services from a scalable centralized application server.
- Designed and Developed traditional-style Multiple-Document interface application utilizing the full power of C# and forms inheritance.
- Deployed Windows .Net Applications using Microsoft's Updater Application Block
II. Custom Control Design and Development
- Built reusable controls to encapsulate complex field interactions needed on multiple screens.
- Built common controls to enhance UI experience, such as toolbars and custom lookup fields.
Microsoft .Net Mobile Development
- Developed Pocket-PC applications that directly communicated with our web offerings. This required some re-learning of visual control placement and design.
- Mobile applications ranged from signature capture utilities to custom ordering platforms with bar coding integration.
- Stored mobile application data locally on the Pocket-PC with Microsoft SQL Server Mobile Edition, with real-time web-based synchronization for a true smart-client mobile application.
Microsoft Visual Basic
I. Component-based Development
- Developed component libraries of all types, including data and metadata access libraries, business logic libraries, etc.
- Created components to provide common services such as UI handling routines (merging business objects with UI components, for example)
- Developed interface provider DLL's from which other objects were based and implemented.
II. ActiveX Control Design and Development
- Built an OCX that loaded control positions and data mappings from metadata, to be placed on a web page for dynamic application presentation.
- Developed controls that wrap all the functionality of a particular sub-object, like address lists and invoice subitems, to be placed on larger UI's for ease of interface building.
- Created a specialized combo to hold any type of data (including objects) as item data, and specialized textboxes of all types, including one that had a lookup / drilldown button as part of the control.
III. User Interface Development
- Developed controls that wrap Add/Update/Delete/Print functionality for drop-in standardization of screens.
- Developed generic UI that can host any type of presentation screen for various types of data dynamically.
- Accented my dynamic UI builder application with Win32 API calls and metadata storage of UI to be re-created later.
INTERNET SOFTWARE DEVELOPMENT
Microsoft .NET
I. Programming
- Rebuilt my own proven VB-based application architecture from scratch in .NET, making use of interfaces, inheritance and polymorphism.
- Proficient in both C# and VB.NET
II. Architecture
- Implemented a complete production incarnation of Microsoft's recommended DNA architecture, including Business Facade, Business Services and Data Access tiers.
- Wrote class hierarchies to support data aware business objects, where sub-classes would only need to specify data-source specific implementation details.
- Built common data access services using C#, XML and ADO.NET.
Microsoft Active Server Pages
I. Database-centric Web Sites
- Built an online collaborative communication site for companies to track supplier relationships and data exchange.
- Implemented full ASP-based shopping cart functionality for client website, using ADO and Access.
- Developed ASP-based online discussion board, complete with administrative functions, using ADO and Access.
- Created ASP-based online reports for client websites, using ADO and SQL Server.
II. Interactive Web Sites
- Built an online collaborative communication site for companies to track supplier relationships and data exchange.
- Created an entire web-based reporting solution with hundreds of extensible reports, using Crystal Reports to render interactively online.
- Implemented customized login portal for clients to enter my corporate website and reach their secure "home" page.
- Developed interactive ASP-based search engine for nutritional database.
Hypertext Markup Language
- Created both interactive and non-interactive portions of complete web-based applications.
- Implemented the UI design and implementation of screens, forms, scripted events and flow control logic for dozens of screens.
- Wrote and integrated collectively thousands of lines of cross-browser compatible client-side javascript.
- Created several corporate web presence sites for small clients.
- Designed and created HTML presentations embedded in applications.
eXtensible Markup Language
I. Data Architecture
- Used XML as foundational data collection mechanism for multiple different software architectures. Business object attributes were stored in XML format immediately after retrieving data from any data source, losing all dependency on those data sources for all common code. This had the additional benefit of readying my applications for use of XML from external sources, facilitating integration with other applications.
- Bundled data requests and validation messages in XML for extensibility.
II. Metadata
- Stored hierarchy-based object definitions in XML for application to parse as instructions on relating objects to one another.
- Stored database action definitions and presentation definitions of metadata-based system in XML for objects of that system
- Used XML as flexible hierarchical data storage of complex structures of business object data.
III. Data Storage
- Transported business object data across component tiers with XML after wrapping complex data structures in XML format
- Enabled dynamic internationalization of applications by storing string resources locally in XML.
DATABASE
Microsoft SQL Server
I. Code
- Wrote and debugged complex and nested stored procedures for all types of varying needs.
- Frequently worked on complex hierarchical data, encapsulating much of this complexity in User-Defined Functions (see Projects).
- Created views of all kinds to support reporting requirements, data gathering requirements, data integrity checks, etc.
- Developed cursors to satisfy occasional "procedural" needs in stored procedures.
- Implemented triggers to enforce additional complex data integrity rules.
- Fully utilized XML features of SQL Server 2000, including passing XML SQL Queries to the database in the form of streams, parsing XML data within stored procedures and returning XML from stored procedures in necessary formats.
- Used "metadata" capabilities of SQL Server internal data structures to assist in analyzing and evolving databases to satisfy new requirements.
- Wrote DTS scripts and invoked them from VB applications for automation of complex tasks.
- Accessed and manipulated COM objects from within SQL Server Stored Procedures.
II. Design
- Designed relational database systems upwards of 200 tables.
- Analyzed and tuned database performance with precise query tuning, indexing and in-depth analysis of back-end process efficiencies.
- Maintained ERD diagrams of SQL Server database, with round-trip development of both using ER-Win 3.0.
III. Maintenance
- Wrote a full range of SQL database maintenance scripts by hand. Scripting includes making backups of databases and transaction logs, rebuilding indexes, updating statistics and synchronization of data among servers.
- Frequent backup and restore of databases for manual or automated distribution.
- Heavy involvement of scripting databases for source code control and code-release updates of our database systems.
Microsoft Access
I. Code
- Used Microsoft Access as the target database for many Visual Basic applications, using DAO and ADO.
- Designed and implemented many Access-based GUI applications, using forms, OCX's and reports. Coding was done in VBA, accessing data through DAO code.
- Wrote complex and nested queries (views) to support all types of data gathering and reporting needs.
- Developed an ISQL-like application for Access databases, for those developers who prefer the ISQL interface over Access.
II. Design
- Designed relational database systems upwards of 60 tables.
- Created and maintained diagrams of Access databases.
Microsoft ActiveX Data Objects (ADO & ADO.NET)
I. Code
- Mastered all traditional forms of data access in ADO.NET against SQL Server and Access.
- Designed and implemented my own lightweight "typed data sets" (see Projects), including a data set builder. This was to overcome issues found in Microsoft's version of Strongly Typed DataSets.
- Manipulated and transformed data in ADO.NET using built-in data relationship management features.
- Used ADO.NET to automatically generate XML representations of data for a pure XML-based internal component architecture.
- Expertly accessed all major RDBMS sources and file formats with ADO object model.
- Leveraged ADO's OpenSchema() capability to dynamically build business objects based on their supporting database counterparts in a metadata-based system.
- Made use of cloning and file-persisting capabilities of ADO data for preservation of state and caching schemes to boost performance of applications.
II. Web
- Used ADO as data access mechanism in dozens of ASP-based interactive web sites.
- Build dozens of useful common data access routines to shorten ADO database development time in ASP-based applications.
Microsoft Remote Data Objects (RDO)
- Accessed SQL Server 6.5, Access 97, ODBC Datasources and many file formats with RDO object model.
- Leveraged RDO's Asynchronous database connections to allow flexible user interfaces for lengthy database actions.
Microsoft Data Access Objects (DAO)
I. Data Access
- Accessed SQL Server 6.5, Access 97, ODBC Datasources and many file formats with DAO object model.
- Wrote many custom Access applications using DAO as the data access mechanism under VBA.
II. Advanced
- Leveraged DAO's schema collections to build schema reports of database objects for database applications
DESIGN / PRODUCTIVITY / PRESENTATION
Microsoft Visio
I. Presentation
- Created architecture design diagrams illustrating the complete structure and layout of multi-tier architectures and system designs.
- Designed application diagrams using software development template objects to communicate component usage.
- Created complex flowcharts for design of business logic in business systems.
II. Modeling
- Leveraged UML capabilities of Visio 2000, generating VB, Java and C# classes from diagrams.
Microsoft Project
- Defined and estimated project component parts.
- Tracked resources against projects, indicating completion percentages and reporting against baseline data.
Seagate Crystal Reports
I. Code
- Made extensive use of the Crystal Reports Object Model to manipulate reports before printing, allowing dynamic setting of data-gathering SQL, report parameters, etc.
- Designed and created specialty host windows for Crystal Report Viewer.
- Used Crystal Data Objects interfaces to create custom data providers for reports.
- Created stored procedures and views specifically for the retrieval of report data.
II. Reports
- Designed and created dozens reports based on all types of SQL Server data.
- Made use of hand-written SQL, views, stored procedures, record selection criteria, data source aliasing, parameters and multi-layered grouping.
Adobe Photoshop
I. Artistic
- Designed and created many multi-layer artistic images utilizing transparencies, filters, masking and effects.
- Made extensive use of various artistic filters, especially in the use of pattern creation.
- All my Photoshop work is approached with image component reusability in mind.
II. Web Graphics
- Designed prototype layout of a dozen web sited using Photoshop.
- Made all web site graphics in Photoshop (text, rollovers, photographic images), exporting end-result files as necessary in the appropriate formats for inclusion in HTML pages. Of course, palette considerations were observed.
- Implemented graphics from a variety of sources, including photo CD's, digital cameras, scanning and hand-created art.
Cakewalk Professional
Although I do not aspire to become a professional musician, it has always been a passion of mine to create and arrange music. Cakewalk satisfies both the musician and programmer in me, allowing me to create complex pieces that I could otherwise not accomplish. -RMG
I. Music
- Composed and arranged hundreds of original songs in multi-part format. Here is a small sample
- Arranged dozens of non-original songs in multi-part format.
- Made extensive use of Cakewalk's powerful score editing features.
II. Advanced
- Hard-disk recording and arrangement of original music using sample-based tracks, with Reaper, Audacity, n-Track, et al. Here is a small sample.
- Arranged System-Exclusive transmissions for additional control of samplers within my arrangements.