.net Web Api Architect/developer Resume
Columbia, MD
SUMMARY:
- I am a Software Architect with 22 years of professional development experience. I have programmed at all levels, from assembler to C#, from code monkey to analysis and design.
- In my last job, I took on more responsibility for the strategic tech direction of the development team. I focused on replacing an MVC site with Angular2/Typescript running against a Web API as well as analyzing and re - architecting the entire security model so it is “opt out” rather than “opt in”. I also worked closely with QA to make sure things were going as smoothly as constraints allowed.
- While I’m out of work, I’m studying Angular using Pluralsight tutorials.
- I have worked on several 3D frameworks using C++/DirectX over the past 20 years or so. I’m not sure if it’s a hobby or a hair shirt.
- I live in Tucson, AZ, but I am willing to relocate to the Phoenix area
TECHNICAL SKILLS:
LANGUAGES: 14 Years C#; 7 Years SharePoint; 4 Years WPF with MVVM; 1 Year Silverlight; 22 Years C, years C++, Visual C++ (MFC, ODBC, COM/ActiveX); 10 Years DirectX 6-11; ASP.NET, 10 Years Javascript Script, HTML; 4 Years Entity Framework; 4 years .net MVC; 2 years Web API; 1 year Angular/Typescript; 2 Years Intel Assembly, 2 years PowerShell
FRAMEWORKS: Angular2, JQuery, Bootstrap, MVC, Web API, Entity Framework, WCF, WPF, UWP
SOFTWARE/TOOLS: MS Visual Studio, Visio (development), IE, Test-Driven Development, NUnit, VSS, SVN, TFS, Mercurial DSCCS, Gulp, OAuth/OpenId
DATABASES: 14 Years MS SQL Server, 2 Years MS Access
SYSTEMS: Windows
CAREER EXPERIENCE:
Columbia, MD
.Net Web API Architect/Developer
Confidential
Responsibilities:
- Fei produces web - technology for the federal government to track grant proposals, execution and feedback.
- Web API I primarily worked on the API portion of the site which used .Net Web API, with an Angular front-end and NHibernate back-end.
- TDD the main focus of the work was Test Driven Development. I studied several books on the subject that brought together many ideas and gave me a fuller understanding of how to produce good tests and testable code.
Tucson, AZ
.Net MVC 4/Web API Architect/Developer
Confidential
Responsibilities:
- LHD is a start - up in Tucson. I was the second developer hired and so my responsibilities were many and varied.
- Angular2/Typescript Began architecting replacement for MVC application so that all clients use the same API. This involved an Angular 2 front-end, with a WEB API back-end, using Azure Active Directory B2C for authentication and various services that worked together as a SOA authentication/ authorization, data lookups, imports and exports were all performed by separate services. This rewrite also included a security overhaul to overcome some of the MVC/API weaknesses; junior developers often forgot to add security attributes to HTTP end-points and left holes in the security model. I fixed this by creating a custom, low-level filter that performed security checks before any controller/action was invoked.
- MVC4 Application Helped architect and develop an n-tier web application. I did everything from writing javascript on the front end to constructing the database on the back end and everything in between. We made heavy use of solution packages such as Entity Framework, Ninject, NUnit, etc.
- Web API Application Architected and developed API for iOS clients. Used Thinktecture s Identity Server for OAuth/OpenId implementation.
- Agile Methodology We followed the agile methodology with daily scrums and fortnightly iterations. At the end of each iteration we had a retrospective and review. This begins with each team member showing how the application is different after this iteration and ends with a review. During this review, we talked about things we did well and things we could do better.
- Continuous Deployment We spent considerable effort setting up TeamCity and Octopus Deploy to automatically compile and deploy code to various environments and then run unit tests and report the results. The time taken to set this up payed for itself almost immediately as we could deploy to any environment with the push of a button.
- Operations Support I set up various cloud servers to host different aspects of the company s efforts.
- Security I became Chief of Security as we progressed and set up external audits from two separate companies. One performed a static analysis of the code and servers and the second, much more important one, was a dynamic analysis performed by a team of hackers whose job it was to try to steal data. I also coordinated efforts internally to keep everyone thinking about security as they coded. I recently helped set up a HIPPA team and continued to work on our security efforts.
- Automated Testing I used PowerShell to produce a script which crawls the code-base looking for web end-points. This script then produces C# code from templates that automatically tests these end-points from a security perspective. This script was integrated into our continuous deployment process and is automatically run every night.
- UI Testing I wrote C# tests that utilized Selenium to test the application from the front-end. After I got these started I then taught the test team how to write their own tests using the framework I had put in place. These tests were also integrated into our continuous deployment process.
- UWP I recently started writing a UWP program for the Windows Phone in preparation for expanding our mobile offerings. Unfortunately, Microsoft dropped support for Windows Phone so this was a wasted effort.
.Net MVC 4 Architect/Developer
Confidential
Responsibilities:
- When I was in New Zealand I worked as a contractor for various companies in America.
- MVC4 Application I have helped to produce a web - based application that used a lot of javascript for the front end. During this project, I learned lots about JS and JQuery as well as an MVVM front-end framework called Knockout.
- MVC4 Application I created an application using MVC4 and the entity framework. Again, I got to learn more javascript/jQuery for the UI.
- .Net 4.5 Web Forms Standard web-forms application with Knockout-based front-end.
Atlanta
SharePoint/ Architect/Developer
Confidential
Responsibilities:
- Slalom is one of the biggest consulting firms in the Atlanta area. I was involved in several projects in the two years I worked there.
- SharePoint 2010/SalesForce.com Integration I wrote a Facebook - like web part for Confidential Enterprises corporate internet. This project involved making REST calls to the SFDC API, JSON data packet manipulation and OAUTH authentication. The web part allowed users to view a chatter feed and make comments, upload photos, create polls etc.
- SharePoint 2010 Intranet Worked at the Home Depot corporate office to produce a web site that allowed contractors to interact with Home Depot. This included custom layouts, web parts and services. I got my first experience with Claims Base Authentication. I also worked with Coca Cola Enterprises to produce their corporate intranet.
Used: C#/SharePoint 2010, Jquery/javascript
Atlanta
.Net Architect/SharePoint 2007/2010 Developer
Confidential
Responsibilities:
- Over the past few years I have picked up several side projects. These were all end - to-end solutions involving requirements gathering, producing project plans, developing and testing.
- S harePoint 2007 201 0 Migrations These ranged from simple in-place upgrades to full migrations between farms. The migrations involved writing custom WCF porting utilities to re-structure site topologies as well as re-writing custom code and workflows to operate in the 2010 environment. During this time, I became familiar with the new 2010 features such as term sets, farm-wide content types, site-level workflows, etc.
- Used: C#/SharePoint 2010/WWF 4
- Silverlight/SharePoint 2010 Application I created a vacation scheduling application in Silverlight. This application contained several web parts that were hosted in SharePoint 2010. The data was stored in custom lists within SharePoint and presented to users through a rich UI. I gained valuable experience with the new 2010 client object model by implementing an asynchronous data-layer.
Used: C#/Silverlight/ Agile design principles using the MVVM pattern.
Atlanta
.Net Architect/SharePoint 2007 Developer
Confidential
Responsibilities:
- At Confidential I was tasked with bringing order to chaos. Like many companies that had started to use SharePoint, they had done so in a haphazard, chaotic manner. Every solution they had thrown together was coming apart at the seams and they needed advice on how to get to grips with all the moving parts.
- I did this in three stages:
- Put out fires
- Stabilize environment
- Design solutions for pressing business needs
- The first stage involved fixing broken functionality as quickly as possible. I worked with IT and users to identify the biggest pain points and developed short - term fixes.
- The second stage involved working closely with IT to create a new SharePoint farm and migrate needed content while leaving behind all the broken bits.
- The third, and longest, stage was developing solutions for business needs in a way that would move them forward without leading them back to the uncontrolled, chaotic environment they had created when I was engaged. I created a set of governance guidelines and then implemented a series of custom code modules that allowed them to track projects, users and documents. My intent was to give them as much control as they needed to get their jobs done without giving them full access to all of SharePoint s features.
- A major pattern that I developed and then spread to all departments was the notion of a Site Directory that controlled creation/customization of sub-sites. Each department was given its own Site Collection with a Directory on the home page. This directory allowed users to browse projects and the sub-sites for these projects. Authorized users could create new projects and sub-sites.
- Common business data was stored in SQL and updated using InfoPath forms. This pattern was so successful that it is now being repeated across the corporation.
Used: C# .Net 3.5, SharePoint 2007, SQL Server, InfoPath, Access 2007
Atlanta
.Net Architect/SharePoint 2007 Developer
Confidential
Responsibilities:
- At Daugherty I was involved in three projects.
- Manhattan Associates Created custom SharePoint webparts and imposed order on development lifecycle.
- Created custom web part using DevExpress grid control.
- Created base classes to encapsulate common development tasks.
- Created visual studio templates to build SharePoint Solution Packages for best - practice deployment of custom code to SharePoint farms.
- Used: C#, Agile design principles, DevExpress controls.
- NAPA Analyzed existing web application and produced architectural assessment/recommendations for overhaul. Created Visual Studio state-machine workflow to track projects.
Atlanta
SharePoint 2007 Architect/developer
Confidential
Responsibilities:
- Development Infrastructure Imposed order on development lifecycle.
- Created base classes to encapsulate common development tasks.
- Created visual studio templates to build SharePoint Solution Packages for best - practice deployment of custom code to SharePoint farms.
- Created client application to automate/aid common SharePoint administration tasks such as recycling themes/masterpages, re-setting permissions, copying data across site collections, etc.
- Used: C#, Agile design principles.
- Linoprint Single-handed implementation of a SharePoint website from an HTML sample page. See for results. This has since been re-implemented in PHP but it looks the same as what I was able to produce.
- Created SP theme/styles and masterpages from mockup.
- Created custom webparts.
- Implemented variations to support English and German.
- Used: C#, MOSS 2007
- Project Workspace Customization Feature receiver to setup standard project sites.
- Feature receiver fired when new project workspace was created.
- Built out new project site, sub-site, permissions, lists and documents libraries.
- Used: C#, MOSS 2007, Telerik web controls
- Custom Control Development Created various custom webparts and user controls.
- Created menu user control to replace/augment standard MOSS control. Also created custom menu edit page/controls.
- Team meeting webparts series of interrelated webparts to help manage team meetings and automate meeting minutes generation/distribution.
- Interface augmentation created new commands for SP user interface to perform tasks such as e-mail document, find user, etc.
Used: C#, MOSS 2007, Telerik web controls
Atlanta
.Net Architect/Developer
Confidential
Responsibilities:
- Responsible for all aspects of the application development lifecycle. Gathered and analyzed requirements. Designed, developed, tested and deployed web - based systems. Use of the Agile development methodology.
- C#.Net (1.1 & 2.0) n-tier web app - Over the course of 18 months I designed, implemented, tested and supported this application. This involved everything from specifications to front-end java script, stored procedures to business objects etc. Heavy use of the Agile methodology meant that large-scale changes were relatively painless to implement. Adding audit trails and periodic analysis to the DAL took only 1 week. Upgrading to .Net 2.0 took 8 hours, replacing the entire UI took 2 weeks, etc.
- SharePoint 2007 Administration/development - I developed in-house tools and both the Internet and extranet portions of their MOSS 2007 installation.
- .NET CE - I wrote an application for a palm pilot to communicate with a central server using TCP/IP over a wireless network.
- J2EE security assessment - I performed an on-site security assessment for a global corporation.
- J2EE development - Front-end programming using Struts.
- C#.Net (2.0) n-tier web app - Small application for use by US Army recruiters.
Used: C#, Agile, Telerik web controls, SQL Server 2005, J2EE (JBOSS), Struts
Texas
.Net Architect/Data Mining and Massaging
Confidential
Responsibilities:
- Part of a team hired by telecom companies to find billing errors and to optimize their circuits. Designed a SQL database for the various forms of provisioning, tariff, and billing data.
- SQL Server Designed schema and wrote SQL scripts to produce reports showing billing errors and circuit layout.
- Tool Development The data we received from telecom companies was usually very messy so tools were designed for massaging the data prior to import.
- Web Development ASPX pages created to allow distributed team to upload data.
Used: SQL Server 200, C#
San Jose, California
.net Architect/Data Mining and Massaging
Confidential
Responsibilities:
- Different team, same job as Marconi.
C++ Architect/Developer
Confidential
Responsibilities:
- I worked with VP to design and develop the latest incarnation of their main marketing reporting tool. I have worked on this product line since its inception in 1996. Created ActiveX controls and DLLs for UI and database access.
- Requirements/Design Worked extensively with VP to gather requirements and produce formal design.
- Development This program was a standard MFC MDI app. to display various marketing data in one central application. Spoke extensively with the client to fully expand their requirements specifications and was able to suggest enhancements and new features that their customers find very useful.
- Utilities wrote utilities for loading their data to allow them to produce surveys more rapidly for their clients.
Used: MFC/C++, ActiveX
Atlanta
C++ Architect/Developer
Confidential
Responsibilities:
- Designed, implemented, and tested software to drive automated CD burners. The project involved heavy use of DCOM and ATL with multiple threads to construct a client/server architecture that allowed monitoring of jobs from multiple workstations. The server was responsible for database access/updates and communication with hardware. The data was stored in an Access database. The thin client was written in VB.
Used: C++/MFC (1.5 6.0), VB (2.0 4.0), DAO, DCOM, ATL, Client - Server architecture, Multi-threading
Atlanta
Database Troubleshooting
Confidential
Responsibilities:
- Experience with SQL Server 2000, stored procedures, triggers and hand - building complex queries. Technical Support for product line.
Used: SQL Server 2000 stored procedures, triggers, custom scripts.
Atlanta
C++/ASP Developer
Confidential
Responsibilities:
- Programming COM objects in VC++ 6 and VB 6 for a web app. I also wrote the VB and J Script for the server and client side processing. These objects worked with IIS, ADODB, and MTS. In - depth experience with SQL Server building tables and queries.
Used: C++, ASP/HTML, ADODB, IIS, MTS, SQL Server 2000, VB, J Script
Atlanta
C++ Developer
Confidential
Responsibilities:
- Programming in Visual C++ 5.0 and Marcam s proprietary framework. Produced objects for integration with existing app. Worked through design to implementation of business objects and UI. Created a rules object to govern a user s interaction with various aspects of the system. I designed both the underlying class structure and the UI. Served as product expert and internal technical support for team.
Used: C++, MFC 5.0
C++ Developer
Confidential
Responsibilities:
- Responsible for full life - cycle of two products as well as helping out with several other projects.
- Data Mining Application Created thick client to show correlations between various sets of marketing data. Used my knowledge of both MFC and assembly to create an algorithm that is significantly faster than the original design plan. My method generated all possible valid combinations of a dataset consisting of 28,000 transactions and over 200 variables in less than 1 second. Also took advantage of multi-threading to allow several mining operations to run concurrently and still allow for a responsive UI.
- Marketing Data Display Application Worked with IMS s partner, MMI, to produce application for showing marketing data in several different types of charts.
- Utilities Wrote a new DLL to facilitate access to their proprietary database. This DLL significantly reduced the effort required by each developer as the same databases were used for all their applications and it is now a part of all their new products.
Used: C++, MFC 4.0, ActiveX
C++ Developer
Confidential
Responsibilities:
- Helped produce Sophos new anti - virus suite. Completed Windows 95 front end single-handed. Extensive work also done on NT product which involved added Client/Server features using RPC and multiple threads. Also gained experience in virus disassembly/analysis to identify a way to recognize/nullify a virus' payload.
Used: C++, MFC 4.0