41554 blogs ยท [ { "id": "01a0879f-9a12-7023-80db-2a23b1870820", "title": "An AI Analyst That Shows Its Work", "url": "https://marcusfelling.com/blog/2026/ai-analyst-that-shows-its-work", "published_at": "2026-07-07T04:00:00+00:00" }, { "id": "01a0879f-9a12-7023-80db-2a23b2196fc7", "title": "I Automated Meeting Action Items Into Azure DevOps Using GitHub Copilot and Work IQ MCP", "url": "https://marcusfelling.com/blog/2026/automating-meeting-action-items-into-azure-devops-with-github-copilot-and-work-iq-mcp", "published_at": "2026-03-24T04:00:00+00:00" }, { "id": "01a0879f-9a12-7023-80db-2a23b2648e49", "title": "Building an AI Agent Squad for Your Repo", "url": "https://marcusfelling.com/blog/2026/building-an-ai-agent-squad-for-your-repo", "published_at": "2026-02-26T05:00:00+00:00" }, { "id": "01a0879f-9a12-7023-80db-2a23b33d1780", "title": "Shipping an AI Agent MVP: What Worked", "url": "https://marcusfelling.com/blog/2026/three-day-hackathon-shipping-ai-agent-mvps", "published_at": "2026-01-20T05:00:00+00:00" }, { "id": "01a0879f-9a12-7023-80db-2a23b3ee0190", "title": "โฉ Optimizing GitHub Actions Workflows for Speed and Efficiency", "url": "https://marcusfelling.com/blog/2025/optimizing-github-actions-workflows-for-speed", "published_at": "2025-02-28T05:00:00+00:00" }, { "id": "01a0879f-9a12-7023-80db-2a23b449018e", "title": "Control Your Windows VPN Connections from VS Code", "url": "https://marcusfelling.com/blog/2025/vpn-toggle-vscode-extension", "published_at": "2025-02-12T05:00:00+00:00" }, { "id": "01a0879f-9a12-7023-80db-2a23b4b8ab71", "title": "Removing Sensitive Data from Git History with BFG and VS Code", "url": "https://marcusfelling.com/blog/2024/removing-sensitive-data-from-git-history-with-bfg-and-vs-code/", "published_at": "2024-04-23T14:06:19+00:00" }, { "id": "01a0879f-9a12-7023-80db-2a23b57319fa", "title": "Using Azure Test Plans with Playwright", "url": "https://marcusfelling.com/blog/2023/using-azure-test-plans-with-playwright/", "published_at": "2023-09-17T21:01:58+00:00" }, { "id": "01a0879f-9a12-7023-80db-2a23b5b6151c", "title": "Measuring Website Performance with Playwright Test and Navigation Timing API", "url": "https://marcusfelling.com/blog/2023/measuring-website-performance-with-playwright-test-and-navigation-timing-api/", "published_at": "2023-04-27T14:40:19+00:00" }, { "id": "01a0879f-9a12-7023-80db-2a23b68afdf5", "title": "6 Nifty GitHub Actions Features ๐Ÿš€", "url": "https://marcusfelling.com/blog/2023/6-nifty-github-actions-features/", "published_at": "2023-03-08T19:23:17+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518f5b4620", "title": null, "url": "https://marcusfelling.com/blog/2023/handling-azure-ad-authentication-with-playwright/", "published_at": "2023-02-21T19:29:38+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518eed7f92", "title": null, "url": "https://marcusfelling.com/blog/2022/25-reasons-to-choose-playwright-as-your-next-web-testing-framework/", "published_at": "2022-04-13T16:44:00+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518ee3cf9a", "title": null, "url": "https://marcusfelling.com/blog/2022/create-more-reliable-playwright-tests-with-locators/", "published_at": "2022-01-09T19:36:48+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518df141d2", "title": null, "url": "https://marcusfelling.com/blog/2021/publishing-playwright-test-results-to-github-pages/", "published_at": "2021-11-22T19:49:09+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518dd7eabb", "title": null, "url": "https://marcusfelling.com/blog/2021/azure-bicep-ci-cd/", "published_at": "2021-07-11T22:32:36+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518d3a5811", "title": null, "url": "https://marcusfelling.com/blog/2021/using-terraforms-azure-provider-azurerm-with-github-actions-and-terraform-cloud/", "published_at": "2021-02-06T18:38:44+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518d360cee", "title": null, "url": "https://marcusfelling.com/blog/2021/reasons-to-use-bicep-over-terraform/", "published_at": "2021-01-14T21:30:09+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518ce40583", "title": null, "url": "https://marcusfelling.com/blog/2020/azure-pipelines-yaml-templates-vs-custom-tasks/", "published_at": "2020-11-05T19:07:10+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518ccc0273", "title": null, "url": "https://marcusfelling.com/blog/2020/the-importance-of-definition-of-done/", "published_at": "2020-08-21T17:02:01+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518c83fedc", "title": null, "url": "https://marcusfelling.com/blog/2020/porting-an-azure-pipeline-yaml-to-a-github-action/", "published_at": "2020-07-26T20:04:31+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518c824036", "title": null, "url": "https://marcusfelling.com/blog/2020/how-to-reduce-the-size-of-your-tfs-azure-devops-server-collection-databases/", "published_at": "2020-06-22T14:58:08+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518be6fd12", "title": null, "url": "https://marcusfelling.com/blog/2020/tips-for-governing-azure-subscriptions/", "published_at": "2020-06-03T15:54:49+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518b4b46c8", "title": null, "url": "https://marcusfelling.com/blog/2020/azure-pipelines-classic-editor-vs-yaml/", "published_at": "2020-04-05T18:11:09+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518a6bacb9", "title": null, "url": "https://marcusfelling.com/blog/2020/associating-automated-tests-with-azure-test-cases/", "published_at": "2020-04-01T18:15:39+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d5189eb2ffe", "title": null, "url": "https://marcusfelling.com/blog/2019/azure-devops-pipeline-decorators/", "published_at": "2019-11-04T20:02:12+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d5189db0ecc", "title": null, "url": "https://marcusfelling.com/blog/2019/azure-devops-pipeline-variables/", "published_at": "2019-08-24T16:35:47+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d51890272b8", "title": null, "url": "https://marcusfelling.com/blog/2019/start-iiscommitdelay-stop-iiscommitdelay/", "published_at": "2019-06-19T17:46:53+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d5188882f62", "title": null, "url": "https://marcusfelling.com/blog/2019/trigger-an-azure-function-powershell-from-an-azure-devops-pipeline/", "published_at": "2019-05-19T20:26:35+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d51888335b7", "title": null, "url": "https://marcusfelling.com/blog/2019/bulk-update-azure-release-pipelines-tasks/", "published_at": "2019-03-05T21:16:52+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d5187853010", "title": null, "url": "https://marcusfelling.com/blog/2019/setting-up-sonarqube-on-windows-with-azure-pipelines/", "published_at": "2019-02-02T16:32:43+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d51870de150", "title": null, "url": "https://marcusfelling.com/blog/2019/azure-release-pipelines-what-releases-havent-been-deployed-to-production-yet/", "published_at": "2019-01-15T00:46:28+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d51868a35d1", "title": null, "url": "https://marcusfelling.com/blog/2018/deploying-iis-hosted-asp-net-core-apps-using-app_offline-htm/", "published_at": "2018-09-20T20:12:14+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518671300d", "title": null, "url": "https://marcusfelling.com/blog/2018/tfs-release-management-create-release-via-rest-api/", "published_at": "2018-09-09T20:21:08+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d51865acddc", "title": null, "url": "https://marcusfelling.com/blog/2018/setting-up-a-ci-pipeline-to-run-functional-tests-in-tfs-2018-and-visual-studio-team-services-vsts/", "published_at": "2018-07-09T15:58:30+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d51855f05fe", "title": null, "url": "https://marcusfelling.com/blog/2018/versioning-net-assemblies-using-tfs-vsts-build-buildid/", "published_at": "2018-03-04T16:32:03+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518465d2b7", "title": null, "url": "https://marcusfelling.com/blog/2017/chef-recipe-install-vsts-agents-windows/", "published_at": "2017-12-26T16:47:20+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d5183eb912b", "title": null, "url": "https://marcusfelling.com/blog/2017/rolling-deployments-aws-using-octopus-deploy-auto-scaling-groups/", "published_at": "2017-12-07T20:10:19+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d5183aa6b3a", "title": null, "url": "https://marcusfelling.com/blog/2017/vsts-yaml-builds/", "published_at": "2017-11-21T22:33:18+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d5182ed8fee", "title": null, "url": "https://marcusfelling.com/blog/2017/setting-up-a-build-deploy-pipeline-for-mysql-seed-scripts-using-vsts-and-octopus-deploy/", "published_at": "2017-11-12T16:12:41+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d5182acb0b0", "title": null, "url": "https://marcusfelling.com/blog/2017/create-vsts-pull-request-via-vsts-rest-api/", "published_at": "2017-10-22T20:29:36+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d5181b45a81", "title": null, "url": "https://marcusfelling.com/blog/2017/feature-flag-journey-launchdarkly-part-2/", "published_at": "2017-10-06T20:28:39+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d51812fd355", "title": null, "url": "https://marcusfelling.com/blog/2017/tfsvsts-build-system-capabilities-demands/", "published_at": "2017-09-27T21:05:18+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d51809a10f9", "title": null, "url": "https://marcusfelling.com/blog/2017/feature-flag-journey-launchdarkly/", "published_at": "2017-09-06T21:09:43+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d518086cb79", "title": null, "url": "https://marcusfelling.com/blog/2017/configuration-management-serverless-microservice-projects/", "published_at": "2017-09-05T21:02:53+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d5180206b15", "title": null, "url": "https://marcusfelling.com/blog/2017/getting-started-msbuild/", "published_at": "2017-08-16T01:09:08+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d517fba2b26", "title": null, "url": "https://marcusfelling.com/blog/2017/update-octopus-variable-via-octopus-api/", "published_at": "2017-07-31T19:44:17+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d517f0635a6", "title": null, "url": "https://marcusfelling.com/blog/2017/visual-studio-marketplace-metrics/", "published_at": "2017-07-18T18:58:07+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d517ed47c2f", "title": null, "url": "https://marcusfelling.com/blog/2017/custom-build-conditions-vsts/", "published_at": "2017-06-18T17:27:50+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d517e9578c2", "title": null, "url": "https://marcusfelling.com/blog/2017/migrating-team-foundation-server-visual-studio-team-services/", "published_at": "2017-06-03T17:21:53+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d517dc94aca", "title": null, "url": "https://marcusfelling.com/blog/2017/simple-explanation-private-pipeline-billing-vsts/", "published_at": "2017-06-02T21:23:26+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d517cf88939", "title": null, "url": "https://marcusfelling.com/blog/2017/octopus-deploy-running-deployment-steps-parallel/", "published_at": "2017-06-02T21:22:33+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d517bfa6e9a", "title": null, "url": "https://marcusfelling.com/blog/2017/gitflow-visual-studio-team-services/", "published_at": "2017-06-01T23:35:59+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d517ba766a3", "title": null, "url": "https://marcusfelling.com/blog/2017/vsts-marketplace-extension-queue-builds-task/", "published_at": "2017-05-30T23:31:56+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d517b18039f", "title": null, "url": "https://marcusfelling.com/blog/2017/using-task-groups-tfsvsts/", "published_at": "2017-05-29T15:32:13+00:00" }, { "id": "01a0d7c1-7c57-73e6-ac48-7d51949a0574", "title": null, "url": "https://marcusfelling.com/", "published_at": null }, { "id": "01a0d7c1-7c57-73e6-ac48-7d5194a22b27", "title": null, "url": "https://marcusfelling.com/archives/", "published_at": null } ] posts Claim your blog
Back to marcusfelling.com
Blog ยท corpus.blog/blogs/marcusfelling.com/posts

marcusfelling.com

marcusfelling.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

Undated