Ryan McHenry

Ryan McHenry

Application Developer at Microsoft

Followers of Ryan McHenry467 followers
location of Ryan McHenryGreater Seattle Area

Connect with Ryan McHenry to Send Message

Connect

Connect with Ryan McHenry to Send Message

Connect
  • Timeline

  • About me

    Experienced full stack developer with a passion and expertise for building web experiences for everyone

  • Education

    • Western Washington University

      2002 - 2005
      Bachelor of Arts (B.A.) MIS
  • Experience

    • Volt Technical Resources

      Oct 2005 - May 2006
      Application Developer at Microsoft

      * Built a WinForms/SQL backend application to support the Plan Design group taxonomy planning and configuration data fed to downstream Worldwide Incentive Compensation systems. Improved previous manual Excel process and increased data accuracy.* Rebuilt Revenue Allocation website for Worldwide Incentive Compensation using ASP.Net and SQL Server. Enhanced the process for revenue dispute creation and management.* Wrote a web-based tool to query employee information from Active Directory using LDAP services from .NET. Show less

    • Microsoft

      May 2006 - now

      - Influenced, implemented and automated build and release processes reducing time to complete and increasing consistency- Mentored other engineers in feature design and implementation, software design patterns and practices, architecture and depth of technical skills- Lead for customer facing UI/UX and driving accessibility, code reuse through componentization and encapsulation, and delivering more delightful and streamlined experiences- Defining, implementing and maintaining engineering standards and processes to improve consistency and maintainability of code and resiliency of the product Show less - Drove the ReactNative player UI implementation by influencing and implementing reusable styling and components- Improved accessibility for the ReactNative player by ensuring more consistent element focus management, and handling missing gesture and announcement support- Resolved UI layout issues due to text localization, keyboard handling, screen area (ex. iPhone notch), content overflow and zoom- Implemented integration with the net promoter score survey in the ReactNative player- Mentored team members in UI technologies including JavaScript/TypeScript, HTML, CSS, React and ReactNative- Helped drive engineering and release processes within my immediate team as well as the larger PowerApps organization- Worked with the SharePoint team to integrate PowerApps into SharePoint lists- Contributed to performance and accessibility improvements, and debugging JavaScript environment inconsistencies across mobile platforms for the web player and Cordova player- Collaborated with others to enable PowerApps as a Windows Phone app Show less BOOTSTRAP* Created and contributed examples and code samples for the styleguide website documenting Microsoft style and customizations made to Bootstrap. Dynamically created scrollspy component based on markup. Dynamic theme switching for a live preview of a theme.* Implemented build automation to compile Sass and push the versioned CSS, JS and font files to Azure hosted storage using a NodeJS script.ACCESSIBILITY* Produced and presented content in several training sessions for the Accessibility Assessment 101 course.* Built automation framework around aXe accessibility checker using Selenium-Webdriver, MochaJS, PhantomJS, Mocha-PhantomJS and a custom NPM package I wrote (includes helpers for Selenium-Webdriver.* Wrote documentation for accessibility patterns and common issues for an internal Wiki.* Assisted the Global Careers Website team with accessibility issue remediation. Provided guidance on accessibility/ARIA implementation improvements and retrofitting the legacy code using a JavaScript plugin pattern. Created an example for an accessible table built using DIVs and proper ARIA attributes so the team could replace a nested table issue.* Ported the existing ASP.Net MVC shell components (navigation menu, footer, fat footer, app timeout, announcement, busy overlay, app offline and a drawer for navigation on mobile) to AngularJS directives.* Debugged ADAL JS login loop issue, coded a solution and worked with product group to get the bug on their backlog.* Built a proof of concept feedback jQuery plugin, modeled after the Bing.com feedback feature, and companion reporting web UI.* Served as a domain expert for web technologies and accessibility for the immediate organization. Consulted with various project teams on web technology choice, coding and accessibility practices, and remediation of issues related to the aforementioned. Show less BOOTSTRAP* Created a customized version of Twitter Bootstrap for MSIT to provide a consistent look and feel and Microsoft branding across IT web applications. Implemented configurable theming, accessible color contrast calculations, custom variations of existing components and an icon set based on Segoe UI Symbol.EMPLOYEE EXPERIENCE* Built a proof of concept responsive web app for aggregating information relevant to employees. Implemented a card manager and navigation provider in Angular. Utilized RequireJS to streamline dependency resolution.MS APPROVALS* Rebuilt the web UI for the Modern Day One initiative. Implemented responsive design principles and frameworks allowing for form factor adaptation.* Wrote an HTTP request manager factory for handling requests as views change. Wrote an alias resolver directive to enable populating an employee’s name by entering an alias.* Migrated the native Windows application to a hosted app model allowing the team to have one codebase instead of 3 (web, mobile app, desktop app) thereby reducing code maintenance and feature parity issues. This work is also highlighted as a Microsoft Showcase at http://www.microsoft.com/itshowcase/Article/Content/675.* Outlined the design integration strategy providing the vision and implementation/integration scenarios for the role within the engineering org.* Supported Connect release by implementing fit and finish styling and user experience. Show less CONNECT* Helped resolve web UI layout and accessibility issues on the Microsoft Performance Management tool.MS APPROVALS* Project initiative for centralizing approval processes across Microsoft. Built the web UI using WebAPI, HTML5/CSS3, CoffeeScript, Sass and AngularJS. Wrote custom filters, factories and directives for app.* Implemented build automation and deployment automation to drive consistency in build and deployment.* Built a Windows 8 companion app using WinJS. Implemented features on top of WinJS to allow it to behave more like AngularJS/Knockout like enabling declarative 2-way binding.APPVIEW* Project aimed at cataloging IT applications, the technologies used in the applications and application dependencies. Designed and coded a Windows service to monitor a drop directory, parse DGML files written to the directory and load the data to a graph database (Neo4J) after aggregating and grouping hierarchically using LINQPLANCAST* Project to facilitate financial planning and budgeting activities using Excel.* Designed and implemented solutions to enhance maintainability and functionality of the VSTO Excel add in.* Architected and developed Excel template generation (EPPlus and OpenXMLSDK) driven from configuration stored in SQL. Built POC WPF UI to manage configuration data. Template generation process reduced new template creation time from 3+ weeks to less than a day.* Plan/Lead release cycles and mentored junior team members on LINQ and regular expression usage.WORLDWIDE INCENTIVE COMPENSATION* Enhanced Revenue Dispute application to include metrics reports and a scorecard. Also modified Excel configuration points to use a third-party pure .Net Excel library.* Wrote a small .Net library to recursively search the Active Directory forest for a person or group and return the details of the entity if found. Show less * Rewrote Revenue Dispute application to enhance and update the UI and log, track and resolve international revenue disputes more effectively. Includes supporting documentation upload, central application configuration with Excel download/upload for configuration data and email notifications.* Constructed a web application (C#/ASP.Net/ASP.Net AJAX) interfacing with Microsoft Exchange Web Services to allow for the configuration and sending of bulk email messages. Validates aliases against Active Directory. Sends messages asynchronously server-side with the use of Web Services and multi-threading. Replaced an existing process that took days to process over 10,000 emails and reduced the processing time to less than 3 hours.* Built a tool to query Active Directory for personnel or security/distribution group information.* Developed a Windows gadget using xHTML, JavaScript and JQuery to bring compensation system status and open issues from SharePoint RSS feeds directly to the user’s desktop providing instant access and the up-to-date information via automated refresh.* Conceptualized and coded a dynamic modular application framework using .Net reflection and late binding. Show less * Developed end-to-end web and windows client application solutions to standardize and streamline business processes. Continually iterated and provided releases to the customer.* Designed both UI and underlying database for the applications using VB.Net/C#, Windows Forms, ASP.Net and SQL Server. Also included testing, debugging, deployment, maintenance and support.* Managed the flow of revenue and personnel data, intermediary processing of the data from upstream enterprise systems (MS Sales, FeedStore) and loading the transformed data to the world wide compensation tool (xCAT).* Reverse engineered, built a configuration interface and wrote a custom Windows service to automate a compensation system process (QuotaViewTemplates) which reduced the process completion duration from over 160 man hours per iteration to less than 5 hours per iteration.* Improved reporting from WinForms application by implementing multi-threaded exports to Excel via a COM interop component.* Data ETL using SSIS, regular expressions and stored procedures Show less

      • Senior Software Engineer (Microsoft Security - Defender Experts)

        Jul 2022 - now
      • Senior Software Engineer (Microsoft Managed Desktop)

        Sept 2019 - Jul 2022
      • Software Engineer 2 (Microsoft Managed Desktop)

        Sept 2018 - Aug 2019
      • Software Engineer 2 (PowerApps)

        Dec 2016 - Sept 2018
      • Software Engineer 2 (MSIT)

        Aug 2015 - Dec 2016
      • Designer 2 UX (MSIT)

        May 2014 - Aug 2015
      • Software Development Engineer 2 (IT)

        Jan 2010 - May 2014
      • Software Development Engineer 1

        Feb 2009 - Dec 2009
      • Data Analyst

        May 2006 - Jan 2009
  • Licenses & Certifications

    • Microsoft Certified Application Developer

      Jan 2007
    • Microsoft Certified Professional

      Jan 2007
    • Information Systems Analyst

      Institute for Certification of Computing Professionals
      May 2005
    • Website Management

      Western Washington University - Internet Studies Center (ISC)
      Jun 2004
    • Learning S.O.L.I.D. Programming Principles

      LinkedIn
      Nov 2021
      View certificate certificate
    • Career Essentials in Generative AI by Microsoft and LinkedIn

      Microsoft
      Jan 2024
      View certificate certificate