PHILIP L. WETZEL

4 Drouin Way                                                                                                                                                                                       603.305.1774

Merrimack, NH 03054                                                                                                                                                       philwetzel@outlook.com

SUMMARY

Senior Solutions Developer/Architect with expertise in the conception, development, deployment, migration, training, and maintenance of software applications using a wide variety of technologies including thick clients, thin clients, web clients, and services primarily written in C#.NET.  Solid understanding of Object Oriented Programming.  Able to Deliver and maintain solutions to internal and external customers with an extraordinary commitment to customer satisfaction. 

CORE COMPETENCIES

C# · MVC · ASP.NET · .Net Core · SQL Server · MySQL · Webservices · Razor · ADO.Net · AJAX · XML ·  XSLT · XSD · VB.Net · VB6 · CSS · Entity Framework · LINQ · TDD · Unit Test · Json · Mongo · Javascript · jQuery · JIRA · PDFlib · Google Analytics · MVVM · PHP · Jenkins · Subversion · Drupal · Team · .Net Framework · Docker · SoapUI · Swagger · JAVA reverse engineer · Angular · Typescript · Bootstrap · Blazor

PROFESSIONAL EXPERIENCE                                                                                                                                                                                                                                                                

·         Rock solid MVC backend developer.

·         Improving my skills in client-side programming.  Angular, React, JQuery, ExpressJS, Bootstrap.

·         Originally wrote personal website using .Net 2.0, Master Pages, Menus – Original.Phixiated.com

·         Re-wrote personal website in C#/HTML5/MVC.   www.Phixiated.com

·         Drupal websites - http://www.nhd.uscourts.gov, http://www.nhp.uscourts.gov

·         Wrote various other websites: BBMasonry.Phixiated.com, crookedRiverSC.Phixiated.com.

 

Main Street America, Jacksonville, FL                                                                    April 2019 – Oct 2019

Consulting Engineer

·         Rewriting various Websphere Legacy Webservices written in JAVA using .Net Core. 

·         Used SoapUI, and Swagger for test and compare with legacy response.

·         XML, Json, Linq to SQL, Linq to XML, Docker, Blazor.

 

4 Square, LLC, Portsmouth, NH                                                                  December 2016 – July 2017

Consulting Engineer – part time

·         R&D in developing applications using AngularJS2, Node.js, Npm, Gulp, TypeScript, and WebAPI.

·         Maintaining existing MVC websites.

 

Yankee Book Peddler, Contoocook, NH                                                                 June 2014 - July 2016

Consulting Engineer - Permanent

·         .Net development, TDD, Strong coding standards.

·         Maintaining many legacy applications such as MVP and others.

·         New development using TDD, MVC, Dependency Injection, and JQuery.

·         Cruise Control Continuous Integration, BeanBag Code Review Board, Subversion, Jenkins Continuous Integration, SAFe - Scaled Agile Framework

 

US Probation, Concord, NH                                                                              January 2014 - April 2014

Consulting Engineer

·         Ported External website from ASP to Drupal CMS using the Danland theme. http://www.nhp.uscourts.gov

·         Created US Federal Probation internal website based on the Mayo theme.  PHP/CSS 

 

US District Court, Concord, NH                                                                        June 2013 – January 2014

Consulting Engineer

·         Ported US Federal Court website from classic ASP to Drupal CMS.  PHP/CSS  http://www.nhd.uscourts.gov

·         Project involved in utilizing several Drupal packages, and modifying PHP code within the Drupal packages such as Event signup and scheduling, form submission, and subscription management.

·         Wrote internal website using MVC 4 to track available employee leave time and to manage the sharing of leave time between employees.

 

 

 

 

 

Softmedia, Billerica, MA                                                                              August 2012 – November 2012

Consulting Engineer

·         Participated in project to enhance existing website for client MBA Insurance. C#, .Net 3.5, Webservices, Perforce Code management.

 

Logix Health, Bedford, MA                                                                                February 2012 - June 2012

