Featured Skills

Application Developer

Experienced, Full Stack .NET Application Developer.

Lead developer, looking to lead. Experienced, Full Stack .NET, Angular 1.5 back to front to back application developer. SQL Database, Identity Server 3 / 4. I am fluent in Cordova hybrid apps, JavaScript and APIs utilizing C# either thru .NET 4.6 > or Core 2.0. Be S.O.L.I.D. Stay D.R.Y.

If you are a recruiter or hiring manager, Let's Talk.

I am only open to opportunities in the DFW area.

Select a Featured Skill for more details. # of years experience.

Languages

  • VB.NET 7

    50% of my experience is with VB.NET. I am very proficient in utilizing the ease of VB.NET while avoiding its inherent short comings.

    C# 4

    I have built several projects using C# professionally. An Identity Server and an Entity Framework project.

    This site was created using MVC / C#.

    VB 6.0 7

    During my time at Heritage Auction Galleries, I was involved in converting code to newer technologies along the way. IE. VB 4.0 to VB 6.0 (32 bit), VB 6.0 to VB.Net

    SQL (Structured Query Language) 4

    I have been creating SQL Queries for many years. I am well versed in:

    • Creating Tables
    • Creating Views
    • Creating Stored Procedures
    • Creating Triggers
    • Optimizing Queries (Finding pig queries)
    • Sql Order of Operation (Key to building lean queries)
    • Sql Join Structure (Key to getting just the needed records)
    mySQL 1

    I recently created an Amazon Web Service account and created a mySQL instance and converted some Microsoft SQL queries used to create tables into a format that mySQL will use.

    I understand this process and can implement it if needed.

    JavaScript 2

    I have been working with JavaScript for the last 2 years. I do most of my work with JQuery.

    AngularJS 1

    I was the lead developer on the Mobile App that we built for Rainmaker Membership Systems. I worked closely with the developer that created the Angular code for the App.

    VBA 7

    At Heritage Auction Galleries, I created several scripts to manipulate or create documents.

    At GSCS, I initially started to work on their Excel VBA program that imported excel data into a SAP system. After explaining the flaws built into VBA, they decided to have me build them an ASP.NET web application that would import the Excel files into a normalized database. Which I build for them.

Principles

  • Strong troubleshooting skills 20

    I am an expert at troubleshooting IT problems.

    I have been troubleshooting electronic or IT related issues since 1990. I can get to the core of a technical problem fast.

    Full Stack Developer 2
    I am a Full Stack Developer.
    What is a Full Stack Developer to me?
    Object-Oriented Programming (OOP) 4

    4 Principles of Object Oriented Programming

    I have created several projects that implement these principles.

    • Abstraction: Use Interfaces, not concrete classes.
    • Encapsulation: Do not expose underlying code thru accessors and mutators.
    • Inheritance: Base classes hold all the common properties and methods.
    • Polymorphism: One name, many forms. Overridding, Run-time. Overloading, Compile-time.
    SOLID 2

    Another set of principles that I have been studying closely and have come to adopt on any new projects that I work on.

    The 5 Principles of OOP Design

    • Single Responsibility Principle
    • Open / Closed Principle
    • Liskov Substitution Principle
    • Interface Segregation Principle
    • Dependency Inversion Principle
    Agile Methodologies 2

    I took the 5 day Menlo Way course at Menlo Innovations in 2016. This course included:

    • INTRO TO THE MENLO WAY™
    • PROJECT MANAGEMENT: THE MENLO WAY™
    • HIGH-TECH ANTHROPOLOGY®
    • HTA SKILLS: INTERVIEWING & OBSERVING
    • DEEP DIVE INTO THE MENLO WAY™

    The biggest thing I learned at Menlo was that no one methodology is the best fit for any environment. They created an environment from several methodologies. Including, Scrum, Story cards, estimating project time, building work authorization boards, the significance of observation, personas, and tracking project status.

    These 5 days changed how I view projects and scope profoundly.

