History
Architecting Solutions, Writing Code, Enabling The Team
I work on a team that provides presales and post sales technical support to GitLab customers. My areas of technical specialty are Infrastructure as Code, AWS, .NET Core, CI/CD Automation. My background in explaining technical topics through visual narrative is used extensively when creating enablement collateral such as webinars. My passion for creating working examples is applied to teaching complex configurations using GitLab groups, repositories and CI/CD automation workflows.
I work on a team that provides presales and post sales technical support to GitLab customers. My areas of technical specialty are Infrastructure as Code, AWS, .NET Core, CI/CD Automation. My background in explaining technical topics through visual narrative is used extensively when creating enablement collateral such as webinars. My passion for creating working examples is applied to teaching complex configurations using GitLab groups, repositories and CI/CD automation workflows.
- Customers
- Demonstrate product features relevant to customer's scenario.
- Customer collaboration meetings to work through engineering challenges and technical problems.
- Conduct Proof of Value / Proof of Concept with customers.
- Collateral
- Guided Explorations - multi-group, multi-repo, working examples with documentation for enabling GitLab team members, customers and partners.
- Enablement Webinars and videos on cross cutting functionality.
- Code
- Build open source automation tools for general customer usage.
- Work up code and complex configuration to handle customer requirements.
- Community
- Speaking at community conferences and GitLab live and virtual events.
- Social media marketing through Linked-in and Twitter.
- Sales Methods
- Devised an approach for conceptualizing customer technical information to identify the challenges that GitLab can help with and to serve as a long term store of this knowledge for hand off from pre to post sales.
Architecting Solutions, Writing Code, Managing Work
The DevOps Tooling team that my team is a part of is tasked with enabling developers through modern, agile-enabling, cloud-native, DevOps-native CI and CD tooling for Infor's many SaaS development teams. We must also set the organizational pace for the use of DevOps and agile methods and technologies in building this tooling.
My team and product leadership activities are additional to all the technical skill requirements noted in my previous role.
In a given week I spend 65-70% of my time in technical designing and coding and the remainder in technology, team and work management.
The DevOps Tooling team that my team is a part of is tasked with enabling developers through modern, agile-enabling, cloud-native, DevOps-native CI and CD tooling for Infor's many SaaS development teams. We must also set the organizational pace for the use of DevOps and agile methods and technologies in building this tooling.
My team and product leadership activities are additional to all the technical skill requirements noted in my previous role.
In a given week I spend 65-70% of my time in technical designing and coding and the remainder in technology, team and work management.
- Technical Architecture and Coding
- Developed internal tooling team tooling:
- Scaffoldable template for IaC as a Service offering for DevOps Agents Deployment Automation for both Windows and Linux.
- Scaffoldable, extensible template framework for rapid training / test harness reuse / initial environment deployment using internal automation tool similar to Terraform.
- Devised coded refactor of IaC as a Service offering for highly shared security and DevOps agents.
- Reusability design decoupled automation logic layer from a single internal automation technology (similar to Terraform) to allow the automation to be used with or without the internal tooling or with any other tooling => See Design Visual.
- Dramatic improvements in deployment automation in areas of reusability, logging, self-monitoring, self-troubleshooting for these agents (e.g. Sumologic, TrendMicro, Rapid7, CloudHealth)
- Maintain Bash hardening framework for Linux CIS Benchmarks.
- Automation code maintenance and refactoring on all team solutions in PowerShell, Bash, CloudFormation and orchestration technologies.
- Craft automation to run under Jenkins, Gitlab CI, AWS CloudFormation, AWS CodeDeploy and AWS Simple System Management (SSM).
- Automation code for internal highly available Gitlab implementation using containers (AWS ECS), PaaS file system (AWS EFS) and PaaS Database (AWS RDS PostgreSQL).
- Escalation Engineer for Windows (Level 3), Internal Gitlab as a Service (Level 2).
- Provide engineering advisement, troubleshooting and support for Development Environment as a Service offering that includes an AWS Account, an AD Domain and custom CI / CD automation to support SaaS development teams refactoring their applications to a true multi-tenant Cloud architecture.
- Developed internal tooling team tooling:
- Team Lead & Scrum Master:
- Line Management and Scrum Master of a small team responsible for internal tooling products which are managed in an automated DevOps release management process. The team does it's own support for the managed products - so we directly manage both self-service documentation and support engineer documentation.
- Created and implemented "Solution Leads" delegation framework for scrum epics and product/service release cycles. This helps ensure ownership for multi-story, multi-sprint items and builds leadership in every team member.
- Active experimentation with principles of Multipliers: How the Best Leaders Make Everyone Smarter.
- Created innovated work status dashboard with drill down. Usable as presentation as well as emailable for self-navigation by management => See Visual.
- Created team level "Customer Value Log" to focus team on constant customer value delivery and to give them accolades for their efforts as well as demonstrate to customers we are solidly focused on their interests.
- Product & Service Management:
- Retrospective Wardley Value Chain Mapping of OS AMI Templates Product => See Visual.
- Service Management of Enterprise Source Code Management as a Service based on an HA deployment of Gitlab (99% self-service for developers).
- Product Management of Windows and Linux OS AMI Templates as a Service.
- Product Management of Developer Kickstart Templates for accelerating self-serve deployment of CI / CD automation tooling. Strong security focus with many "secure by default" features. Templates include Gitlab Runner, Nexus Repository OSS, Jenkins CI and AWS ECS.
- Service Management of Infrastructure as Code as a Service for deployment automation for security and DevOps tooling agents to be installed on every instance.
- Initiate, draw consensus and drive to publishing of key service management policies.
- Cross-Team Technical Leadership / Collaboration / Mentoring / Thought Leadership
- Initiated and collaborated on cross-team Accelerated (Supported) Platforms Policy
- Strong collaboration with security team to ensure existing and new solutions are managed securely. Maintain Linux hardening as IaC.
- Fostered Internal Shared Source for DevOps Tooling - initiated and maintain momentum of automation tooling that is voluntarily maintained by application developer customers. Includes product management oversight for: (a) solution security, (b) truly reusable tooling (toolization) and (c) publicity of resultant projects to other development teams.
- Initiated / Co-Facilitated Book Discussion Group Among Cross-Team Peers: Multipliers: How the Best Leaders Make Everyone Smarter
DevOps Automation Architecture, Coding & Mentoring
- Virtual Environments: AWS, Docker, VirtualBox.
- Tools: PowerShell, CloudFormation, AWS CodeDeploy, S3, Stash (git), Jira, YAML, In-House Orchestration Tooling, Jenkins (Windows & Linux), Gitlab CE.
- Level 3 Escalation Debugging and Engineering for Windows, Linux and Cloud Native Applications and Automation.
- Windows Image Template AMI CI Automation that uses one code base but works in straight PowerShell and under Jenkins CI to build 5 different Windows Server images (2012 R2 GUI and Core, 2016 GUI, Core and Container Host) including over 50 automated QA Pester tests.
- Standardized tooling for Windows domain joining that provides consistent, error managed, version immutable code to be used by multiple application teams across all multi-tenant cloud migration efforts.
- Technology and skills advocacy for PowerShell and Windows Automation to application teams.
- Scrum Master for multiple, simultaneous agile DevOps projects.
- Site reliability engineering (SRE) and DevOps automation for internal SCM as a Service based on a private, highly available GitLab CE implementation on AWS Linux containers, ECS, EFS (AWS PaaS file system) and ProgreSQL PaaS.
- Architect / Scrum master / developer for OS Platforms to provided shared, value-added OS images for use by all teams deploying software to the Infor multi-tenant cloud. Includes: Windows Server 2012 R2 / 2016 Full & Core, Amazon Linux, Amazon Linux 2 and CentOS 6 & 7.
- Mentor for the IT Works immersion program for opportunity youth.
- Lunch and learn lectures on various career development topics.
- Leveraged prior experience as an instructional designer.
- Decide and outline content coverage - including instruction design principles.
- Create slides and demos and recorded and edited training videos.
- Creation of assessment questions.
- Course: Securing AWS Using CIS Foundations Benchmark Security Standard
- Course: Chocolatey NuGet Essentials for Automation Pros
DevOps Automation Architecture, Coding & Mentoring
- Hypervisors: AWS, VirtualBox, HyperV, Dev Workstations on Real Hardware.
- Tools: Packer, Chef/Ruby, PowerShell/DSC, Packer, TeamCity, Octopus, Visual Studio, Chocolatey, NuGet, Nexus Repository, ProGet Repository, AWS EC2, VPC.
- Automation of developer workstation environment using advanced Chocolatey NuGet packages so that identical automation could be shared to build CI servers and developer workstations and production end nodes with any of PowerShell, Packer or Chef. Reduction of Dev workstation build from 9 manual hours to 1 and 2 days of waiting for environment to 1 hour.
- Initiated, designed, prototyped and deployed shared NuGet services via self-hosted Nexus Repository server deployed in AWS - including support for secure package transfer via SSL, Chocolatey and CI NuGet packages, secure internet egress for global sharing of proprietary packages. Contribution of packages back to open source community. Enabled automated builds in any AWS VPC, Virtual Box or real hardware anywhere on the planet. Configured TeamCity to push and pull packages from repository. Full proof of concept on ProGet as part of requirements gathering. Proof of concept stood up for Nexus on both Windows and Linux.
- Design prototyping and deployment of secure AWS segregated environments for deploying Continuous Delivery automation services into production environment using AWS security best practices. Leveraged AWS Accounts, VPCs, VPC Peering, Subnets, AWS Security Groups (Extensive), AWS Security Policies, AWS Security Roles, VPN configuration and Network ACLs as appropriate. Use of visualops.io for rapid scenario testing. Implementation of Least Privilege Security Built-in, Monitoring Built-In, Backup, Self-Service, Multifactor Authentication (MFA) for IAM and VPN.
- Maintained and refactored Packer build configuration to streamline around packaging, allow selection of builds from on packer config file, better credential security and ensure proper operation via scripted kick-off or under TeamCity pipeline. Created least-privilege role for TeamCity to accomplish Packer builds with least-privileges which are assigned to an instance role (no credentials storage).
- Maintenance of TeamCity infrastructure automation builds including AWS orchestration from TeamCity.
- Updated monitoring scripts for Windows (abandoned by Amazon). Enhanced to submit metrics for all existing disks (rather than having know what disks are present) and created a Chocolatey NuGet package to automatically deploy and schedule disk metrics collection. One command line and the machine starts submitting disk utilization metrics.
- To foster a knowledge sharing community among Devs, Ops and Engineering:
- Conducted Lunch and Learns sessions,
- Initiated use of yammer and actively posted to information groups,
- Initial setup of team intranet website including recordings of Lunch and Learn sessions and how to section.
- Initiated creation of reusable, re-settable VM test templates for devs and operations along with getting started instructions on team site and along side VM images. Images created for Windows 8.1, 10, Server 2012 R2, Server 2016 TP5 w/ Containers, Nano Server TP5 w/ Containers, CentOS Linux 7 w/ Docker Containers.
- Troubleshooting of production systems for performance, advisement on application design and auditing of security best practices.
- Full participation in all aspects of Agile management of our team's work, including sprint planning, sprint demos, sprint retrospectives, sprint tracking (in Rally Dev).
- Experimentation and learning on Windows Containers, Nano Server, Server 2016 and Docker Containers on Linux.
- All work done as a member of a distributed team.
- Achieved AWS Certified Solutions Architect Associate.
On an as needed basis, I provide brainstorming and perspectives to Qompat's Executive team in several focus areas:
- Application of Lean Startup (Agile for building businesses) principles to new products and market possibilities.
- Business Model Strategy - application of principles of lean build-out, running lean, problem/solution fit and product/market fit and lean canvas to new business ideas.
- Micro-road mapping of technical strategy for enabling a lean startup to scale with growth - identifying sufficiently viable implementation of technology solutions while also identifying possible next level implementations and what triggers (pain levels) should be considered due justification for moving to the next level.
- Ideation contributor to design of dynamic equity program based on Slicing Pie.
- Cloud computing, design, product and vendor selection.
- DevOps models and implementation.
- Windows software deployment automation - historical market behavior and futures.
DevOps Automation Architecture and Coding
- Design and code DevOps infrastructure automation framework for SaaS solution server builds on Server 2008 R2 and 2012 R2 using desired state coding principles and approaches.
- Structured PowerShell Code: structured function libraries as includes and PS modules which follow PowerShell best practices for discoverability, self-documentation and advanced capabilities like pipelining.
- Architecture organizes installation artifacts into “Configuration Components” which are group into “Server Roles" that can be targeted at specific servers.
- Self-describing, self-specifying artifacts allow technicians to build installable components with no PowerShell coding.
- Remoting from TFS build server to automate end node builds.
- Lightweight framework code is easily extensible to accommodate new types of installation artifacts as new requirements are discovered.
- Artifacts can be specified in JSON which facilitates handover of configuration data from database systems.
- Automation framework includes comprehensive logging, error handling, remoting and best practices for discoverable functionality for developers who have to update or enhance it in the future.
DevOps Automation Architecture and Coding
- DevOps automation architecture supporting tiers, layers, artifacts and environments for single and multi-machine builds.
- Lightweight, serverless solution using Chocolatey Nuget, BoxStarter, PowerShell DSC and git.
- Full application stack install automation and configuration including PowerShell 5, SQL server, IIS setup and custom .NET software installation runs securely from web on machine to support distributed Dev / Test team.
- Broad platform support to work on Server 2012 R2 and Server 2008 R2 running on VirtualBox, VMWare, Hyper-V, Skytap and Azure.
- Single page Design "Conceptual Architecture: Infrastructure Build Automation" in visuals section: http://www.darwinsanoy.com/visuals.html
- Creation of community packages for Chocolatey NuGet including SQL Express, SQL Management Studio, PowerShell 5, Nektra Spy Studio, Rohitab API Monitor and others that are visible on my on chocolatey profile: https://chocolatey.org/profiles/Darwin_CSIWindowscom.
Lead Automation Engineer: PowerShell Automation Framework / Function Library
- 5500 line PowerShell automation framework coded to run on 5 versions of Windows, running 2 versions of PowerShell, under 32-bit or 64-bit PowerShell, on 16,000 machines in 17 OS MUI languages.
- Replaced 2000 line legacy VBScript automation framework with significant enhancements.
- PowerShell comment based help for self-documentation and "dev mode" for discoverability by other automation engineers.
- More details and walkthrough video in portfolio: http://darwinsanoy.com/portfolio.html#Portfolio_PSHTemplate
- Used "Lean Engineering" principles to maximize flexibility for deployment via any mechanism (SCCM, GPO, Local Schedulers), minimize coding required to add "locations to encrypt" and simple data point collection via SCCM inventory for compliance reporting.
- Designed new solution to run in tandem with old one to allow easy piloting and minimize complexity for production deployment.
- Used scrum and sprints to gain agile SDLC benefits for project.
- Single package design specification on "Visuals" resume page: http://www.darwinsanoy.com/visuals.html
- Improved company-wide PowerShell awareness, competency and adoption through monthly code share meetup, monthly coding clinic meetup, internal blogging on Yammer, curating shared resources, template publishing and by being an easily engaged one-on-one mentor.
- More details, including kick off meeting video, in portfolio: http://darwinsanoy.com/portfolio.html#Portfolio_Advocacy
- Details also in Windows IT Pro article: http://windowsitpro.com/powershell-scripting/be-powershell-champion
- Created and posted to Yammer group titled "DevOps: End to End Agility". Posted many free resources for technical staff and managers.
- Fostered cross team collaborative relationships with 7 other IT and business aligned teams.
- Implemented and administered scrum "lite" for 3 projects. I was the scrum master and entire development team, but applied sprints to managing stakeholder requirements and meetings.
- Successfully improved team collaboration and relationship with DEV team via DevOps collaborations.
- Reduced time required to support agile dev team from 30 hours to 7 hours.
- Aligned deployment automation with development team's adoption of "Agile" methodologies.
- Accelerated availability of VMs for DEV-Test cycle, partnered with scrum master to give access to deployment automation code and gain more testing of it in return.
- Repeated 98% success rate on overnight deployment of package to over 2000 customer service machines.
- Tool creation including: [a] recognizing the need, [b] coding and testing the solution, [c] promoting it's use, [d] creating built-in metrics to track used.
- Created utilities for: [a] Office 365 install log analysis, [b] procmon wizard to allow non-technical users to create procmon traces, [c] backend Lync IM account migration, [d] clean removal of Office 2007, [e] local/remote cleanup of temporary files, [f] links that allow globally distributed users to submit logs to a central location, [g] tool to show the list of installed software exactly as the PowerShell deployment automation framework sees it and export identifying information for any given software package, [h] script to open software center (for sending in user communications).
- Use of advanced tools for troubleshooting packaging and production problems, including: Procexp (Process Explorer) Procmon (Process Monitor), Rohitab API Monitor and Nektra Spy Studio.
- Leveraged in-depth understanding of windows registry, file system structures, WMI, WOW64 (64-bit Windows) and Windows process internals for deployment automation and troubleshoot production application problems.
- Leveraged knowledge of AD/GPO, DNS, networking, to troubleshoot packaging and application problems.
- Rigorous focus on evidence-based fact finding and log analysis led to discovering three independent paths by which a regular user could reboot production Citrix servers.
- Specific identification of the path by which a user could have unintentionally performed the server reboot.
- Follow up and immediate patch generation for SCCM failures that could be handled in automation code.
- More details in portfolio: http://www.darwinsanoy.com/portfolio.html#RootCause_ServerReboot.
- Improved work throughput implementing next level of Getting Things Done (GTD) using My Life Organized and toggl.com time tracking.
- Applied principles and tools of Agile, Lean and DevOps for my projects and work.
- Used highly visual slide deck to help IT managers understand how technical issues posed a risk to IT agility when considering virtualization of large / complex / plug-in rich applications. Leveraged visual single page designs and architectures to Examples in visuals section: http://www.darwinsanoy.com/visuals.html
Principle Consultant, Subject Matter Expert, Trainer, Entrepreneur
2009 to 2013, CSI-Windows.com
- SME Speaking Engagements on Windows Automation and DevOps Topics
Speaking History: http://www.darwinsanoy.com/work.html#ConferenceSpeaking
- Authored eBook - Deploying and Supporting Applications on 64-bit Windows - See Amazon listing: http://www.amazon.com/Deploying-Supporting-Applications-64-bit-Windows-ebook/dp/B0098P9Z22
- Taught hundreds of students very technical classes. Class listing here: http://csi-windows.com/courses
- Instructional Design - built and revised course materials to conform to best practice for student learning.
- Entrepreneurship / Product Management - responding to the need for IT Pros to fortify their debugging and analysis skills, I built the CSI-Windows.com site, brand and courses.
- Application Packaging & Virtualization – Windows 7 / Windows Installer 5, InstallShield AdminStudio, Wise Package Studio, Orca, App-V Sequencer.
- Windows 7 Application Testing – VMware, Process Monitor, Process Explorer, AppVerifier, AppCompat, autoruns, DllRegView.
- Windows 7 Application Compatibility & Internals – Passed ACT/AppCompat ACF Exam, Completed ACT/AppCompat Partner Training, UAC, IEPM, UAC Virtualization, MSI 5, Integrity Levels.
- Cloud & Virtualization Technologies – VMWare Workstation, VMWare Server, App-V, Linux Server Virtualization, Linux in Rackspace Cloud, Azure Cloud and Skytap Cloud.
- Developed Many Advanced Scripts in .CMD/.BAT, VBScript (.VBS) and PowerShell (.PS1) – Expert in Windows Shell (.BAT/.CMD), VBScript and PowerShell including use of WMI, registry, permissions, file processing as well as creating templates and function libraries. Some examples are here: http://csi-windows.com/toolkit
- Operating Systems & Internals – Windows 7, Windows Vista, Windows XP, Windows Internals with a focus on application operations.
Education and Certification
References & Recommendations
Please see my References