Consulting Support Engineer

·         Maintained existing ASP, C#, SQL programs and services used to perform daily data transfer and data conversion operations (HL7 format).   C#/.Net 2.0, SQL SSIS and DTS (Data Transfer Services).

·         Maintained existing VB.Net desktop application used for data entry of emergency room visit details.   

 

Liberty Mutual,  Portsmouth, NH                                                              September 2010 - October 2011

Consulting Engineer

·         Developed C#/ASP .Net3.5 internal web based tools used to configure logical Partitions of IBM mainframe computers.  SQL Server 2008 R2 was used to maintain a highly detailed chronological record in order to improve configuration management.   

·         .Net 3.5, XML Schema (XSD), Visual Studio 2010 Team Foundation Server, SQL 2008 R2. Agile Methodology.

 

Paxton Group, Worcester, MA                                                                       May 2009 - September 2010

Consulting Engineer

·         Developed a external system with C# dedicated to the automatic transfer of transactions into QuickBooks using QBXML /QBWebconnector/ QBWebservices (QuickBook programming interfaces for C#/ASP.NET).

·         Re-wrote and updated various client websites using .Net Framework 3.5/C#/SQL Server 2000/PHP.

·         Updated client websites using a variety of technologies such as PHP.

·         Updated Client’s Credit Card validation system using First Data Global Gateway.

 

Ames Print On Demand, Somerville, MA                                                                July 2007- March 2009

Software Engineer Contract to Hire. Hired 4/8/2008

·         Involved in using Web 2.0 C#.NET technology to evaluate, re-architect, re-write and retire legacy SW systems used mainly for operations and reporting written mainly in VB6, and ASP 1.0.   Document the new architecture.

·         Migrated main operational databases from SQL v6.5 and 2000 to SQL 2005.

·         Completed XML order processing SW.  C#.Net/ SQL2000/ MS reports/ Windows Service/ Stored Procedures.

·         Wrote a variety of .Net C# web services used by SW throughout the company used to calculate UPS shipping charges, JPG to PDF conversion using PDFlib, order entry, and USPS address verification.

·         Wrote web site to convert customer submitted JPG images to PDF for professional printing using Web 2.0/C# and PDFlib.

·         Re-wrote a pre-ASP reporting application in Web 2.0 C#.Net/ AJAX/ Dynamic Paging.

 

 

STATE OF MA, EARLY EDUCATION and CARE, Boston, MA                     September 2006 - July 2007

Software Engineer Contract

·         Enhanced 2 complicated VB6/SQL client server applications.  One used to manage state funding for roughly 10,000 daycare providers and 30,000 children receiving state aid.  The other application used to perform background record checks on all individuals involved in the daycare business. 

·         Wrote small web based utilities in C#.Net and IIS that perform various ad hock tasks such as giving finance a URL that will give them a particular snap shot of billing for a particular time-frame.    

·         Created data & application migration plans and gap analysis to bring both VB6 apps up-to-date in C#.Net web based. 

 

 

HEWLETT-PACKARD COMPANY, Nashua, NH                                                   May 1984 - March 2006

(Formerly Compaq Computer Corporation, formerly Digital Equipment Corporation)

Senior Software Engineer, Technical Analyst III,  Technical Analyst III, IV (1997-2006)

·         Researched and brought in-house the capability of SAP/BAPI programming methodologies for Document Management, and Material Master Systems via both Web Portal and Thick client. Engineered the upgrade of technologies used from VB6 WinForms, DCOM to .Net, C# WinForms, ASP.Net, and XML on Visual Studio.Net.

·         Collaborated with outsourced teams to develop and support a content management system in part of HP’s main content factories, including development and bug fixes with Java Scripting. Created an external reporting app. using JSP/CSS/XHTML/java, with XML/DTD output.

·         Created, deployed, assisted in training, and supported highly intelligent SAP/BAPI front-end data insertion applications using a variety of technologies including C#/.Net WinForms, XML, DLLs, VB6 WinForms and others as part of HP’s Document Management System (DMS) architecture.

·         Created a Dynamic Link Library containing BAPI methods and objects to allow other team members to more easily write utility programs.

·         Developed and maintained database front-end User Interfaces written in C used by documentation delivery specialists to insure data integrity during insertion into a document management system according to SOX guidelines.

·         Finished writing an ASP flight booking software package to demonstrate our transaction processing capabilities via website (as part of a software development team). 

·         Maintained website allowing database access. 

Software Specialist, Software Engineer II (1992-1997)

·         Set up production lines for Alpha voice turnkey telephony platform builds, and provided hardware and software customer support after the sale. 

·         Installed, configured and supported related x.25/SS7 processing HW/SW at customer sites as well as discovering and finding bugs in the lab that were reported by the field. 

·         Dealt with various telecom related protocols including T1, T3, SS7, X.25, CCITT standards, Bellcore, INSP (Intelligent Networking Systems Platforms), faxes, modems, Ethernet.

·         Provided primary 24X7X365 support for an important customer installation for more than 4 years.

·         Ported needed voice utility programs between Unix and NT platforms written in C++.

·         Received Digital Recognition award for services above and beyond the call of duty for facilitating the replacement of a DOA computer at an important customer site.

 

Engineering Technician I, II, III (1984-1992)

·         Gained valuable experience in many aspects of computer product development, documentation, and maintenance including regulatory standards testing such as UL, safety, FCC, environmental, and creating Category A and C plans.  

·         Updated statistical software, written in Pascal used to process and analyze survey data to determine corporate wide educational and training needs. 

·         Performed VMS and Unigraphics system management used on TEMPEST design projects. 

·         Significantly improved operations capabilities by writing and implementing capital asset inventory tracking software.

·         Troubleshot and repaired various new-build and field-returned VAX and PDP11 hardware options and circuit boards.  Used stand-alone and networked PDP11/34’s and PDP8’s as test equipment.

·         Lead technician in charge of repairing VAX and PDP11 power supplies. 

 

 

EDUCATION

Daniel Webster College, Nashua, NH.

B.S. Computer Science

Certificate, MS Windows Programming

 

Keene State College, Keene, NH

A.S. Industrial Electronics TechnologyXSD - XML Schema

Populate form from oneRow

          if (oneRow.AddlSANRequiredInd) {

                rbAddlSANIndYes_CheckedChanged(null, null);

                rbControlSelected("rbAddlSANIndYes", true);

                rbControlSelected("rbAddlSANIndNo", false);

            }

            else rbAddlSANIndNo_CheckedChanged(null, null);

 

 

 