Frameworks

  • ASP.NET 2

    My first ASP.NET application was written in 2007. It was an image proofing system at Heritage Auction Galleries.

    At GSCS I built them an ASP.NET Application that allowed them to import Excel files into a normalized database.

    At Rainmaker Membership Systems, their web application was created entirely in ASP.NET, with VB.NET backend.

    I have extensive knowledge of how ASP.NET works.

    .Net v4.5.2 4

    Extensive knowledge of .NET environment.

    Entity Framework v6.1.3 2

    The EF project that I created at Rainmaker Membership Systems was a large undertaking. This was a 'Data First' project.

    Some of the key features I built into the Rainmaker EF Project are:

    • I created 100 views that were based off the 100 existing tables.
    • I created 4 Stored procedures for each View. An Insert, Update, Delete and Select.
    • Each stored procedure automatically checked for any columns whose data was changed. If it was changed, it was logged.
    • I added all 100 views and 400 associated stored procedures to the EF Project.

    Once the EF Project was rolled out, we started to replace all the inline SQL and parameterized queries to EF.

    Identity Server 3 2

    At Rainmaker Membership Systems, I built an Identity Server for use with the Mobile Application. This was the key part of identifying calls to the API to make sure that only JWT Bearer tokens that we created were allowed access.

    LINQ / LINQ to SQL 2

    Language Integrated Query

    I have Extensive experience with LINQ and LINQ to SQL.

    API / SOAP / Web Services 2

    At Rainmaker Membership Systems, I built a Web Service / API for their Mobile App.

    Some of the key features I built into the API are:

    • The Web Service used JWT bearer tokens to identify users.
    • The Web Service had over 100 endpoints.
    • The Web Service protocol was JSON.
    • Each endpoint was documented in the company WIKI.
    • Each endpoint has a Unit Test.
    JWT 2

    (JSON Web Token). I used this type of token to identify users thru the Identity Server.

    Microsoft MVC 1

    Most of my career has been working in either desktop applications or ASP.NET. This website is a Microsoft MVC application using C#. You can view the source code here.

    AWS (Amazon Web Services) 1

    On my own, I have built out a mySQL instance on Amazon Web Services.

    Some of the key features I learned are:

    • I converted some Microsoft SQL Table Scripts to mySQL.
    • How to create a mySQL instance on AWS.
    • How to give permissions to the mySQL instance.
    • How to Insert, Update, Delete and Select data from the mySQL Instance.
    • How to add tables and data to the mySQL instance.
    • I created an Entity Framework project pointing to the mySQL instance on AWS.
    Google Firebase 1

    At Rainmaker Membership Systems, we used Google Firebase Services to send notifications to the mobile application on both Android and iOS.

    Firebase data service is a no SQL data system. There are several types of NoSQL Databases:

    • Key / Value
    • Wide Column
    • Document
    • Graph

    Google Firebase is a Key / Value type.

    Others like MongoDB are a Document based NoSQL.

    Each of these types have strengths and weaknesses. Ask me what they are.

    SOAP vs REST 2 / 0

    I added this article because it brings home a very good point. There is no one solution that fits all situations. You must understand what the underlying goal is before you can decide on a technology.

    These are the thought processes that I go thru before I take on a project.

    SOAP

    (Simple Object Access Protocol), was created in 1998 by Dave Winer et al in collaboration with Microsoft. Developed by a large software company, this protocol addresses the goal of addressing the needs of the enterprise market.
    Makes data available as resources (nouns), for example “user” or “invoice”.

    PROS

    • Follows a formal enterprise approach.
    • Relatively easy to implement and maintain.
    • Clearly separates client and server implementations.
    • Communication isn’t controlled by a single entity.
    • Information can be stored by the client to prevent multiple calls.
    • Can return data in multiple formats (JSON, XML etc.).

    CONS

    • Spends a lot of bandwidth communicating metadata.
    • Hard to implement and is unpopular among Web and mobile developers.

    WHEN TO USE

    • When clients need to have access to objects available on servers.
    • When you want to enforce a formal contract between client and server.

    WHEN NOT TO USE

    • When you want the majority of developers to easily use your API.
    • When your bandwidth is very limited.

    REST

    (Representational State Transfer) was Created in 2000 by Roy Fielding in UC, Irvine. Developed in an academic environment, this protocol embraces the philosophy of the open Web.
    Makes data available as services (verb + noun), for example “getUser” or “PayInvoice”.

    PROS

    • Follows the philosophy of the Open Web.
    • Relatively easy to implement and maintain.
    • Clearly separates client and server implementations.
    • Communication isn’t controlled by a single entity.
    • Information can be stored by the client to prevent multiple calls.
    • Can return data in multiple formats (JSON, XML etc.).

    CONS

    • only works on top of the HTTP protocol.
    • Hard to enforce authorization and security on top of it.

    WHEN TO USE

    • When clients and servers operate on a Web environment.
    • When information about objects doesn’t need to be communicated to the client.

    WHEN NOT TO USE

    • When you need to enforce a strict contract between client and server.
    • When performing transactions that involve multiple calls.

    Conclusion

    The best way to choose between REST and SOAP is by comparing them on a use-case basis. By looking at both their strengths and weakness in certain environments, as well as understanding your own projects scope, you can make the most informed decision.

    Use REST if you’re focused on wide scale API adoption or if your API is targeted at mobile apps.

    Use SOAP if you are dealing with transactional operations and you already have an audience that is satisfied with this technology.

    Source
    Ionic Framework 2

    I was the lead developer on the Mobile App that we built for Rainmaker Membership Systems. I worked closely with the developer that created the mobile app using the Ionic Framework.

    Newtonsoft.Json 2

    Extensive knowledge of JSON manipulation.

    • Serializing objects into JSON string.
    • De serializing Strings back into objects.
    • Custom population of object thru JSON Settings.
    XML 2

    Extensive knowledge of XML format.

