Matthew Lopez

Matthew Lopez

Power Platform Admin and Developer

Professional Summary

Certified Power Platform Administrator and Developer with a strong background in creating automations, developing custom apps, and managing enterprise IT environments. Proficient in Power Automate, Power BI, Power Apps, and ServiceNow, with additional expertise in PowerShell and Python scripting. Recognized for implementing solutions like the Teams Copilot chatbot and automating workflows that streamline operations. Promoted to admin for Power Platform due to leadership in driving technology adoption.

Technical Skills

Power Platform

  • Power Apps (Canvas & Model-Driven)
  • Power Automate (Cloud Flows & Desktop Flows)
  • Power BI
  • Power Platform Administration

Programming & Scripting

  • PowerShell
  • Python
  • Power Fx

IT Administration

  • Microsoft 365 Administration
  • Active Directory
  • ServiceNow
  • Windows/Linux Environments

Tools & Technologies

  • Teams Copilot
  • ITIL Framework
  • Workflow Automation
  • Data Visualization

Soft Skills

  • Problem Solving
  • Collaboration
  • Training and Technical Documentation
  • Troubleshooting (Software & Hardware)

Experience

Spencer Fane LLP

Power Platform Dev and Admin, IT Analyst | Denver Office/Remote

August 2022 – Present

  • Developed Power Automate workflows that improved operational efficiency across multiple departments by 30%.
  • Created both Model-Driven and Canvas Apps in Power Apps to streamline legal case management processes.
  • Implemented a Team's Copilot chatbot, enhancing collaboration and automation firm-wide.
  • Designed Power BI reports to deliver actionable insights into case progress and client billing.
  • Administered Power Platform environments, managing Security Roles and Business Units to maintain data integrity.
  • Provided ServiceNow coaching to optimize IT service workflows.

Hensel Phelps

Jr. Power Platform Dev, Help Desk | Greeley

January 2022 – August 2022

  • Created PowerApps tailored to project management and accounting needs.
  • Automated billing workflows using Power Automate, reducing processing time by 20%.
  • Troubleshoot Office 365, Active Directory, and accounting systems to ensure system reliability.
  • Assisted with ITIL-compliant ServiceNow implementations for process improvements.

Devswap.net

IT Mentorship, Help Desk | Greeley

November 2018 – January 2022

  • Managed Windows and Linux environments, maintaining uptime and security for small businesses.
  • Developed Python and PowerShell scripts to automate routine IT tasks, saving 10+ hours per week.
  • Performed Layer 1 to Layer 3 networking tasks, resolving connectivity issues for clients.
  • Trained mentees on IT fundamentals, fostering skills in troubleshooting and scripting.

Projects & Portfolio

Conditional Access Flow Visual

Conditional Access Location Flow (Power Automate)

Automated the process for managing conditional location access requests via SharePoint and Outlook.

Key Features & Logic
  • Triggered by SharePoint list item creation.
  • Sends approval emails with options (Accept/Deny).
  • Updates SharePoint lists based on approval status.
  • Manages start and end dates for access.
  • Includes email notifications for requestor and admins.
  • Utilizes delays for timed actions (e.g., policy application, access expiry).
  • Integrates with desktop flows for specific policy enforcement.
Power Automate SharePoint Approvals Desktop Flows
View Flow Logic
RTH Appeal Flow Visual

RTH Appeal Process Flow (Power Automate)

Streamlined the Request to Hire/Hold (RTH) appeal process with automated routing and database updates.

Key Features & Logic
  • Triggered by SharePoint list item creation for RTH appeals.
  • Converts HTML notes to plain text for notifications.
  • Uses a Switch control to handle different appeal reasons.
  • Auto-approves and executes SQL stored procedures for specific reasons.
  • Initiates a manual approval process for "Other" reasons.
  • Sends customized email notifications.
Power Automate SharePoint SQL Server Approvals
View Flow Logic
Location Application UI

Location Application (Power Fx)

Developed robust input validation and data submission logic for a location access Power App.

