<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress.com" -->
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"><url><loc>https://chrisguitarguy.com/2025/05/09/how-to-test-code-that-executes-subprocesses/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2025/05/test-subprocess-code.jpg</image:loc><image:title>test-subprocess-code</image:title></image:image><lastmod>2025-05-09T13:51:25+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2025/03/28/map-and-filter-with-generics-and-go-1-23-iterators/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2025/03/go-map-filter.jpg</image:loc><image:title>go-map-filter</image:title></image:image><lastmod>2025-03-28T14:22:30+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2025/02/07/how-to-debug-oauth-auth-code-login-flows/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2025/02/screenshot-2025-02-07-at-8.03.50-am-1.png</image:loc><image:title>Screenshot 2025-02-07 at 8.03.50 AM</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2025/02/screenshot-2025-02-07-at-8.03.50-am.png</image:loc><image:title>Screenshot 2025-02-07 at 8.03.50 AM</image:title></image:image><lastmod>2025-02-07T14:40:29+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2024/09/04/a-small-observability-2-0-success-story/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2024/09/screenshot-2024-09-04-at-8.40.22-am.png</image:loc><image:title>Screenshot 2024-09-04 at 8.40.22 AM</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2024/09/screenshot-2024-09-04-at-8.39.25-am.png</image:loc><image:title>Screenshot 2024-09-04 at 8.39.25 AM</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2024/09/screenshot-2024-09-04-at-5.54.36-am.png</image:loc><image:title>Screenshot 2024-09-04 at 5.54.36 AM</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2024/09/screenshot-2024-09-03-at-4.31.55-pm.png</image:loc><image:title>Screenshot 2024-09-03 at 4.31.55 PM</image:title></image:image><lastmod>2024-09-04T14:20:33+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2024/08/30/how-to-send-aws-eventbridge-events-to-cloudwatch-logs/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2024/08/cloudwatch-logs-eventbridge-destination.jpg</image:loc></image:image><lastmod>2024-08-30T20:05:15+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2024/08/21/test-setup-and-teardown-methods-in-go/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2024/08/go-test-case-setup-teardown.jpg</image:loc><image:title>go-test-case-setup-teardown</image:title></image:image><lastmod>2024-08-21T11:33:33+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2024/08/14/dependency-inversion-with-client-side-interfaces-in-go/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2024/08/dependency-inversion-client-side.jpg</image:loc><image:title>dependency-inversion-client-side</image:title></image:image><lastmod>2024-08-14T12:54:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2024/05/17/dependency-inversion-in-go-http-handlers/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2024/05/dependency-inverison-go-http-handlers.jpg</image:loc><image:title>dependency-inverison-go-http-handlers</image:title></image:image><lastmod>2024-05-17T16:38:52+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2024/05/16/using-datadog-sampling-rules-to-exclude-traces/</loc><lastmod>2024-05-16T13:39:23+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2024/05/07/running-database-integration-tests-in-go/</loc><lastmod>2024-05-07T12:58:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2024/04/30/conditionally-applying-middlware-in-go/</loc><lastmod>2024-04-30T16:25:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2024/04/17/beware-blocking-channel-sends-in-go/</loc><lastmod>2024-04-17T13:51:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2024/03/13/reading-a-gzipped-file-from-s3-to-memory-in-nodejs/</loc><lastmod>2024-03-13T11:11:52+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2024/02/29/alarming-on-a-high-lambda-error-rates/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2024/02/lambda-error-rate-alarm.png</image:loc><image:title>lambda-error-rate-alarm</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2024/02/lambda-error-success-rate.png</image:loc><image:title>lambda-error-success-rate</image:title></image:image><lastmod>2024-02-29T12:29:50+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2024/02/08/using-docker-health-checks-to-wait-for-development-environment-services/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2024/02/screenshot-2024-02-08-at-1.34.18-pm.png</image:loc><image:title>screenshot-2024-02-08-at-1.34.18-pm</image:title></image:image><lastmod>2024-02-08T19:46:48+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2024/01/22/cross-account-waitfortasktoken-in-aws-step-functions/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2024/01/cross-account-wait-for-task-token.jpg</image:loc><image:title>cross-account-wait-for-task-token</image:title></image:image><lastmod>2024-01-22T15:00:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2023/09/28/what-i-learned-at-ai-conference/</loc><lastmod>2023-09-28T13:05:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2023/05/17/deploying-a-single-spa-application-on-aws/</loc><lastmod>2023-05-17T17:30:57+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2023/05/17/hosting-a-single-page-application-in-aws/</loc><lastmod>2023-05-17T14:18:03+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2023/03/19/create-your-own-certificate-authority-with-terraform/</loc><lastmod>2023-03-19T19:22:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2023/03/06/waiting-for-mysql-to-be-ready-in-docker-compose/</loc><lastmod>2023-03-06T22:12:50+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2023/02/14/github-api-calls-via-github-actions-do-not-trigger-workflows/</loc><lastmod>2023-02-14T15:30:50+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2023/01/20/using-aws-transfer-with-a-custom-lambda-identity-provider/</loc><lastmod>2023-02-01T16:21:46+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2023/02/01/aws-transfer-sftp-rename-fails-with-permission-denied/</loc><lastmod>2023-02-01T16:20:00+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2023/01/26/using-org-wide-secrets-in-shared-github-actions-workflows/</loc><lastmod>2023-01-26T22:12:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2023/01/23/using-php-8-2-on-travisci/</loc><lastmod>2023-01-23T14:39:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2023/01/13/docker-compose-exec-on-github-actions/</loc><lastmod>2023-01-13T12:08:23+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2022/12/07/oauth-pkce-with-go/</loc><lastmod>2022-12-07T02:14:11+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/about/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/12/christopher-davis.jpg</image:loc><image:title>Christopher Davis</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2017/05/headshot.png</image:loc><image:title>headshot</image:title></image:image><lastmod>2022-02-03T22:09:46+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://chrisguitarguy.com/2019/08/06/symfony-logout-handlers-vs-logout-success-handlers/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/08/symfony-logout-handlers.jpg</image:loc><image:title>Symfony Security Logout Handlers</image:title></image:image><lastmod>2022-01-18T17:10:45+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2021/04/21/structs-custom-terraform-provider-data-sources/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2021/04/go-struct-terraform-custom-provider-data-source.jpg</image:loc><image:title>Using Custom Structs in Terraform Provider Data Sources</image:title></image:image><lastmod>2021-04-21T13:58:44+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2020/09/18/overlay-urls-with-react-router/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2020/09/overlay-urls-with-react-router.png</image:loc><image:title>Overay URLs with React Router</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2020/09/edit-screen-with-transition.gif</image:loc><image:title>Edit Screen With Transition</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2020/09/edit-screen-no-transition.gif</image:loc><image:title>Edit Screen with No Transition</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2020/09/edit-screen.png</image:loc><image:title>Edit Screen</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2020/09/list-of-something.png</image:loc><image:title>List of Something</image:title></image:image><lastmod>2020-11-11T20:18:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2020/09/02/dynamodb-pagination-php/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2020/09/dynamodb-pagination-php.jpg</image:loc><image:title>DynamoDB Pagination in PHP</image:title></image:image><lastmod>2020-09-02T14:02:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2020/08/12/lowest-value-stage-getting-early-feedback/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2020/08/lowest-value-stage-software.jpg</image:loc><image:title>Lowest Value Stage of Software</image:title></image:image><lastmod>2020-08-12T02:33:00+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2020/05/12/postgresql-row-to-json-json-agg-json-columns/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2020/05/postgres-row-to-json-json-agg-with-json.png</image:loc><image:title>PostgreSQL ROW_TO_JSON and JSON_AGG with JSON Columns</image:title></image:image><lastmod>2020-05-12T11:38:18+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2020/04/29/symfony-forms-at-least-one-field-required/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2020/04/symfony-forms-at-least-one-required.jpg</image:loc><image:title>Requiring At Least One Field in Symfony Forms</image:title></image:image><lastmod>2020-04-29T12:40:10+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/10/05/symfony-choice-type-error-messages/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/10/symfony-choice-type-error-messages.png</image:loc><image:title>Symfony Choice Type Error Messages</image:title></image:image><lastmod>2020-04-29T12:24:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2020/03/22/when-to-return-a-401-vs-403-http-response/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2020/03/http-401-vs-http-403-2.jpg</image:loc><image:title>HTTP 401 vs HTTP 403</image:title></image:image><lastmod>2020-03-22T11:20:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2020/03/08/design-data-first/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2020/03/design-data-first.jpg</image:loc><image:title>Design Data First</image:title></image:image><lastmod>2020-03-08T19:01:57+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2020/02/23/symfony-controller-dependencies/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2020/02/symfony-controller-dependencies.jpg</image:loc><image:title>Symfony Controller Dependencies</image:title></image:image><lastmod>2020-02-23T12:58:46+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2020/02/09/inversion-of-control-is-about-choice/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2020/02/inversion-of-control-is-about-choice.jpg</image:loc><image:title>Inversion of Control is About Choice</image:title></image:image><lastmod>2020-02-09T13:20:42+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2020/01/26/mysql-last-insert-id-on-duplicate-key-update/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2020/01/mysql-last-insert-id-on-duplicate-key.jpg</image:loc><image:title>MySQL LAST_INSERT_ID with ON DUPLICATE KEY ... UPDATE</image:title></image:image><lastmod>2020-01-26T13:23:41+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/12/22/how-access-an-aws-container-repository-from-another-account/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/12/cross-account-ecr-login.png</image:loc><image:title>Cross Account ECR Login</image:title></image:image><lastmod>2019-12-22T13:43:53+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/12/18/not-everything-needs-an-interface/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/12/not-everything-needs-an-interface.jpg</image:loc><image:title>Not Everything Needs an Interface</image:title></image:image><lastmod>2019-12-18T19:54:15+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/12/12/protocol-confusion/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/12/protocol-confusion.png</image:loc><image:title>Protocol Confusion</image:title></image:image><lastmod>2019-12-12T03:05:57+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/08/05/custom-user-provider-factories-for-the-symfony-security-bundle/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/08/symfony-user-provider-factories.jpg</image:loc><image:title>Symfony User Provider Factories</image:title></image:image><lastmod>2019-12-10T15:09:39+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/10/08/working-with-postgresql-arrays-in-php/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/10/working-with-postgresql-arrays-in-php.png</image:loc><image:title>Working with PostgreSQL Arrays in PHP</image:title></image:image><lastmod>2019-10-08T16:16:52+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/09/18/useful-health-check-endpoints-in-php-applications/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/09/php-health-check-endpoints.jpg</image:loc><image:title>PHP Health Check Endpoints</image:title></image:image><lastmod>2019-09-18T14:11:23+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/09/06/what-is-self-in-a-service-worker/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/09/self-in-service-workers.jpg</image:loc><image:title>Self in Service Workers</image:title></image:image><lastmod>2019-09-06T13:39:10+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/08/21/how-to-connect-to-the-host-machine-from-a-container-on-docker-for-mac/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/08/connect-to-host-machine-from-docker-for-mac.jpg</image:loc><image:title>Connecting to the Host from Docker for Mac</image:title></image:image><lastmod>2019-08-21T15:49:05+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/08/20/redirecting-http-requests-on-an-https-listener-in-nginx-status-code-497/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/08/nginx-http-497.png</image:loc><image:title>Nginx HTTP Code 497</image:title></image:image><lastmod>2019-08-20T13:59:37+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/08/02/2019-08-02-what-i-learned-this-week/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/08/2019-08-02-what-i-learned.png</image:loc><image:title>2019-08-02 What I Learned This Week</image:title></image:image><lastmod>2019-08-02T20:55:35+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/08/02/handling-authentication-tokens-in-single-page-apps/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/08/authentication-tokens-in-single-page-apps.jpg</image:loc><image:title>Authentication Tokens in Single Page Apps</image:title></image:image><lastmod>2019-08-02T13:13:44+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/07/25/testing-custom-league-oauth2-client-providers/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/07/testing-custom-league-oauth2-client-providers.jpg</image:loc><image:title>testing-custom-league-oauth2-client-providers</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/07/testing-custom-league-oauth2-client-providers.png</image:loc><image:title>Testing Custom League OAuth2 Client Providers</image:title></image:image><lastmod>2019-07-25T17:53:54+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/07/19/2019-07-19-what-i-learned-this-week/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/07/2019-07-19-what-i-learned.jpg</image:loc><image:title>2019-07-19 What I Learned</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/07/before.jpg</image:loc><image:title>Shingles Before</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/07/after.jpg</image:loc><image:title>Cedar Shingles After</image:title></image:image><lastmod>2019-07-19T21:22:37+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/07/05/2019-07-05-what-i-learned/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/07/2019-07-05-what-i-learned.png</image:loc><image:title>2019-07-05 What I Learned</image:title></image:image><lastmod>2019-07-05T17:33:45+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/07/05/working-with-multiple-content-security-policy-headers/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/07/working-with-multiple-csp-headers.jpg</image:loc><image:title>Working with Multiple CSP Headers</image:title></image:image><lastmod>2019-07-05T16:49:50+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/06/28/2019-06-28-what-i-learned-this-week/</loc><lastmod>2019-06-28T16:43:09+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/06/14/assertion-error-diffs-with-karma-mocha-and-chai/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/06/karma-mocha-show-diff.png</image:loc><image:title>Karma Mocha Show Diff</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/06/screen-shot-2019-06-14-at-12.05.09-pm.png</image:loc><image:title>Karma Mocha Show Diff</image:title></image:image><lastmod>2019-06-14T17:09:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2019/05/10/making-multiple-instances-play-nice-with-symfonys-autowiring/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2019/05/autowiring-multiple-instances.jpg</image:loc><image:title>Autowiring &amp; Multiple Instances</image:title></image:image><lastmod>2019-05-10T18:57:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/09/20/javascript-promise-control-flow/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/09/javascript-promises-control-flow.png</image:loc><image:title>JavaScript Promises are No for Control Flow</image:title></image:image><lastmod>2018-09-20T15:19:33+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/08/12/beautiful-imports-in-nodejs/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/08/beautiful-node-js-require.png</image:loc><image:title>Beautiful NodeJS Require Statements</image:title></image:image><lastmod>2018-08-12T12:34:28+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/06/30/many-s3-buckets/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/06/use-many-s3-buckets.png</image:loc><image:title>use many s3 buckets</image:title></image:image><lastmod>2018-06-30T11:56:05+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/06/16/s3-javascript-uploads/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/06/client-side-s3-uploads.png</image:loc><image:title>Client-Side S3 Uploads</image:title></image:image><lastmod>2018-06-16T01:59:00+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/06/06/upload-progress-with-xmlhttprequest/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/06/xmlhttprequest-upload-progress.png</image:loc><image:title>XMLHttpRequest Upload Progress</image:title></image:image><lastmod>2018-06-06T14:49:40+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2017/07/16/aws-kms-libsodium-php/</loc><lastmod>2018-06-01T18:44:01+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/05/18/delete-your-development-environment/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/05/delete-your-development-environment.png</image:loc><image:title>Delete Your Development Environment</image:title></image:image><lastmod>2018-05-18T12:07:57+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/04/26/php-use/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/04/php-use-alias-not-import.png</image:loc><image:title>PHP Use is an Alias</image:title></image:image><lastmod>2018-04-26T12:36:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/04/14/react-forms/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/04/react-forms.png</image:loc><image:title>ReactJS Forms</image:title></image:image><lastmod>2018-04-14T12:17:59+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/04/08/lifecycle-objects/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/04/lifecycle-objects1.png</image:loc><image:title>lifecycle objects</image:title></image:image><lastmod>2018-04-08T12:01:11+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/03/31/senior-developer-advice/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/03/senior-developer-advice.png</image:loc><image:title>Senior Developer Advice</image:title></image:image><lastmod>2018-03-31T11:32:09+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/02/24/aws-minimum-complexity/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/02/aws-minimum-complexity.png</image:loc><image:title>AWS Minimum Complexity</image:title></image:image><lastmod>2018-02-24T17:02:59+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2017/11/07/parameter-objects-result-objects/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2017/11/parameter-result-objects.jpg</image:loc><image:title>Parameter and Result Objects</image:title></image:image><lastmod>2018-02-14T12:47:19+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2017/09/28/public-private-subnet-differences-aws-vpc/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2017/09/aws-subnet-differences.jpg</image:loc><image:title>AWS Public vs Private Subnet</image:title></image:image><lastmod>2018-02-14T12:42:24+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2017/12/23/secrets-in-dockerized-applications/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2017/12/docker-secrets.jpg</image:loc><image:title>Dockerized Application Secrets</image:title></image:image><lastmod>2018-02-14T12:38:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/02/12/adding-wordpress-admin-pages/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/02/not-allowed-to-access-this-page.png</image:loc><image:title>Sorry You Are Not Allowed to Access This Page</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/02/add-post-type-submenu.png</image:loc><image:title>WordPress Admin Post Type Submenu</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/02/specific-submenu-pages.png</image:loc><image:title>WordPress Admin Submenu Pages</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/02/add-submenu-page.png</image:loc><image:title>WordPress Admin add_submenu_page</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/02/add-menu-page.png</image:loc><image:title>WordPress Admin add_menu_page</image:title></image:image><lastmod>2018-02-12T16:57:02+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/02/12/bootstrap-wordpress-plugins/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/02/bootstraping-wordpress-plugins.png</image:loc><image:title>Bootstrapping WordPress Plugins</image:title></image:image><lastmod>2018-02-12T15:03:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/02/05/documentation-glossary/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2018/02/documentation-glossary.jpg</image:loc><image:title>Glossary in Documentation</image:title></image:image><lastmod>2018-02-05T14:17:46+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/01/27/javascript-test-doubles/</loc><lastmod>2018-01-27T23:07:40+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2018/01/21/interesting-problems/</loc><lastmod>2018-01-21T16:10:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2017/12/19/aws-service-policies-vs-iam-permissions/</loc><lastmod>2017-12-19T12:22:33+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2017/12/16/multi-stage-docker-php/</loc><lastmod>2017-12-16T20:22:37+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2017/10/24/phpseclib-sftp-error-handling/</loc><lastmod>2017-10-24T11:54:43+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2017/10/22/test-docblocks/</loc><lastmod>2017-10-22T12:02:48+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2014/10/22/improving-tests-one-name-at-a-time/</loc><lastmod>2017-10-22T11:49:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2017/10/12/symfony-papertrail/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2017/10/papertrail-create-log-desintation.png</image:loc><image:title>Papertrail Create Log Desination</image:title></image:image><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2017/10/papertrail-settings-log-destinations.png</image:loc><image:title>Papertrail Settings Log Desintations</image:title></image:image><lastmod>2017-10-12T11:55:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2017/10/06/php-library-exceptions/</loc><lastmod>2017-10-06T03:49:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2017/09/30/aws-vpc-subnet-configuration/</loc><lastmod>2017-09-30T11:22:52+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2017/09/06/terraform-create-new-asg-launch-config/</loc><lastmod>2017-09-06T14:34:06+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2017/09/05/aws-route53-instance-boot/</loc><image:image><image:loc>https://chrisguitarguy.com/wp-content/uploads/2017/09/screen-shot-2017-09-05-at-3-35-42-pm.png</image:loc><image:title>Screen Shot 2017-09-05 at 3.35.42 PM</image:title></image:image><lastmod>2017-09-05T20:41:58+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2014/02/17/when-to-use-single-page-app-javascript-frameworks/</loc><lastmod>2017-05-20T16:38:08+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com/2017/05/20/extracting-gzip-files-with-php/</loc><lastmod>2017-05-20T16:34:21+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://chrisguitarguy.com</loc><changefreq>daily</changefreq><priority>1.0</priority><lastmod>2025-05-09T13:51:25+00:00</lastmod></url></urlset>