Web Design

  • jQuery 2

    I have been using JQuery for the last 2 years.

    AJAX 2

    I am well versed in AJAX.

    Bootstrap 2

    Look Around. I used bootstrap here on this website.

Tools

  • Microsoft Visual Studio 2015 4

    Version 14.0.2

    I have been using Visual Studio since 1996 when we were writing code in VB 4.0

    Microsoft SQL Management Studio 2012 4

    Version 11.0.2

    I have been using Microsoft SQL Management Studio for many years.

    PostMan 2

    PostMan is the key to testing any API endpoint.

    While building out the API at Rainmaker Membership Systems, I used PostMan to:

    • Call all 100+ endpoints for testing.
    • Run tests on groups of endpoints.
    Beyond Compare 2

    The best tool for comparing files and folders. This integrates into SourceTree.

    Media Wiki 2

    Wiki is one of the best ways to store and document code internally. It allows for searching and easy updating.

    Trello 2

    I have used Trello extensively. One of the best tools for tracking an entire project or one issue.

    Bitbucket 2

    I have been using BitBucket for a couple of years now.

    You can view my BitBucket repo for this website here.

    View my Pull Requests.

    View my Source Code.

    View my Commits.

    Show open Open Issues.

    SourceTree 2012-2017 2

    Version 1.9.10

    Source tree one of the best GUI interfaces for GIT. If you like, you can use DOS git and SourceTree at the same time.

    SVN 2

    I have used SVN in the past to store static content that rarely changed. This kept those files out of the BitBucket REPO, which kept the REPO size down.

    Ghost Inspector 2

    Online web tool for remote testing of a web site or API endpoints.

    git 2

    I use SourceTree mostly, but I fully know:

    • The difference between a Pull and a Fetch.
    • The difference between a Branch and a Fork.
    • get Fetch.
    • git Pull.
    • git Push.
    • git Checkout.
    • git Merge.
    • git Commit.
    • git Status.
    Active Reports 2

    .NET control used to create reports.

    Twain 2

    I know how to programmatically acquire images from any TWAIN compliant device.

    Photo Shop CC 2015 12

    I am an expert at Photoshop automation.

    Easy Mail 12

    .Net component used to send SMTP email.

    Lead Tools Raster Imaging 12

    .Net component used to create and manipulate images.

    Powershell 2

    I use PowerShell for batch processing.

    Microsoft Office Automation 2

    I am an expert at Microsoft Office Automation thru VBA.

    • Word
    • Excel
    • Exchange
    • PowerPoint
    • Visio
    • Project