Code Snippet Highlights (Submit Button)
Sample location application Power FX code submit button: // Define the OnSelect property for Button1 If( // Check for non-default values, non-empty/null in the ComboBoxes, // valid StartDate >= Today(), and BOTH Start/End <= Today() + 31 UserNameDrop.Selected.DisplayName <> "none@example.com" && LocationChoice.Selected.Title <> "None" && !IsBlank(UserNameDrop.Selected.DisplayName) && !IsBlank(LocationChoice.Selected.Title) && StartDate.SelectedDate >= Today() && EndDate.SelectedDate >= StartDate.SelectedDate && StartDate.SelectedDate <= Today() + 31 && EndDate.SelectedDate <= Today() + 31, // ******************** PATCH IF VALID ******************** With( { // Patch data to the datasource patchResult: Patch( 'Conditional access location submits', Defaults('Conditional access location submits'), { Title: UserNameDrop.Selected.DisplayName, Location: LookUp( Location_Database, Title = LocationChoice.Selected.Title ).Abbreviation, LocationFull: LocationChoice.Selected.Title, StartDate: StartDate.SelectedDate, EndDate: EndDate.SelectedDate } ) }, // Check if patch was successful If( IsEmpty( Errors('Conditional access location submits', patchResult) ), Notify("Data submitted successfully", NotificationType.Success), Notify( "Error in data submission: " & Concat( Errors('Conditional access location submits', patchResult), Message & " " ), NotificationType.Error ) ) ), // ******************** ELSE: SHOW ERRORS ******************** // If validation fails for ANY reason, show the relevant error If( // 1) Missing user name or location IsBlank(UserNameDrop.Selected.DisplayName) || IsBlank(LocationChoice.Selected.Title), Notify("User Name and Location cannot be empty.", NotificationType.Warning), // 2) Start date is before today If( StartDate.SelectedDate < Today(), Notify("Start Date cannot be in the past.", NotificationType.Error), // 3) StartDate or EndDate is more than 31 days out OR EndDate < StartDate If( StartDate.SelectedDate > Today() + 31 || EndDate.SelectedDate > Today() + 31, Notify( "Start and/or End Date cannot be more than 31 days from today. " & "Please select a date within the next 31 days.", NotificationType.Error ), If( EndDate.SelectedDate < StartDate.SelectedDate, Notify( "End Date cannot be earlier than the Start Date.", NotificationType.Error ), Notify( "Please select valid options from the dropdowns.", NotificationType.Warning ) ) ) ) ) ); // Reset controls if needed Reset(UserNameDrop); Reset(LocationChoice); Reset(StartDate); Reset(EndDate); // Assuming YourLast and LocationInput are also controls that need to be reset Reset(YourLast); Reset(LocationInput); // Add resets for any other controls you want to reset
  • Validates user name, location selection.
  • Ensures start date is not in the past and end date is not before start date.
  • Restricts date selections to within 31 days from the current date.
  • Patches valid data to SharePoint list.
  • Provides user-friendly success and error notifications.
  • Resets form controls.
Power Apps Power Fx Data Validation
Rate Review RTH Application UI

Rate Review RTH Application (Power Fx)

Implemented form submission logic for an RTH Appeal Power App.

Code Snippet Highlights (Submit Button)
Sample code from rate review power effects code submit button: If( !IsBlank(ClientSelect.SelectedText.Value) && !IsBlank(YourEmail.Selected.Mail) && !IsBlank(ARReason.SelectedText.Value) && YourEmail.Selected.Mail <> "none@example.com" && BehalfEmail.Selected.Mail <> "none@example.com", Concurrent( Patch( 'RTH Appeal Submit', Defaults('RTH Appeal Submit'), { Title: YourEmail.Selected.Mail, submittingOnBehalfOf: BehalfEmail.Selected.Mail, clientNumber: ClientSelect.Selected.CLIENT_CODE, noteInfo: RichTextEditor1.HtmlText, Reason: ARReason.SelectedText.Value, matterNumber: MatterSelected.Selected.MATTER_NUMBER, endDate: EndDate.SelectedDate } ), Reset(YourEmail), Reset(BehalfEmail), Reset(MatterSelected), Reset(RichTextEditor1), Reset(BehalfLast), Reset(ClientNumber), Reset(YourLast), Reset(ARReason), Reset(EndDate) ), Notify("Please fill in all required fields, and ensure that neither email is set to 'none@example.com'.", NotificationType.Error) )
  • Checks for non-blank values in critical fields.
  • Ensures selected emails are not default placeholder values.
  • Uses `Concurrent` function for simultaneous operations.
  • Patches data to 'RTH Appeal Submit' data source.
  • Displays notifications and resets form.
Power Apps Power Fx Form Logic

Certifications

Microsoft Certified: Power Platform Fundamentals (PL-900)

Microsoft Certified: Power Platform App Maker Associate (PL-100)

Microsoft Certified: Power Platform Functional Consultant Associate (PL-200)

CompTIA Security+

(Credential ID COMP001021878121)

Education

Aims Community College

Cyber Security | Greeley

2018 – 2020

Completed coursework in system security, threat analysis, and vulnerability management.

Colorado Film School

Writing and Directing | Denver

2010 – 2013

Developed creative and collaborative skills in storytelling, project management, and technical production.

Achievements

  • Promoted from Power Platform Developer to Administrator due to technical leadership.
  • Successfully implemented firm-wide automations adopted across departments, including Teams Copilot.
  • Completed advanced cybersecurity challenges on Hack the Box and TryHackMe.
  • Created microcontroller Arduino projects, such as thermostats, audio decibel readers, etc.

Get In Touch

I'm always open to discussing new projects, creative ideas, or opportunities to be part of something great.

Email Me