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 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.
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.
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.
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.
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