File Formats / Protocols

  • Network Protocols 12

    I know and understand the core protocols of the internet, which include:

    TCP/IP
    Transmission Control Protocol / Internet Protocol
    SMTP
    Simple Mail Transport Protocol
    DNS
    Domain Name Services
    DHCP
    Dynamic Host Configuration Protocol
    NAT
    Network Address Translation
    VPN
    Virtual Private Networks
    AppleTalks
    Apples protocol for communicating over a network.
    IPX
    Network layer used by Novell. A little to much back and forth overhead for me.
    Image Formats 13

    I am an expert in image formats. At Heritage, I built an automated imaging system that processed images from TWAIN devices or a Hot Folder, to the web.

    Jpeg
    Lossy compression.
    TIFF
    Tagged Image File Format: Lossless compression.
    LZW
    One of the compression schemas used by the TIFF image format.
    GIF
    Up to 256 color, non-compressed images. An Animated GIF can old several BMP images that are displayed one after the other.
    BMP
    Up to 256 colors, non-compressed.
    CMYK
    Color space for most printers.
    RGB
    Color space for monitors and your eyes.
    PS
    Post Script
    EPS
    Encapsulated Post Script

Classes Taken

  • PluralSight.com. C# 6 from Scratch. March 2017

    C# 6 from Scratch by Jesse Liberty: This was a refresher video course that I took to get my C# legs on since most of my experience has been in VB.NET.

    The Menlo Way June 2016

    Completed the Menlo 5-day course.

    The Menlo 5-day course is a 'Hands On' course. After each section, we went into the real world and practiced them. Ask me how.
    Below are some of the main take aways from this course.

    Story Cards
    I learned in detail the importance of Story Cards and how they are best used. each story card should have the minimum amount of work that can be accomplished and can be pushed out into production on its own. If a story card lasts more than a day, it needs to be broken out. Ask me why.
    Sprints
    Sprints can be of any length depending on the need. Start with 5-day sprint and adjust as needed.
    Project Management
    Menlo has their own adaptation of Project Management.
    Observing
    It is very important to observe the end user in THEIR environment. Ask questions that do not influence their answer. Ask me why.
    Estimations
    Estimations by nature are always wrong. It is very important that the developer that is estimating sees the actual time it took to do the task. This makes their future estimates 'predictable'.
    Show and Tell
    Show and Tell with the owner of the project is very important. It should happen at the end of each sprint. Ask me why.
    Pairing
    The pairing of developers is a very powerful tool. Some of the benefits are:
    • Eliminates the Tower of Knowledge developer
    • At any one time, multiple developers know any one project.
    Daily Stand-Up
    Output Only. The daily stand up is for the entire office. You stand in a circle and go around and tell the group what you are working on. 10 - 20 seconds. State if you need to see someone after the stand up.
    Make Mistakes Faster
    This simply means. The sooner you make and identify a mistake, the less it costs to fix it. Having all the pieces listed above in place ensures that mistakes are identified earlier rather than later.
    Quality Advocates
    QA's are there to make sure that the project owner gets a quality product and works as requested.
    Fred Pryor Seminar: Microsoft Project. February 2008

    At Heritage Auctions Galleries, I worked closely with the Project Management team.

    MS 2373 – Programming with Microsoft Visual Basic.NET. June 2005

    At Heritage Auctions Galleries, when we decided to convert from VB6.0 to .NET I took a 5-day course on .NET.

    Xerox eXelerate Operator Training. IGEN high volume printer series. July 2003

    At Heritage Auction Galleries, I oversaw maintaining and operating the Xerox high volume printer. I took a course on the operation of the large Xerox printer.

    Xerox DocuTech Operator Training. August 1997

    At Heritage Auction Galleries, I oversaw maintaining and operating the Xerox high volume printer. I took a course on the operation of the large Xerox DocuTech printer. This was our first printer that we could send jobs to.

    Ricoh VT3600, VT1730 Service and Maintenance Technician Training. August 1995

    At Tarrant Business Systems, I was the lead technician on the high volume and duplicator printers. This was a technical course on maintaining and repairing the Ricoh VT3600. This was not a copier but a duplicator. It replaced the old mimeograph machines. You sent your file over and it created a template that was used to create the copies. This system used ink and not toner.

    Copystar 2256/2260/2270 Service and Maintenance Technical Training. August 1994

    This class was my first technical copy machine class and was on the smaller copy machines.