Find Control on form from Code behind

   protected void CheckBoxCloneRequestInd_CheckedChanged(object sender, EventArgs e)

        {

            Button btnUpdate = (Button)fvNewRequestSrvr.FindControl("btnUpdate");

            if (ckbControlChecked("CheckBoxCloneRequestInd"))       {

                lblControlVisible("lblCloneRequestNumOf", true);

                ddlControlVisible("ddlCloneRequestNumOf", true);

                ddlControlSetFocus("ddlCloneRequestNumOf");

                if (!((Button)fvNewRequestSrvr.FindControl("btnUpdate")).Enabled)

                    ((Button)fvNewRequestSrvr.FindControl("btnCloneRequest")).Visible = true;

            }

 

On the Form

        <asp:FormView ID="fvNewRequestSrvr" runat="server" DataKeyNames="RequestID"    DataSourceID="ODS_NewRequestSrvr" OnPreRender="fvNewRequestSrvr_PreRender"    OnItemInserted="fvNewRequestSrvr_ItemInserted"        OnItemUpdated="fvNewRequestSrvr_ItemUpdated" Width="100%"       OnDataBound="fvNewRequestSrvr_OnDataBound"

            EnableModelValidation="True">

            <%- ------------------------  EditItemTemplate ---------------------------------- --%>

            <EditItemTemplate>

            

BIND

   <tr>

       <td style="font-weight: normal; font-style: normal; text-decoration: none" align="center">

             <asp:TextBox ID="TextBoxRequesterName" runat="server" MaxLength="50" Font-Bold="true"

                                            ReadOnly="true" Text='<%# Bind("RequesterName") %>' />

       </td>

AMES

JAVASCRIPT

<script language="Javascript" src="scripts/JScript.js"></script>

    <script type="text/javascript"  language="javascript">

        function fnUpdateWarning(amesNumber, shipSeq)

        {

         if(!window.confirm("Confirm to UPDATE Record JobNumber = "+amesNumber+", shipSeq ="+shipSeq+"."))

            {

                return false;

            }

            return true;

        } // fnUpdateWarning

        </script>

 

AJAX  asp side calls codebehind

 

           <asp:TemplateField HeaderText=JobNo >

                <ItemTemplate>

                    <a href="Javascript:openPopup2('JobNoEdit.aspx?lWOID=<%# Eval("WOID") %>&lJobNo=<%# Eval("JobNumber") %>')">

                    <font  color='<%# SetColor(Eval("JobNumber")) %>'>

                    <%# GetText(Eval("JobNumber")) %>

                    </font>

                    </a>

                </ItemTemplate>

            </asp:TemplateField>

 

  <asp:BoundField DataField="Program" HeaderText="Program" ReadOnly="True" SortExpression="Program" />

  <asp:BoundField DataField="Professor" HeaderText="Professor" ReadOnly="True" SortExpression="Program" />

            <asp:TemplateField HeaderText=Professor >

                <ItemTemplate>

                <asp:Label ID="Label2"  runat="server" ForeColor=Blue Text='<%# Eval("Professor") %>'></asp:Label>

                    <ajaxToolkit:PopupControlExtender ID="PopupControlExtender2" runat="server"                  DynamicServiceMethod="GetDynamicContent2" DynamicContextKey='<%# Eval("WOID") %>'         DynamicControlID="Panel1" TargetControlID="Label2" PopupControlID="Panel1"

                            Position="right">

                    </ajaxToolkit:PopupControlExtender>

                </ItemTemplate>

            </asp:TemplateField>

 

Codebehind

    [System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]

    public static string GetDynamicContent0(string contextKey)

    {

        char[] delimiter = { '|' };

        string[] MyParams = contextKey.Split(delimiter);

        string WOID = MyParams[0];

        string JobNumber = MyParams[1];

        StringBuilder sTemp = new StringBuilder();

 

        if ((JobNumber.Trim() == "Edit") || (JobNumber.Trim() == "99999"))

        {

            sTemp.Append("<table id=\"TTTT\">");

            sTemp.Append("<tr><td class=boldProf1>Enter JobNumber:</td>");

            sTemp.Append("<td colspan=3><input id=Text1 class=boldProf2 type=text /></td>");

 

            sTemp.Append("</tr><tr>");

            sTemp.Append("<td style=\"height: 26px\">");

            sTemp.Append("    &nbsp; &nbsp; &nbsp;");

            sTemp.Append("    <input onclick=\"window.location.href=Redirect.aspx\" id=Submit1 type=submit value=submit style=\"width: 59px\" /></td>");

            sTemp.Append("<td><a href=Redirect.aspx></a></td>");

            //   "<a href=\"Javascript:openPopup('JobNoEdit.aspx?WOID=" + val + "', 'CC')\">Edit</a>"

 

            sTemp.Append("<td style=\"height: 26px\"><input  id=Reset1 type=reset value=reset /></td>");

            sTemp.Append("<td style=\"height: 26px\"><input id=Submit2 type=submit value=Cancel /></td>");

            sTemp.Append("</tr></table>");

            //            sTemp.Append("<a href='mailto:XX'></a></td></tr>");

        }

        return sTemp.ToString();

    }

    // ============== KIT =====================================