41554 blogs · [ { "id": "01a08756-85fb-7288-80bb-fd6e53abcf8d", "title": "In Defense of Friction", "url": "https://blog.zhade.dev/posts/2026-02-13-in-defense-of-friction/", "published_at": "2026-02-13T00:00:00+00:00" }, { "id": "01a08756-85fb-7288-80bb-fd6e542a9130", "title": "Lessons from a Month of Vibe Coding with Copilot CLI", "url": "https://blog.zhade.dev/posts/2026-01-11-vibe-coding/", "published_at": "2026-01-11T00:00:00+00:00" }, { "id": "01a08756-85fb-7288-80bb-fd6e54fd5f82", "title": "How GitHub's Agentic Security Principles Make Our AI Agents as Secure as Possible", "url": "https://blog.zhade.dev/posts/2025-11-25-agentic-security-principles/", "published_at": "2025-11-25T00:00:00+00:00" }, { "id": "01a08756-85fb-7288-80bb-fd6e554f92ee", "title": "Self Advocacy at a Remote-First Company: How to Careermax", "url": "https://blog.zhade.dev/posts/2025-11-07-self-advocacy/", "published_at": "2025-11-07T00:00:00+00:00" }, { "id": "01a08756-85fb-7288-80bb-fd6e55da5118", "title": "How Reversible are Embeddings: Embedding Inversions and How to Protect your Data", "url": "https://blog.zhade.dev/posts/2025-10-28-embeddings-inversion/", "published_at": "2025-10-27T00:00:00+00:00" }, { "id": "01a08756-85fb-7288-80bb-fd6e56ca01c0", "title": "Prompt Injection is a Weakness, not a Vulnerability", "url": "https://blog.zhade.dev/posts/2025-05-15-prompt-injection-weakness/", "published_at": "2025-05-15T00:00:00+00:00" }, { "id": "01a08756-85fb-7288-80bb-fd6e56e6e59a", "title": "Secure Generative UIs with Grammar Constrained Decoding", "url": "https://blog.zhade.dev/posts/2025-04-29-secure-generative-uis/", "published_at": "2025-04-29T00:00:00+00:00" }, { "id": "01a08756-85fb-7288-80bb-fd6e574a998e", "title": "Writing in the Age of AI: My AI-enabled Process for Writing", "url": "https://blog.zhade.dev/posts/2025-03-04-writing-in-the-age-of-ai/", "published_at": "2025-03-04T00:00:00+00:00" }, { "id": "01a08756-85fb-7288-80bb-fd6e579d87e6", "title": "Path to SOC Analyst: Breaking into Cybersecurity", "url": "https://blog.zhade.dev/posts/2025-02-23-path-to-soc-analyst/", "published_at": "2025-02-23T00:00:00+00:00" }, { "id": "01a08756-85fb-7288-80bb-fd6e587c0643", "title": "Being Intentional in 2024", "url": "https://blog.zhade.dev/posts/2024-01-22-intentionality/", "published_at": "2024-01-22T00:00:00+00:00" }, { "id": "01a08756-85fb-7288-80bb-fd6e593c1979", "title": "Introduction to Natural Language Processing", "url": "https://blog.zhade.dev/posts/2023-09-21-intro-natural-language-processing/", "published_at": "2023-09-21T00:00:00+00:00" }, { "id": "01a08756-85fb-7288-80bb-fd6e594a57b0", "title": "\"for … in\" vs \"for … of\" in JavaScript", "url": "https://blog.zhade.dev/posts/2023-09-17-for-in-javascript/", "published_at": "2023-09-17T00:00:00+00:00" }, { "id": "01a08756-85fb-7288-80bb-fd6e598cb772", "title": "Introduction to Adversarial AI", "url": "https://blog.zhade.dev/posts/2023-04-03-intro-adversarial-ai/", "published_at": "2023-04-03T00:00:00+00:00" }, { "id": "01a08756-85fb-7288-80bb-fd6e5a3c1955", "title": "Implementing a Robust Digital Identity", "url": "https://blog.zhade.dev/posts/2022-06-10-implementing-a-robust-digital-identity/", "published_at": "2022-06-10T00:00:00+00:00" }, { "id": "01a08756-85fb-7288-80bb-fd6e5afdbe1e", "title": "Setting Secure Hashing Parameters for Password Hashing", "url": "https://blog.zhade.dev/posts/2022-05-28-setting-secure-hashing-params/", "published_at": "2022-05-28T00:00:00+00:00" } ] posts Claim your blog
Back to blog.zhade.dev
Blog · corpus.blog/blogs/blog.zhade.dev/posts

blog.zhade.dev

blog.zhade.dev

2026

2025

2024

2023

2022