• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Résumé of Larry A. Leonard

Résumé of Larry A. Leonard






Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Résumé of Larry A. Leonard Résumé of Larry A. Leonard Document Transcript

    • Résumé of Larry A. Leonard Larry@LarryLeonard.net 1331 Blackland Trail Lawrenceville, GA 30043 404.432.5931 SUMMARY Detail-oriented senior database developer with five years experience with SQL Server, focusing on logical and physical design, query optimization, and performance tuning. Expert at creating/maintaining idempotent upgrade scripts for versioned schemas. Deep expertise with Microsoft's Visual Studio 2008 Database Edition (code-named "DataDude"). Other skills include: 15 years' experience developing high-quality Windows front- and back-end software for thick-client applications, mobile devices, and the web; creation of publication-quality documentation using Microsoft Office; and agile (Scrum) development. EXPERIENCE Senior Database Developer, Varec, Inc (an SAIC company), Norcross, GA (permanent: 12/2007 - 11/2009) Skills and Tools Description Visual Studio 2008 TEAM Transitioned database installation from hand-written upgrade scripts to using the Team Foundation Database Edition Foundation Database Edition (GDR 2). Created a "database model" consisting of the GDR 2, SQL Server schema's database objects, which allowed us to install/upgrade any database, regardless of 2000/2005, SQL Profiler, its current schema, to conform to the model with 100% fidelity. This eliminated the need to Enterprise Manager, write idempotent upgrade scripts by hand, saving us approximately 40 hours/week. Also Management Studio, Query used GDR 2 to create static analysis rules, unit tests, sample data generation plans, schema Analyzer comparisons, and data comparisons. Overhauled schemas to conform to best practices for normalization, referential integrity, and performance. Revamped all indexing, using clustered, non-clustered, composite, and “included” / covering indexes, improving performance while reducing database size. Modified existing upgrade scripts to be idempotent. Reviewed all design and implementation of 100+ table database for team of application developers. Performed advanced query tuning using: execution plan analysis; examining read and write counts; creating and updating statistics; re-writing to use sargable expressions; and adding/dropping appropriate indexes (clustered, non-clustered, composite, included). C#/ASP.NET, ADO.NET, IIS, Designed, created, and maintained C# code-behind pages to display web forms, which called AJAX, AJAX Control Toolkit our business logic assemblies. Used AJAX Controls Toolkit to improve client-side responsiveness and usability. C#/.NET Created and maintained assemblies that implemented business logic via a home-grown metadata layer through ADO.NET to SQL Server. Involved a half-dozen large assemblies and a COM+ application. Experience in debugging .NET issues such as wrong assembly versions in the GAC, or assemblies with the same strong name and version, but different GVID. Maintained CLR assemblies for SQL Server 2005 that perform complex calculations on large datasets. These assemblies referenced what Microsoft calls "unblessed system assemblies", which are not supported for use in SQL Server CLRs, and so required workarounds. CSS, XML/XSLT/XPATH Created XSLT files to transform XML data into HTML documents for display and printing using a CSS style sheet. Created a "debug mode" framework in the style sheet that changed the colors on the styles, and labeled each element with its y-axis value, to greatly speed development.
    • RÉSUMÉ OF LARRY A. LEONARD Senior Software Engineer, Cadillac Jack, Inc. , Duluth, GA (permanent: 1/2007 - 11/2007) Skills and Tools Description SQL Server 2000, Query Responsible for maintaining, upgrading, and tuning customer databases up to 200 GB in size. Analyzer, SQL Profiler, Created maintenance plans, backup strategies, and remote monitoring system. Resolved Enterprise Manager, SQL deadlock issues and performance problems. Standardized and normalized schemas, added Server 2005 Management indexes, constraints, and referential integrity. Wrote T-SQL scripts for both initial installation Studio Express and upgrades, and mentored team members. Performance tuned using PerfMon, Query Analyzer, and SQL Profiler. Windows Mobile 5, Pocket PC Using ASP.NET, created a POS system connecting Pocket PCs running Windows Mobile 5 SDK, Visual Studio .NET over a wireless network to a Windows 2003 server. When the Windows Mobile client 2005, C#/.NET, ASP.NET, application requested data from the server, a web service responded by querying a SQL JavaScript, HTML, AJAX, Web Server 2000 database. Services Server side: Wrote the web service's ASMX file in C#, whose methods were exposed by its WSDL file. Database access was done via ADO. Client side: Implemented the mobile application as ASPX pages with C# code-behind pages, a master page, and CSS. Users' input sent requests to the web service, then displayed the responses. Since "Atlas" (AJAX Controls) was not supported on Windows Mobile 5, I created the SOAP document by hand, and did a POST via an XMLHTTP ActiveX object. C#/.NET, WinForms, Wrote two WinForms applications in C# that supported downloading of only the new or Serialization, Multithreading, modified items from a collection of 50,000 resource files. Interop, MD5, AES, SHA-256, Visual Studio .NET 2005, Server side: The server application generated an SHA-256 hash signature for each file; the XML, XSLT filenames and signatures were then stored in a single XML document as name/value pairs. Client side: The client application checked for new/updated resource files on an ad hoc basis. First, the XML document on the server was downloaded and stored locally. Next, for each local resource file, the client generated a hash signature, and did a lookup for it in the XML document. If the hash signatures differed, the client downloaded the new/updated resource file from the server. Senior Software Engineer, Ipswitch, Inc., Alpharetta, GA (contract-to-permanent: 7/2004 - 11/2006) Skills and Tools Description SQL Server 2000, MSDE, Senior Developer for WhatsUp Pro 2005, 2006, and 2007, a network monitoring tool, using Query Analyzer, SQL Profiler, the "Scrum" agile development method. Designed and maintained database schema, wrote osql, Enterprise Manager, T-SQL scripts for both initial installation and upgrades, and mentored team members. SQL Compare (RedGate) Performance tuned using PerfMon, Query Analyzer, and SQL Profiler to optimize queries, indexes, constraints, triggers, stored procedures, etc. ASP, JavaScript, HTML, DOM, Created and maintained ASP pages for web interface, which included charts, reports, and XML user interface to SQL Server database using ADO. C++, MFC, Visual Studio Implemented thick-client GUI user interface to SQL Server database using ADO. Wrapped .NET 2002/2003, COM, XML classes in COM objects for web interface access. Consultant, Kimberly-Clark Corp., Roswell, GA (contract: 10/2002 to 7/2004) (letter of reference) Skills and Tools Description C++, MFC, Visual Studio Enhanced in-house sales tracking application. Tuned dozens of SQL queries, improving their .NET 2002/2003, Oracle 9i, performance by 10 to 30 times. Used highly efficient OO4O (OLE Objects for Oracle) for Microsoft CryptoAPI, COM database access. Simplified and improved user interface. Wrote application to test hints. PAGE 2 OF 7
    • RÉSUMÉ OF LARRY A. LEONARD Consultant, State of Georgia Department of Revenue, Atlanta, GA (contract: 4/2001 to 10/2002) Skills and Tools Description MSVC6, Microsoft CryptoAPI, Designed and implemented password management class using the Microsoft CryptoAPI to COM, C++/MFC, ADO, OLE store and retrieve security information for access to secure Oracle databases. This class DB, Oracle called COM servers for various services, and allowed "fall-back" to encrypted flatfiles. Refactored several large C++ / MFC programs which interfaced to Oracle databases and optical storage jukeboxes (FileNet) for image creation, retrieval, and display. This improved the UI and increased efficiency. MSVC6, MFC, ADO, XML, Created application to convert tax returns from XML format stored in database tables to TIF DOM, SAX2, DOM, UML, ASP, images for storage on optical platters. Designed and created web pages to search, retrieve, HTML, JavaScript, OLE DB and display TIF files stored on optical storage jukeboxes (FileNet). Consultant, McKessonHBOC, Inc., Alpharetta, GA (contract: 2/2001 - 4/2001) (letter of reference) Skills and Tools Description Java, JBuilder 4, UML, Designed and developed Java application to test transmission of XML-enabled objects over Rational Rose, TCP/IP, JFC / TCP/IP. Used UML and Rational Rose for design, JUnit for unit testing, Javadoc for Swing, XML, JUnit, Javadoc documentation, and Swing for the user interface. This application allowed the user to arrange custom objects in a hierarchy, which expressed themselves as XML, and were then transmitted to a specified TCP/IP address and port. Consultant, Spire, Inc., Norcross, GA (contract: 11/2000 - 12/2000) (letter of reference) Skills and Tools Description COM, ATL, WTL, XML, Developed COM server to capture form data entered by the user, persist it to disk, and then Microsoft Crypto API, MSVC6 automatically populate the form on next visit. Used the Microsoft "web browser control" to parse the HTML of visited websites, and MSXML's DOM implementation to create and manage the encrypted XML files. Consultant, SYNAVANT, Atlanta, GA (contract-to-permanent: 11/1996 – 10/2000) (letter of reference) (formerly Sales Technologies; formerly IMS Health / Strategic Technologies) Skills and Tools Description MFC, SQL, ODBC, Oracle, Developed a full life-cycle data-scrubbing suite of applications which made data throughput MSVC5 20 times faster. Used MSVC 5.0 and MFC, targeting Windows NT 4. These applications used direct ODBC calls, SQL statements, and a proprietary meta-data layer to interface to Oracle 7/8 databases. The suite consisted of over 60,000 lines of C++ code. Responsible for complete design, documentation, development, installation, and support. COM, ATL, Windows CE, Maintained sales force automation application targeting WinCE on NEC770's and NEC780's, MSVC6 using ATL COM on MSVC 6. MFC, Oracle, Watcom, Rewrote 16-bit C++ / MFC applications into multi-threaded 32-bit applications for database- MSVC5 synchronization system; used Oracle and Watcom databases, MSVC 5.0, targeting Windows 95 on remote laptops and Windows NT4 on servers. PAGE 3 OF 7
    • RÉSUMÉ OF LARRY A. LEONARD Consultant, Barfield Cauthen & Associates, Norcross, GA (contract: 12/1995 – 11/1996) (letter of reference) Skills and Tools Description OLE, C++/MFC, OCX, Developed OLE automation servers for Windows 95-based sales force automation application Sybase, MSVC4.2 to display marketing data from Sybase database. The automation servers also used third- party OCXs for charting and graphing. Consultant, The Coca-Cola Company, Atlanta, GA (contract: 10/1993 – 12/1995) Skills and Tools Description Win16 SDK, C, ZyIndex Developed Windows program to manage Olympic collectible-pin sales using ZyIndex text- retrieval system, in C / SDK using MSVC 1.52. The program managed images (BMP files), purchase orders, and inventory for thousands of collectors world-wide. MFC, ODBC, MSVC1.52 Created C++ database and recordset wrapper classes around the ODBC API for use in multi- platform applications, using MFC and MSVC 1.52. These classes allowed the client developer to develop platform- and database-independent applications. Win16 SDK, C, GDI Created Windows consumer-presence screensaver for free public distribution (SkiBear). This program was mentioned in CompuServe Magazine’s "Downloadable Notables" column, was a "Top 25" download on America-OnLine, and still runs today on Windows Vista. COIN Dealership Systems / Reynolds+Reynolds, Duluth, GA (permanent: 10/1983 – 10/1993) Skills and Tools Description C Wrote database engine in C (40,000+ lines) for Prime minicomputer, which involved creating a C API, a DML (data manipulation language), and a data dictionary, all from scratch. The engine interfaced with simple ISAM files to create a multi-keyed, relational database system, which supported advanced features such as bitmap indexes and Soundex searching. DATABASE SKILLS Deep experience as a SQL Server 2000/2005/2008 senior developer / junior DBA in commercial software development environments and for in-house applications. Experienced maintaining databases as large as one terabyte, with hundreds of stored procedures and tables. Development Expertise in Transact-SQL (DDL and DML), including creating and debugging complex stored procedures, triggers (including DDL and database triggers), user-defined functions, views, and upgrade scripts. Proficient at creating/modifying all database objects (tables, views, etc.). Maintain personal "toolbox" of T-SQL scripts for common tasks, and templates to automate and standardize DDL code for most database objects in an idempotent, error-checked, and well-commented format. Design Skilled at normalization in 1st, 2nd , 3rd, Boyce-Codd, and 4th normal forms. Familiar with theory of 5th, 6th (temporal), and Domain/Key normal forms. Can select correct data types and appropriate constraints (check, default, unique, and foreign key). Advocate use of referential integrity and cascading updates, and, less often, deletes. Expert in index design (clustered, non-clustered, composite, included/"covering", and filtered). Knowledgeable about fill factors, padding, extents, page splits, internal fragmentation, external/logical fragmentation, extent fragmentation, excessive forwarding pointers, selectivity, statistics, partitioning, etc.. Performed data modeling using Microsoft Visio for Enterprise Architects 2005 and UML notation. Experienced with both SQL Server and Oracle data-mapping systems, such as ADO.NET's DataReader/DataSet, MDAC's OLE DB, MFC's CRecordset / CDatabase, and Oracle Objects for OLE. Also worked with several "home-grown" metadata layers. Have used XSLT for data-mapping from database-backed XML documents to HTML files, and done manual mapping from (legacy) database to database. PAGE 4 OF 7
    • RÉSUMÉ OF LARRY A. LEONARD Practiced at informal database refactoring, and familiar with formal database refactoring as described by Ambler and Sadalage. Advocate of using "extended properties" for documentation. Database Edition Expert at Microsoft's new Visual Studio Team System 2008 Database Edition (GDR 2), aka the "DataDude", which, for the first time, abstracts database schemas into separate "database objects" with "full fidelity". This allows the creation of database projects that are equal peers to application projects. "Full fidelity" provides correct and complete dependency tracking and object renaming. The output of the database project can be freely installed on any computer, and, using a difference engine, automates and formalizes the ad hoc comparison of the schemas and the generation of an upgrade script specifically for the target database: this results, with some custom data-cleansing SQL code, in database installations and upgrades that virtually cannot fail. This process eliminates the need for upgrade scripts. The Database Edition also supports a framework for automated unit testing (e.g., does stored procedure "x" still work, and complete in less than "n" seconds?), customizable static code analysis (e.g., "= NULL" is not allowed), and the generation of meaningful test data. Query Tuning Can read and interpret execution plans, Profiler traces, dynamic management views, correcting issues like non-sargable expressions, missing indexes causing table scans, use of cursors, etc. Database Performance Skilled at full database performance analysis and tuning, including:  Use of Profiler to check for table scans, most expensive (in total) queries, use of parameters.  Maintain set of PerfMon profiles for disk/memory/CPU/network monitoring to locate system bottlenecks.  Examining for normalization (and de-normalization).  Checking wait-state values.  Doing ratio analysis.  Reducing locking/blocking/deadlocking by choosing concurrency and isolation levels, and/or adding indexes.  Examining schema design (especially index design) and optimization (defragmenting, rebuilding, statistics). Security Designed SQL Server security objects such as principals, securables, permissions, roles, users, asymmetric keys, logins, server roles, etc. Tools Very experienced with Microsoft's SQL Profiler, Enterprise Manager, Management Studio, Query Analyzer, Performance Monitor, and SQL IO Simulator. Experienced with RedGate's SQLCompare, TOADSoft's TOAD for SQL Server, DBSophic's Trace Analyzer, and www.SqlInForm.com . Administration Performed tasks such as installation, configuration, data loading, backup/recovery, upgrades, creating databases/file groups/files/logs. Have several maintenance scripts that automate index optimization, doing DBCC consistency checks, etc. Proficient at selecting server-wide (sp_configure) settings, database settings (sp_dboptions), recovery models, collation, etc. Technologies Dates Tools Microsoft Visual Studio Database Edition 1/2009 to present Database Edition GDR 1 and GDR 2 ("DataDude") 2008 SQL Server 2008 8/2009 to present SQL Server 2000, 2005 7/2004 to present T-SQL, SQL Profiler, Management Studio, Query Analyzer ADO.NET 11/2006 to present Oracle 7, 8, 9i 11/1996 to 7/2004 PL/SQL, SQL*Plus, TOAD Sybase 12/1995 to 11/1996 Watcom / SQLAnywhere 11/1996 to 11/1998 PAGE 5 OF 7
    • RÉSUMÉ OF LARRY A. LEONARD APPLICATIONS SKILLS Long experience in Windows "thick client" development in C, C++, and C# (using Win16, Win32, ATL, MFC, WinForms, and .NET). Facility with best practices, design patterns, object-oriented design, agile methodology. Strong background in GUI design and implementation. Experience with source control systems (TEAM Foundation Server, Visual Source Safe, PVCS). Experienced with C# in .NET assembly coding, ASP.NET code-behind pages, and Windows Compact Edition 5 for Pocket PC devices. Created, enhanced, and debugged large, three-tier web application using C# / .NET 3.5. The top tier consisted of code-behind pages which handled user-interface ASP.NET events. This tier manipulated business logic C# objects (the second tier) at an abstract level. These business logic objects in turn called on ADO.NET data objects (the third tier), which then interfaced to the database via ODBC. C# development skills include use of events, delegates, generics, exception handling, attributes, anonymous methods, reflection, etc. .NET skills include building assemblies, registering them in the GAC, configuring them as COM+ components, COM Interop, and creating Web Services. Technologies Dates Tools C# / .NET 4.0 / ASP.NET 11/2009 to present Proficient in all versions of Microsoft IDE's: C# / .NET 2.0 - .NET 3.5 / ASP.NET 11/2006 to present QuickC for Windows Visual C++ 1.0, 1.52c, 2.0, 4.0, and 5.0 COM+ 12/2007 to present Visual Studio 97 (Visual C++ 6.0) COM / ATL 4/2000 to present Visual Studio .NET 2002, 2003, 2005 Agile Development (Scrum) 1/2005 to 11/2007 Visual Studio 2008 (TEAM Foundation Server) Microsoft Visual C++ / MFC (16- and 32-bit) 1/1993 to present Visual Studio 2010 Beta 2 WEB SKILLS Experience in ASP.NET, JavaScript, AJAX, web services, master pages, and style sheets (CSS), with C# code-behind pages. Technologies Dates Tools ASP.NET 4.0 11/2009 to present Visual Studio 2010 Beta 2 and RC1 ASP.NET 3.5, AJAX, AJAX Control Toolkit, IIS 11/2006 to present Visual Studio 2008 (TEAM Foundation Server) ASP.NET 2.0 11/2006 to present Visual Studio .NET 2005 ASP / HTML / JavaScript 1/2002 to present XML / XSLT / XPATH 11/2000 to present WINDOWS MOBILE SKILLS Developed web and thick-client applications for Windows Mobile 5.0, using mobile ASP.NET and C#/WinForms. Technologies Dates Tools Windows CE 5 (operating system); Windows 1/2007 to 11/2007 Visual Studio .NET 2003 Mobile 5.0 (platform); .NET Compact Pocket PC (targeted hardware specification) Framework 2.0 SP1 Mobile ASP.NET PUBLICATIONS SQL Soundings blog - syndicated columnist at SQLServerPedia.com . Automate Error Checking with Debugging Macros, Windows Developer’s Journal, December 2002. Introduction to SAX2, Windows Developer's Magazine, March 2002, Volume 13, Number 3. A Better Listview Control for MFC, Windows Developer’s Journal, September 1997, Volume 8, Number 9. PAGE 6 OF 7
    • RÉSUMÉ OF LARRY A. LEONARD EDUCATION Georgia Institute of Technology, Atlanta, Georgia  Bachelor of Chemical Engineering, 1983  Editor of student newspaper (the Technique)  Editor of student course guide (the Course Critique) ALTERNATE FORMATS Application Format Link Word 2007 DOCX Word 2007 www.LarryLeonard.net/files/LarryLeonardResume.docx Word 2003 DOC Word 1997-2003 www.LarryLeonard.net/files/LarryLeonardResume.doc Adobe Reader PDF Portable Document Format www.LarryLeonard.net/files/LarryLeonardResume.pdf Any web browser MHT Single File Web Page www.LarryLeonard.net/files/LarryLeonardResume.mht Any word processor RTF Rich Text Format www.LarryLeonard.net/files/LarryLeonardResume.rtf Notepad TXT Plain Text www.LarryLeonard.net/files/LarryLeonardResume.txt O N - L I NE P R E S EN C E E-mail: Larry@LarryLeonard.net Blog: SQLSoundings.blogspot.com Website: www.LarryLeonard.net SQL reading list: http://amzn.com/l/R1AWOTUQQVHE5L Blog feed: feeds.feedburner.com/blogspot/YnzV C# reading list: http://amzn.com/l/R2QKS4Y0VXGQXR LinkedIn: http://www.linkedin.com/in/larryaleonard R E FE R E N C E S References available upon request. Rev. 2010-03-10 PAGE 7 OF 7