41554 blogs · [ { "id": "01a087df-8797-7273-9b83-07af2f8749c1", "title": "The Psychology of Bad Code Part 7 – “It Worked Last Time”", "url": "https://shehackspurple.ca/2026/06/29/the-psychology-of-bad-code-part-7-it-worked-last-time/", "published_at": "2026-06-29T07:22:02+00:00" }, { "id": "01a087df-8798-726c-bd26-4aee442edb20", "title": "The Psychology of Bad Code Part 6 – Avoiding Documentation", "url": "https://shehackspurple.ca/2026/05/29/the-psychology-of-bad-code-part-6-avoiding-documentation/", "published_at": "2026-05-30T04:19:27+00:00" }, { "id": "01a087df-8798-726c-bd26-4aee449040a9", "title": "The Psychology of Bad Code Part 5 – Shiny New Tech", "url": "https://shehackspurple.ca/2026/05/06/the-psychology-of-bad-code-part-5-shiny-new-tech/", "published_at": "2026-05-07T02:13:51+00:00" }, { "id": "01a087df-8798-726c-bd26-4aee44fe7cd7", "title": "The Psychology of Bad Code Part 4 – Copy Paste", "url": "https://shehackspurple.ca/2026/04/07/the-psychology-of-bad-code-part-4-copy-paste/", "published_at": "2026-04-07T23:11:51+00:00" }, { "id": "01a087df-8798-726c-bd26-4aee45b7f9c2", "title": "The Psychology of Bad Code Part 3 – Vibe Coding", "url": "https://shehackspurple.ca/2026/02/16/the-psychology-of-bad-code-part-3-vibe-coding/", "published_at": "2026-02-17T01:45:06+00:00" }, { "id": "01a087df-8798-726c-bd26-4aee45cb0db9", "title": "The Psychology of Bad Code Part 2 – Building Systems That Support Secure Developer Behavior", "url": "https://shehackspurple.ca/2025/12/23/the-psychology-of-bad-code-part-2-building-systems-that-support-secure-developer-behavior/", "published_at": "2025-12-23T18:17:19+00:00" }, { "id": "01a087df-8798-726c-bd26-4aee46826185", "title": "The Psychology of Bad Code", "url": "https://shehackspurple.ca/2025/11/27/the-psychology-of-bad-code/", "published_at": "2025-11-28T00:44:42+00:00" }, { "id": "01a087df-8798-726c-bd26-4aee474722a3", "title": "How To Get Your First Job In Cybersecurity", "url": "https://shehackspurple.ca/2025/11/21/how-to-get-your-first-job-in-cybersecurity/", "published_at": "2025-11-22T06:15:10+00:00" }, { "id": "01a087df-8798-726c-bd26-4aee4838152e", "title": "Metrics, Models, and Mindsets: A Conversation About the Future of AppSec", "url": "https://shehackspurple.ca/2025/11/13/metrics-models-and-mindsets-a-conversation-about-the-future-of-appsec/", "published_at": "2025-11-13T21:57:12+00:00" }, { "id": "01a087df-8798-726c-bd26-4aee4916aed2", "title": "Software Supply Chain: Bigger (and Scarier) Than We Realize", "url": "https://shehackspurple.ca/2025/11/10/software-supply-chain-bigger-and-scarier-than-we-realize/", "published_at": "2025-11-10T22:04:20+00:00" }, { "id": "01a0cdf5-6c81-7147-81b8-740c27b579b4", "title": "Why we need to start giving significantly more specific security advice", "url": "https://shehackspurple.ca/2025/11/09/why-we-need-to-start-giving-significantly-more-specific-security-advice/", "published_at": "2025-11-09T20:08:00+00:00" }, { "id": "01a0cdf5-6c81-7147-81b8-740c27d18166", "title": "Vibe Check: A Panel Discussion at SecTor 2025", "url": "https://shehackspurple.ca/2025/10/01/vibe-check-a-panel-discussion-at-sector-2025/", "published_at": "2025-10-02T00:38:42+00:00" }, { "id": "01a0cdf5-6c81-7147-81b8-740c28cae178", "title": "What it’s Like to Record an Audiobook", "url": "https://shehackspurple.ca/2025/09/09/what-its-like-to-record-an-audiobook/", "published_at": "2025-09-10T02:23:48+00:00" }, { "id": "01a0cdf5-6c81-7147-81b8-740c29bdab8a", "title": "What is Threat Modeling?", "url": "https://shehackspurple.ca/2025/08/15/what-is-threat-modeling/", "published_at": "2025-08-16T00:56:57+00:00" }, { "id": "01a0cdf5-6c81-7147-81b8-740c29fa7f61", "title": "My Schedule for Hacker Summer Camp 2025", "url": "https://shehackspurple.ca/2025/07/25/my-schedule-for-hacker-summer-camp-2025/", "published_at": "2025-07-25T20:42:39+00:00" }, { "id": "01a0cdf5-6c81-7147-81b8-740c2af1fa0d", "title": "Security Champion Worst Practices – My Slides from Barcelona", "url": "https://shehackspurple.ca/2025/05/31/security-champion-worst-practices-my-slides-from-barcelona/", "published_at": "2025-05-31T12:12:27+00:00" }, { "id": "01a0cdf5-6c81-7147-81b8-740c2b55f843", "title": "B-Sides SF and RSAC Trip Report", "url": "https://shehackspurple.ca/2025/05/09/rsac2025/", "published_at": "2025-05-09T23:44:52+00:00" }, { "id": "01a0cdf5-6c81-7147-81b8-740c2c3644e7", "title": "My schedule at RSAC and B-Sides", "url": "https://shehackspurple.ca/2025/04/17/my-schedule-at-rsac-2025/", "published_at": "2025-04-17T16:17:15+00:00" }, { "id": "01a0cdf5-6c81-7147-81b8-740c2d0ecfd9", "title": "Security Highlights: My Last 9 Months in Review", "url": "https://shehackspurple.ca/2025/03/20/security-highlights-my-last-9-months-in-review/", "published_at": "2025-03-20T18:34:23+00:00" }, { "id": "01a0cdf5-6c81-7147-81b8-740c2db64322", "title": "My Journey to Hacker Summer Camp in Las Vegas 2024", "url": "https://shehackspurple.ca/2024/07/30/my-journey-to-hacker-summer-camp-in-las-vegas-2024/", "published_at": "2024-07-30T23:04:16+00:00" }, { "id": "01a0cdf6-119a-700e-b244-f43d4e61be22", "title": "Trip Report: OWASP AppSec PNW", "url": "https://shehackspurple.ca/2024/07/30/trip-report-owasp-appsec-pnw/", "published_at": "2024-07-30T18:40:00+00:00" }, { "id": "01a0cdf6-119a-700e-b244-f43d4f283dca", "title": "We Hack Purple Community is closing", "url": "https://shehackspurple.ca/2024/07/08/we-hack-purple-community-is-closing/", "published_at": "2024-07-08T19:43:46+00:00" }, { "id": "01a0cdf6-119a-700e-b244-f43d4f86b620", "title": "Level Up Your AppSec Skills with Semgrep Academy!", "url": "https://shehackspurple.ca/2024/05/01/level-up-your-appsec-skills-with-semgrep-academy/", "published_at": "2024-05-01T11:53:00+00:00" }, { "id": "01a0cdf6-119a-700e-b244-f43d50718598", "title": "May 1st: Launch Date for Semgrep Academy", "url": "https://shehackspurple.ca/2024/04/24/may-1st-launch-date-for-semgrep-academy/", "published_at": "2024-04-24T23:17:00+00:00" }, { "id": "01a0cdf6-119a-700e-b244-f43d50ec06a8", "title": "Trip Report – ThreatModCon and OWASP Global AppSec 2023", "url": "https://shehackspurple.ca/2023/11/07/trip-report-threatmodcon-and-owasp-global-appsec-2023/", "published_at": "2023-11-07T19:14:07+00:00" }, { "id": "01a0cdf6-119a-700e-b244-f43d51a7613e", "title": "Choosing API Security Tools", "url": "https://shehackspurple.ca/2023/08/29/choosing-api-security-tools/", "published_at": "2023-08-29T21:30:11+00:00" }, { "id": "01a0cdf6-119a-700e-b244-f43d52596a48", "title": "The Difference Between SCA and Supply Chain Security", "url": "https://shehackspurple.ca/2023/08/22/the-difference-between-sca-and-supply-chain-security/", "published_at": "2023-08-22T19:09:02+00:00" }, { "id": "01a0cdf6-119a-700e-b244-f43d52ee8187", "title": "Trip Report – Hacker Summer Camp 2023", "url": "https://shehackspurple.ca/2023/08/15/trip-report-hacker-summer-camp-2023/", "published_at": "2023-08-16T02:09:26+00:00" }, { "id": "01a0cdf6-119a-700e-b244-f43d538d9821", "title": "My first week at Semgrep", "url": "https://shehackspurple.ca/2023/08/09/my-first-week-at-semgrep/", "published_at": "2023-08-09T19:15:45+00:00" }, { "id": "01a0cdf6-119a-700e-b244-f43d53fd14ca", "title": "I’m Joining Semgrep and Bringing We Hack Purple With Me", "url": "https://shehackspurple.ca/2023/08/04/im-joining-semgrep-and-bringing-we-hack-purple-with-me/", "published_at": "2023-08-04T17:30:00+00:00" }, { "id": "01a0cdf6-5ed9-7129-9116-a6a4fc677d5a", "title": "Operations First!", "url": "https://shehackspurple.ca/2023/08/01/operations-first/", "published_at": "2023-08-02T02:57:40+00:00" }, { "id": "01a0cdf6-5ed9-7129-9116-a6a4fd169df4", "title": "You Do Not Need to do DAST in a Pipeline to do DevSecOps", "url": "https://shehackspurple.ca/2023/07/03/you-do-not-need-to-do-dast-in-a-pipeline-to-do-devsecops/", "published_at": "2023-07-03T20:03:03+00:00" }, { "id": "01a0cdf6-5ed9-7129-9116-a6a4fd61ad25", "title": "Safety at #HackerSummerCamp", "url": "https://shehackspurple.ca/2023/06/23/safety-at-hackersummercamp/", "published_at": "2023-06-23T18:20:27+00:00" }, { "id": "01a0cdf6-5ed9-7129-9116-a6a4fdf1e337", "title": "Trip Report for B-Sides SF and RSAC 2023 San Francisco", "url": "https://shehackspurple.ca/2023/06/07/rsac2023/", "published_at": "2023-06-07T22:27:47+00:00" }, { "id": "01a0cdf6-5ed9-7129-9116-a6a4fe59c1ce", "title": "#WeHackHealth Getting Better Sleep", "url": "https://shehackspurple.ca/2023/06/04/wehackhealth-getting-better-sleep/", "published_at": "2023-06-04T19:47:23+00:00" }, { "id": "01a0cdf6-5ed9-7129-9116-a6a4fef04918", "title": "My RSAC and B-Sides SF 2023 Schedule", "url": "https://shehackspurple.ca/2023/04/11/my-rsac-and-b-sides-sf-2023-schedule/", "published_at": "2023-04-11T18:51:17+00:00" }, { "id": "01a0cdf6-5ed9-7129-9116-a6a4fefd0c0a", "title": "Preventing Secrets in Code", "url": "https://shehackspurple.ca/2023/04/10/preventing-secrets-in-code/", "published_at": "2023-04-10T21:40:16+00:00" }, { "id": "01a0cdf6-5ed9-7129-9116-a6a4ff924dfd", "title": "OWASP Global AppSec Dublin 2023", "url": "https://shehackspurple.ca/2023/02/21/owasp-global-appsec-dublin-2023/", "published_at": "2023-02-21T17:00:00+00:00" }, { "id": "01a0cdf6-5ed9-7129-9116-a6a500435f22", "title": "#CyberMentoringMonday and Advocating for Others", "url": "https://shehackspurple.ca/2023/02/15/cybermentoringmonday-and-advocating-for-others/", "published_at": "2023-02-16T05:22:52+00:00" }, { "id": "01a0cdf6-5ed9-7129-9116-a6a5006c425d", "title": "Continuous Learning", "url": "https://shehackspurple.ca/2023/02/07/continuous-learning/", "published_at": "2023-02-07T22:11:45+00:00" }, { "id": "01a0cdf6-970f-7365-92c1-9131da6b97f9", "title": "Consulting on Canada’s Approach to Cyber Security", "url": "https://shehackspurple.ca/2022/07/18/consulting-on-canadas-approach-to-cyber-security/", "published_at": "2022-07-18T20:08:57+00:00" }, { "id": "01a0cdf6-970f-7365-92c1-9131dacc9810", "title": "Why can’t I get over log4j?", "url": "https://shehackspurple.ca/2022/04/01/why-cant-i-get-over-log4j/", "published_at": "2022-04-01T15:21:54+00:00" }, { "id": "01a0cdf6-970f-7365-92c1-9131dba8608b", "title": "Parody Songs", "url": "https://shehackspurple.ca/2022/01/13/parody-songs/", "published_at": "2022-01-13T13:03:00+00:00" }, { "id": "01a0cdf6-970f-7365-92c1-9131dc85115d", "title": "Sharing Another Talk with the Community", "url": "https://shehackspurple.ca/2022/01/05/sharing-another-talk-with-the-community/", "published_at": "2022-01-05T17:00:00+00:00" }, { "id": "01a0cdf6-970f-7365-92c1-9131dc9204bc", "title": "Jobs in Information Security (InfoSec)", "url": "https://shehackspurple.ca/2022/01/01/jobs-in-information-security-infosec/", "published_at": "2022-01-02T00:44:24+00:00" }, { "id": "01a0cdf6-970f-7365-92c1-9131dcd86da2", "title": "The Difference Between Applications and Infrastructure", "url": "https://shehackspurple.ca/2021/12/30/the-difference-between-applications-and-infrastructure/", "published_at": "2021-12-30T23:13:16+00:00" }, { "id": "01a0cdf6-970f-7365-92c1-9131dd2d36a9", "title": "Discoveries as a Result of the Log4j Debacle", "url": "https://shehackspurple.ca/2021/12/23/discoveries-as-a-result-of-the-log4j-debacle/", "published_at": "2021-12-23T23:24:51+00:00" }, { "id": "01a0cdf6-970f-7365-92c1-9131de079e6b", "title": "I want to talk about Log4j", "url": "https://shehackspurple.ca/2021/12/22/i-want-to-talk-about-log4j/", "published_at": "2021-12-23T02:29:02+00:00" }, { "id": "01a0cdf6-970f-7365-92c1-9131deb86111", "title": "My Career Story", "url": "https://shehackspurple.ca/2021/12/21/my-career-story/", "published_at": "2021-12-22T01:39:09+00:00" }, { "id": "01a0cdf6-970f-7365-92c1-9131decb8edf", "title": "#CyberMentoringMonday", "url": "https://shehackspurple.ca/2021/12/21/cybermentoringmonday/", "published_at": "2021-12-22T01:32:10+00:00" }, { "id": "01a0cdf6-f666-70bb-9547-cc4ae2326871", "title": "Security bugs are fundamentally different than quality bugs", "url": "https://shehackspurple.ca/2021/12/21/security-bugs-are-fundamentally-different-than-quality-bugs/", "published_at": "2021-12-22T01:28:18+00:00" }, { "id": "01a0cdf6-f666-70bb-9547-cc4ae2a9c549", "title": "Security Headers for ASP.Net and .Net CORE", "url": "https://shehackspurple.ca/2021/12/21/security-headers-for-asp-net-and-net-core/", "published_at": "2021-12-22T01:27:30+00:00" }, { "id": "01a0cdf6-f666-70bb-9547-cc4ae3594916", "title": "Hacking Robots and Eating Sushi", "url": "https://shehackspurple.ca/2021/12/21/hacking-robots-and-eating-sushi/", "published_at": "2021-12-22T01:21:39+00:00" }, { "id": "01a0cdf6-f666-70bb-9547-cc4ae4025988", "title": "Why I Love Password Managers", "url": "https://shehackspurple.ca/2021/12/21/why-i-love-password-managers/", "published_at": "2021-12-22T01:02:11+00:00" }, { "id": "01a0cdf6-f666-70bb-9547-cc4ae4bfe1fd", "title": "VAs, Scans and PenTests; not the same thing", "url": "https://shehackspurple.ca/2021/12/21/vas-scans-and-pentests-not-the-same-thing/", "published_at": "2021-12-22T01:01:37+00:00" }, { "id": "01a0cdf6-f666-70bb-9547-cc4ae4f1785f", "title": "Threat Modelling Serverless", "url": "https://shehackspurple.ca/2021/12/21/threat-modelling-serverless/", "published_at": "2021-12-22T00:59:25+00:00" }, { "id": "01a0cdf6-f666-70bb-9547-cc4ae523b093", "title": "Presentation Tips for Technical Talks", "url": "https://shehackspurple.ca/2021/12/21/presentation-tips-for-technical-talks/", "published_at": "2021-12-22T00:57:40+00:00" }, { "id": "01a0cdf6-f666-70bb-9547-cc4ae56d3579", "title": "Sharing talks with the InfoSec & IT Community and Industry", "url": "https://shehackspurple.ca/2021/12/21/sharing-talks-with-the-infosec-it-community-and-industry/", "published_at": "2021-12-22T00:50:00+00:00" }, { "id": "01a0cdf6-f666-70bb-9547-cc4ae65a6705", "title": "Multi-Factor Authentication (MFA)", "url": "https://shehackspurple.ca/2021/12/21/multi-factor-authentication-mfa/", "published_at": "2021-12-22T00:45:29+00:00" }, { "id": "01a0cdf6-f666-70bb-9547-cc4ae67be15c", "title": "Why ‘She Hacks PURPLE’?", "url": "https://shehackspurple.ca/2021/12/21/why-she-hacks-purple/", "published_at": "2021-12-22T00:22:24+00:00" }, { "id": "01a0cdf7-629b-72a1-a116-041cf5471509", "title": "Promoting Yourself on Social Media", "url": "https://shehackspurple.ca/2021/10/14/all-things-security-for-regular-people/", "published_at": "2021-10-15T00:17:42+00:00" }, { "id": "01a0cdf7-629b-72a1-a116-041cf5e0bed0", "title": "Practice Makes Perfect: Comments on Public Speaking", "url": "https://shehackspurple.ca/2021/10/14/practice-makes-perfect-comments-on-public-speaking/", "published_at": "2021-10-15T00:09:54+00:00" }, { "id": "01a0cdf7-629b-72a1-a116-041cf5f49a7c", "title": "More Tips for Social Media and Presenting", "url": "https://shehackspurple.ca/2021/10/12/more-tips-for-social-media-and-presenting/", "published_at": "2021-10-13T06:37:23+00:00" }, { "id": "01a0cdf7-629b-72a1-a116-041cf64004e1", "title": "HSTS Preloading of all .Dev domains: Troubleshooting", "url": "https://shehackspurple.ca/2021/10/12/hsts-preloading-of-all-dev-domains-troubleshooting/", "published_at": "2021-10-13T06:34:59+00:00" }, { "id": "01a0cdf7-629b-72a1-a116-041cf694491b", "title": "Alice and Bob Learn: Chapter Discussions", "url": "https://shehackspurple.ca/2021/03/20/alice-and-bob-learn-chapter-discussions/", "published_at": "2021-03-21T04:24:00+00:00" }, { "id": "01a0cdf7-629b-72a1-a116-041cf71eebd8", "title": "AMA: Where can we learn Threat Modelling?", "url": "https://shehackspurple.ca/2015/08/11/ama-where-can-we-learn-threat-modelling/", "published_at": "2015-08-11T21:14:57+00:00" }, { "id": "01a0cdf7-629b-72a1-a116-041cf7457014", "title": "AMA AppSec: What would you tell University Students about Application Security?", "url": "https://shehackspurple.ca/2015/07/11/ama-appsec-what-would-you-tell-university-students-about-application-security/", "published_at": "2015-07-11T21:11:44+00:00" }, { "id": "01a0cdf7-629b-72a1-a116-041cf7f692ac", "title": "AMA: DevSecOps versus Secure SDLC", "url": "https://shehackspurple.ca/2015/06/11/ama-devsecops-versus-secure-sdlc/", "published_at": "2015-06-11T21:00:01+00:00" } ] posts Claim your blog
Back to shehackspurple.ca
Blog · corpus.blog/blogs/shehackspurple.ca/posts

shehackspurple.ca

shehackspurple.ca

2026

2025

2024

2023

2022

2021

2015