Resume, Rodney Vinyard, *** Lucky Hill Rd, West Chester, PA 19382
Phone/Text: 973-***-**** ad41z6@r.postjobfree.com
Senior, Hands-On, Test Driven Software Development, Hard-Core Coder
25+ years pro, US Citizen, 2023 US Government Secret Clearance
AWS, 2 months, Azure 1 Year, Cloud Foundry 3 years
Microservices, .NET Core 4 years, MVC 5 years,
WebForms 10 years, WinForms 20 years, Powershell 5 years, Blazor 6 weeks.
C# 19 years, VB.NET 19 years, Python 2 years, Java / Bean Shell 5 months
Power Apps, 4 months, VBA 8 years, Excel Automation 15 Years
Database Developer: SQL Server 27 years, Oracle 8 years, Vertica 6 months
SailPoint 5 months
Spark & Databricks & Notebooks 2 months
Bachelor of Science, Rutgers College of Engineering
Engineering Club President
Seeking work from home, no hybrid hands on, individual contributor,
software/database designer/developer job, maybe architect, not manager.
Inventive, focused, software designer, hard-core coder, solution provider.
Effective communicator & writer, who makes teams better & clients happier.
Click here to see Rodney's LinkedIn Profile
Click here to visit Rodney's Git Hub
Skills
ASP.NET Core Web API, REST microservices, Google Cloud, AWS,
Blazor, MVC, AJAX, Razor, DHTML, CSS, WinForms, Console
C#, VB.NET, LINQ, Python, Flask, Databricks, Spark, Java, Java Script
SQL Server, Oracle, Teradata, Vertica, SSIS, Entity Framework, ADO.NET
SSRS, Crystal Reports, Excel, ZedGraph, Corda, Infragistics, DevExpress
Azure DevOps, GIT, BitBucket, Subversion, Perforce/P4V, TFS, SourceSafe
Work Experience:
Software Developer .NET Core 6.0 Web API, Bootstrap & jQuery UI, SQL Server 2022; Dataverse, Power Apps, Power Pages, Power Automate – https://dynamotechnologies.com remote, 1/24 – current
Dynamo Technologies is the prime contractor with the US Dept of Agriculture (USDA) Forest Service. I was background checked and obtained a PIV Access Card and USDA Laptop PC (GFE).
Lead developer for the https://plantatree.fs.usda.gov/ web site.
I used Visual Studio 2022 and SSMS & SQL Server Express to run the site and database locally.
I produced a GitHub branch for a JQuery Version Upgrade via packages.json and npm install and merged the branch to Development & Staging.
I learned the CI/CD pipeline for GitHub: branch -> merge -> AWS -> Development -> Staging -> Production
Lead developer for the Emergency Medical Services Power Apps, Power Pages, Power Automate & Dataverse.
Owned the DevOps SDLC for Power Apps, Power Pages, Power Automate & Dataverse, Forms, UIs, Workflows and Processes.
I fixed problems in Dataverse table columns, forms, HTML, JavaScript & Liquid Script changes.
Fixed and migrated a Power Automate Cloud Flow
Software Developer/Architect - Blazor, .NET Core 6.0 Web API, Asp.NET Web Forms, ADO.NET, SQL Server 2022, Azure DevOps – https://www.gritterfrancona.com/ remote, 8/23 – 12/23
Gritter Francona is a prime contractor for a project for the US Government Veterans Administration (VA). I was background checked and obtained a PIV Access Card and VA Laptop PC (GFE).
I spent the first 6 weeks, prototyping Power Apps, Blazor, .NET Core 6.0 Web API, with Swagger, Nswag. VS 2022 & VS Code, via a deep dive tutorial: https://subscription.packtpub.com/video/web-development/978**********
Created an Azure DevOps Git Repo as a Demo, and repaired a legacy, on premises, Windows Server Git Repo for an existing code base.
Used Azure DevOps Boards, SSMS & VS2019 to make changes to an ASP.NET Web Forms, ADO.NET 2022 ASP.NET Web site and SQL Server database.
Invented a data driven Progress Bar for an ASP.NET Web User Control. The prototype database table below, is all Boolean columns, for yes/no, Green/Red, but you can use other data types, for more elaborate progress decisions and bar colors, in the C# middleware code, as shown below:
Learned javascript/ajax driven popup forms, and text box character counters.
Schooled the developer manager on how to correct his restrictive text boxes to allow any characters into Nvarchars throughout the database storage and thru the reporting scafolding, very straight forward to retro-fit.
Noticed that their error handling only informs poor user, so offered an easy, to retro-fit, auto-email of .NET Exceptions, on https://stackoverflow.com/questions/41626307/how-to-continue-page-display-when-catching-page-error-in-asp-net sends email:
Azure, Java, SailPoint, SQL Server Developer – http://zigabyte.com/ remote, 1/23 – 6/23
Zigabyte is a subcontractor for the Identity, Credential and Access Management project for the Department of Defense, Defense Information Systems Agency (DISA).
I was background checked and obtained a transferable US Government Secret Clearance and Government Common Access Card (CAC).
Jira Item 1 – I translated a Windows PowerShell script, to Java that HTTP Posts with an SSL Certificate, receives & parses XML fields to a SailPoint client. I added a separate test driver class, to run unit and integration tests.
Jira Item 2 – I created a SailPoint Rule in Java Bean Shell Script that
1.Reads Java SQL Server view records into Resultsets.
2.Creates new SailPoint Workgroups named by SQL record fields.
3.Retrieves SailPoint Identity.Person via SQL EmployeeId.
4.Assigns new SailPoint Workgroup, to SailPoint Identity.Person.
5.Calls SQL Server Stored Proc, to update SQL database.
6.Calls my 3 new SailPoint Rule libraries for reusable 1) Logging, 2) SailPoint Application Configuration JSON Parsing, and 3) SailPoint Identity.Person
Updated Agile Jira Work Items, and operated Java Eclipse IDE, SailPoint IDE and SQL Server Management Studio (SSMS) tools in an Azure Windows Virtual Machine.
C#, SQL Server Developer – http://echo.com/ remote, 11/2022 – 12/2022
Created Subversion (SVN) Branches to checkout C# Applications, to get clean builds, for code changes and Unit/Integration Test additions and runs.
Migrated some database objects from an Old SQL Server Database to a new Target Database.
1.Created a SQL Script to populate an empty sandbox Target database with Legacy Objects and New Refactored Objects.
2.Managed everything in a Visual Studio Database Project & Subversion (SVN).
3.Refactored the “flat”, Non-Normalized configuration tables, shown below.
4.Tested to verify that the Non-Normalized and Normalized stored procedures result identically.
Azure Databricks Architect & Developer – https://centricconsulting.com/ remote, 9/26/22 – 10/7/22 (2 weeks)
1.Produced a Detailed Design Document / Roadmap below.
2.Performed hands on, PySpark / Python, Azure Databricks Notebook development
3.Talked to people and updated Azure DevOps Cards in Daily 9am Zoom Scrums.
Databricks ETL Via Legacy Stored Procs - Detailed Design
Goal:
1.23 Databricks DataFrames need to be
a.Populated from CSV files in Azure Blob Containers.
b.Transformed with the same algorithm that 23 SQL Server #TempTables are transformed via Legacy SQL Server Stored Procedures SPROCs.
c.Downstreamed to an unspecified Azure Delta Lake instance.
Transform Algorithm Options:
1.Detailed Refactoring - Convert all micro SQL details of Legacy SQL Server Stored Procedures to PySpark, Not-SQL-Equivalents for DataFrames
2.Lift & Shift - Read 23 Azure Blob Container CSV Files into 23 Azure DataLake SQL Tables and run the SPROC SQL from Databricks Notebook SQL Cells
3.I was given 8 weeks to finish, produced detailed design in 2 weeks, I advised them that only Lift & Shift could be done in remaining 6 weeks.
Angular & Databricks Home Projects – 8/2022 – 9/2022
1.I spun up a Databricks Cluster on my Azure account
a.Created Azure Databricks Notebooks
b.Created Resilient Distributed Dataset,
c.Created DataFrame,
d.PySpark SQL queries.
e.looked at .NET for Spark
https://learn.microsoft.com/en-us/dotnet/spark/what-is-apache-spark-dotnet
2.Produced an Angular 13 and .NET Core 6.0 solution on my PC:
Federal Home Loan Bank of Cincinnati - Software Developer - Azure DevOps, C#, SQL Server 2016 – remote, 5/22 – 7/22
The Software Upgrade Team operates on all software applications, separate from the Individual Application Teams, for Feature and Bug enhancement Software Development Life Cycle, accross software applications.
The Software Upgrade Team operates in Azure DevOps for:
1.Agile Sprints
a.Daily Standups
b.Sprint Planning & Review
c.Feature Specification, Status Management, and Workflow
2.Source Code Branching, Merging, Pull Request Reviews
Performed Enhancements:
1.Added New Code Coverage Automated Tests for new Features in Test Driven Development (TDD) Visual Studio Framework.
2.Performed Azure DevOps .NET Application changes in VS2019 and VS2022:
1..NET Framework Version Upgrades, 4.7.2 -> 4.8
2.Log4Net conversion to Serilog,
a.NuGet package changes and C# changes
b.Database Project changes
3.Wiki document upgrades for Developer Application Setup Procedures
a.Development setup for IIS, RabbitMQ on Docker, databases, etc.
Infinera – Software Developer - C# and VB.NET, WinForms, SQL Server 2008, SSRS 2017 – remote, 8/2020 – 12/2021
Infinera manufactures electronic components, thru a very large SAP logistics operation to Receive and Ship. All manufacturing and test data is in dozens of SQL Server 2008 databases. I inherited a C# and VB.NET WinForms Workflow Application stored in Git-BitBucket, that connects the databases, so that technicians can get through their manufacturing & testing workflows.
New product lines often start, new features are often requested, so I delivered detailed specification documents & meetings, delivered SQL Server database configuration changes, and delivered One Click, software releases.
I added a new Release Notes document, available to Users in the UI, to illustrate application changes and who needed them, very helpful for new folks learning the learning the software, and for finding earlier ZedGraphs that were done, similar to some future ZedGraph that they will need to develop.
For the first 15 years, the Workflow Application had one set of databases on one network, with server names and credentials, hardwired throughout C# and VB.NET. A need arose to have the app run a second location, within a few weeks, so pretty quick, I had to conjure a way to un-hardwire the settings, to dynamically run from 2 sets of configured settings.
Created dozens of ZedGraphs, from fixed, parameterized SQL blocks, and from a dynamic, “pick tables and fields” UI. Engineering Level Users, are SQL savvy, so in dozens of places, I made the SQL available on the UI, next to the tabular or graphical results, that they can use to tweak & run their SQL
Converted six SSRS 2005 RDL files to VS2017 on SSRS 2017, one RDL with a new conditionally displayed field, in a new Perforce/P4V Workspace code repository.
Portland General Electric – AWS Architect & Developer - Portland, OR (work from home), 2/2021 – 3/2021
Led a group of legacy developers with no Amazon Web Services (AWS) Experience.
Discussed AWS Development strategies EC3 vs Lambda, and settled on a Lambda and Step Functions Stae Machine development strategy.
Assigned Lambda tasks for
o2 Factor Authentication with a vendor
oJSON to XML Transforms
ofile drop to sFTP for PeopleSoft.
Project Management Institute – Software Developer - ASP.NET Core Web API MVC, Python, Google, Microsoft.Graph, Microsoft 365, Azure, microservices, WinForms, C#, SQL Server, JSON, GIT, Newtown Square, PA, 12/19 – 10/20
With Visual Studio Code,
produced a Python Flask RESTful microservice
othat wraps a legacy Python machine learning process
othat runs in a Docker Linux container
With Visual Studio 2019,
produced ASP.NET Core 3.1 Web API RESTful microservices on Azure
othat consume Google Places and Geocode microservices
oand returns the JSON to the Azure caller
produced a .Net Framework 4.5.2 DLL
othat consumes my Azure microservices above.
oThe DLL is consumed by SSIS for database address correction.
oThe DLL is consumed by my WinForms Demo Test Harness.
produced a .Net Framework 4.5.2 WinForms test harness, that lets a user
oenter any global address into my DLL
oreceive all of my DLL and Web API JSON result data
oread addresses from UI, Excel, CSV or SQL Server
owrite Google corrected addresses to UI, Excel, CSV or SQL Server, multi-threaded or not
connected a local Microsoft.Graph application to Azure Active Directory & SharePoint 365:
oCreated a SharePoint 365 Site
Name = rodneyworld.sharepoint.com
Via Microsoft user: ad41z6@r.postjobfree.com
oCreated a .NET Core Console App
oConnected rodneyworld.sharepoint.com to Azure Active Directory
oConnected .NET Core Console App to Azure Active Directory
o.NET Core Console App can read and write the rodneyworld.sharepoint.com folder contents, as shown below:
– JP Morgan Chase Software Developer - ASP.NET Core Web API MVC, microservices, Google Cloud, Cloud Foundry, WinForms, C#, VB.NET, SQL Server, Teradata, Oracle, JSON, Erwin, Excel, API, Subversion, Bitbucket, GIT Wilmington DE, 4/17 – 4/20
Produced ASP.NET Core 2.0 Web API RESTful microservices
microservices that run on a schedule to read SQL Server Data.
microservices that deliver the data as HTML in SMTP Email.
Used Cloud Foundry to push-publish microservices to the JP Morgan Chase GAIA cloud.
Produced .NET Core 3.1 Console Application
that reads data from Ab Initio, Oracle & Teradata, that cannot be easily JOINed.
and bulk loads the data into a SQL Server where it can be easily JOINed.
Took ownership of a C#, VB.NET, WinForms application that standardizes the workflow, analysis & approvals of Erwin Models across business units and teams.
Took command as DBA, and designed the SQL Server database
Wrote the ASP.NET Core Web API and C# Interfaces to parse Teradata, Oracle, and Ab Initio Data into my new SQL Server Database for data that could not previously be joined.
Produced WinForms, consoles, shared components, SQL Server stored procedures & objects.
Erwin Automation: Data Transformation, Erwin SCAPI, Erwin REST API, ModelMart, TreeView checkbox granulation and filtering of Erwin Entities & Attributes
APIs: Sharepoint, Excel, Zip, Subversion, WebRequest, JSON
Collaboration: SharePoint, application release notes, user guides, Bitbucket.
Mitigated Excel and Erwin COM Object problems, to reduce memory leaks.
Wrote complex SQL Server stored procedures that accept ADO.NET DataTable arguments via user-defined, database table types, to filter data via SQL JOINs to the table arguments: