{"meta":{"name":"the vector\n","description":"architecture over syntax. a personal archive documenting the shift from writing code to directing intent.\n","url":"https://thevector.dev","totalPosts":11,"generatedAt":"2026-04-10T16:08:04.584Z"},"posts":[{"slug":"beyond-the-scrub-a-technical-guide-to-de-identification-in-sql","title":"Beyond the Scrub: A Technical Guide to De-identification in SQL","excerpt":"Moving from raw PHI to a HIPAA-compliant dataset requires more than just dropping columns. In this guide, we explore the SQL implementation of Safe Harbor de-identification, the nuances of salted SHA-256 hashing, and the critical architectural differences between De-identified and Limited Data Sets.","url":"https://thevector.dev/blog/beyond-the-scrub-a-technical-guide-to-de-identification-in-sql","apiUrl":"https://thevector.dev/api/posts/beyond-the-scrub-a-technical-guide-to-de-identification-in-sql","author":{"name":"Kanakadurga Kunamneni","githubUsername":"kdkunamneni","profileUrl":"https://thevector.dev/authors/kdkunamneni"},"difficulty":"intermediate","readingTime":4,"tags":[{"name":"SQL","slug":"sql"},{"name":"Privacy","slug":"privacy"},{"name":"HIPAA","slug":"hipaa"},{"name":"PHI","slug":"phi"},{"name":"SHA-256","slug":"sha-256"}],"publishedAt":"2026-04-02T02:17:29.000Z","updatedAt":"2026-04-02T02:22:13.000Z"},{"slug":"beyond-the-spreadsheet-a-guide-to-choropleth-maps","title":"Beyond the Spreadsheet: A Guide to Choropleth Maps","excerpt":"Mapping geographic data is more than just shading regions on a screen; it's about uncovering spatial patterns that standard charts often hide. Whether you are leveraging the speed of Tableau, the precision of Python, or the open-source scale of Apache Superset, the success of your map depends on one critical rule: normalize your data. Discover how to choose the right tools and design principles to ensure your choropleth maps tell the true story behind your data.","url":"https://thevector.dev/blog/beyond-the-spreadsheet-a-guide-to-choropleth-maps","apiUrl":"https://thevector.dev/api/posts/beyond-the-spreadsheet-a-guide-to-choropleth-maps","author":{"name":"Kanakadurga Kunamneni","githubUsername":"kdkunamneni","profileUrl":"https://thevector.dev/authors/kdkunamneni"},"difficulty":"intermediate","readingTime":3,"tags":[{"name":"Data Visualization","slug":"data-visualization"},{"name":"Choropleth Maps","slug":"choropleth-maps"},{"name":"Python","slug":"python"},{"name":"Tableau","slug":"tableau"},{"name":"Apache Superset","slug":"apache-superset"},{"name":"Geospatial Analysis","slug":"geospatial-analysis"}],"publishedAt":"2026-03-01T01:34:38.000Z","updatedAt":"2026-03-01T01:59:37.000Z"},{"slug":"the-sql-between-operator-more-than-just-syntactic-sugar","title":"The SQL BETWEEN Operator: More Than Just \"Syntactic Sugar\"","excerpt":"The BETWEEN operator is one of the most common tools in a SQL developer’s kit, yet it is often the source of subtle, production-breaking bugs. From the \"inclusive\" trap of DATETIME stamps to handling messy strings with TRIM and LEFT, this article explores how to use BETWEEN effectively without sacrificing performance or accuracy.","url":"https://thevector.dev/blog/the-sql-between-operator-more-than-just-syntactic-sugar","apiUrl":"https://thevector.dev/api/posts/the-sql-between-operator-more-than-just-syntactic-sugar","author":{"name":"Kanakadurga Kunamneni","githubUsername":"kdkunamneni","profileUrl":"https://thevector.dev/authors/kdkunamneni"},"difficulty":"beginner","readingTime":3,"tags":[{"name":"SQL","slug":"sql"},{"name":"Data Science","slug":"data-science"},{"name":"Coding","slug":"coding"}],"publishedAt":"2026-03-01T01:21:37.000Z","updatedAt":"2026-03-01T01:35:30.000Z"},{"slug":"the-velocity-trap-navigating-the-gap-between-code-and-context","title":"The Velocity Trap: Navigating the Gap Between Code and Context","excerpt":"In a world of infinite code, the bottleneck is no longer production—it’s discernment. Here is how a syntactically perfect tracking pixel turned into a self-inflicted DDoS, and what it teaches us about the shifting role of the architect.","url":"https://thevector.dev/blog/the-velocity-trap-navigating-the-gap-between-code-and-context","apiUrl":"https://thevector.dev/api/posts/the-velocity-trap-navigating-the-gap-between-code-and-context","author":{"name":"Sreekar Siddula","githubUsername":"sreekar-ss","profileUrl":"https://thevector.dev/authors/sreekar-ss"},"difficulty":"beginner","readingTime":3,"tags":[{"name":"AI coding","slug":"ai-coding"},{"name":"Software Architecture","slug":"software-architecture"},{"name":"React","slug":"react"}],"publishedAt":"2026-02-23T03:56:44.000Z","updatedAt":"2026-02-25T06:26:34.000Z"},{"slug":"why-polars-a-health-data-scientists-perspective-on-modern-architecture","title":"Why Polars? A Health Data Scientist’s Perspective on Modern Architecture","excerpt":"As clinical datasets grow in complexity, the traditional tools of data science are hitting a performance wall. This article explores the architectural \"why\" behind Polars from its Rust-based parallelism to its intelligent query optimizer and explains how these features solve the unique data integrity and memory challenges faced by health data scientists today.","url":"https://thevector.dev/blog/why-polars-a-health-data-scientists-perspective-on-modern-architecture","apiUrl":"https://thevector.dev/api/posts/why-polars-a-health-data-scientists-perspective-on-modern-architecture","author":{"name":"Kanakadurga Kunamneni","githubUsername":"kdkunamneni","profileUrl":"https://thevector.dev/authors/kdkunamneni"},"difficulty":"intermediate","readingTime":3,"tags":[{"name":"Polars","slug":"polars"},{"name":"Python","slug":"python"},{"name":"Data Science","slug":"data-science"},{"name":"Programming","slug":"programming"}],"publishedAt":"2026-02-23T03:34:45.000Z","updatedAt":"2026-03-01T01:24:34.000Z"},{"slug":"cybersecurity-in-the-age-of-agents-what-changes-when-software-can-act","title":"Cybersecurity in the Age of Agents: When Software Can Act","excerpt":"In the age of agents, security stops being about what software knows and becomes about what it can do. These tool-using systems don’t just answer questions—they browse internal docs, call APIs, open PRs, trigger CI, message people in Slack, and basically operate like a junior engineer with superpowers… as long as you’ve handed them OAuth scopes and tokens. That collapses the gap between “thinking” and “acting,” which means everyday inputs like emails, tickets, and random webpages can quietly become control channels (hello prompt injection / indirect prompt injection). So the new attack surface isn’t just models—it’s permissions, connectors, skills/plugins, secrets in configs/logs, and workflow-based lateral movement.\n\nIf we want to use agents safely, we can’t rely on “be careful” or “better prompts.” We need agent-specific controls: least-privilege tool access, short-lived creds, policy gates before/after tool calls, sandboxing + egress controls, DLP, and strong provenance/audit trails so every action is attributable and reviewable.","url":"https://thevector.dev/blog/cybersecurity-in-the-age-of-agents-what-changes-when-software-can-act","apiUrl":"https://thevector.dev/api/posts/cybersecurity-in-the-age-of-agents-what-changes-when-software-can-act","author":{"name":"Saikat Mukhopadhyay","githubUsername":"sm7","profileUrl":"https://thevector.dev/authors/sm7"},"difficulty":"intermediate","readingTime":14,"tags":[{"name":"Cybersecurity","slug":"cybersecurity"},{"name":"AI","slug":"ai"},{"name":"Agents","slug":"agents"}],"publishedAt":"2026-02-22T18:19:53.000Z","updatedAt":"2026-02-22T18:50:17.000Z"},{"slug":"why-is-mode-missing-from-your-sql-toolbox","title":"Why is \"Mode\" Missing from Your SQL Toolbox?","excerpt":"Calculating Mean and Median in SQL? Easy. But try finding the Mode (the most frequent value) and the database goes silent. Here's why MODE() never made it into standard SQL, and how to work around it.","url":"https://thevector.dev/blog/why-is-mode-missing-from-your-sql-toolbox","apiUrl":"https://thevector.dev/api/posts/why-is-mode-missing-from-your-sql-toolbox","author":{"name":"Kanakadurga Kunamneni","githubUsername":"kdkunamneni","profileUrl":"https://thevector.dev/authors/kdkunamneni"},"difficulty":"beginner","readingTime":4,"tags":[{"name":"SQL","slug":"sql"},{"name":"PostgreSQL","slug":"postgresql"},{"name":"Redshift","slug":"redshift"},{"name":"Statistics","slug":"statistics"},{"name":"Healthcare","slug":"healthcare"},{"name":"Data Analysis","slug":"data-analysis"}],"publishedAt":"2026-02-18T06:31:08.000Z","updatedAt":"2026-02-18T06:36:32.000Z"},{"slug":"cursor-commands-vs-rules-when-to-use-what","title":"Cursor Commands vs Rules: When to Use What","excerpt":"Understanding the difference between Cursor commands and rules — and when to use each — will make you significantly more productive with AI-assisted coding.","url":"https://thevector.dev/blog/cursor-commands-vs-rules-when-to-use-what","apiUrl":"https://thevector.dev/api/posts/cursor-commands-vs-rules-when-to-use-what","author":{"name":"Sreekar Siddula","githubUsername":"sreekar-ss","profileUrl":"https://thevector.dev/authors/sreekar-ss"},"difficulty":"beginner","readingTime":4,"tags":[{"name":"Cursor","slug":"cursor"},{"name":"AI","slug":"ai"},{"name":"Productivity","slug":"productivity"},{"name":"Developer Tools","slug":"developer-tools"}],"publishedAt":"2026-02-17T16:18:15.000Z","updatedAt":"2026-02-17T16:18:15.000Z"},{"slug":"building-type-safe-apis-with-nextjs","title":"Building Type-Safe APIs with Next.js 15 and Drizzle ORM","excerpt":"Learn how to build fully type-safe API routes in Next.js 15 using Drizzle ORM, from schema definition to runtime validation.","url":"https://thevector.dev/blog/building-type-safe-apis-with-nextjs","apiUrl":"https://thevector.dev/api/posts/building-type-safe-apis-with-nextjs","author":{"name":"Sreekar Siddula","githubUsername":"sreekarsiddula","profileUrl":"https://thevector.dev/authors/sreekarsiddula"},"difficulty":"intermediate","readingTime":8,"tags":[{"name":"Next.js","slug":"nextjs"},{"name":"TypeScript","slug":"typescript"},{"name":"Databases","slug":"databases"}],"publishedAt":"2026-02-17T15:35:28.000Z","updatedAt":"2026-02-17T15:35:28.000Z"},{"slug":"rust-for-javascript-developers","title":"Rust for JavaScript Developers: A Practical Introduction","excerpt":"A hands-on guide to learning Rust, written specifically for developers coming from the JavaScript/TypeScript ecosystem.","url":"https://thevector.dev/blog/rust-for-javascript-developers","apiUrl":"https://thevector.dev/api/posts/rust-for-javascript-developers","author":{"name":"Alex Dev","githubUsername":"alexdev","profileUrl":"https://thevector.dev/authors/alexdev"},"difficulty":"beginner","readingTime":12,"tags":[{"name":"Rust","slug":"rust"},{"name":"Web Dev","slug":"web-dev"}],"publishedAt":"2026-02-16T15:35:28.000Z","updatedAt":"2026-02-16T15:35:28.000Z"},{"slug":"docker-compose-for-local-development","title":"Docker Compose Patterns for Local Development","excerpt":"Stop fighting environment setup. Learn Docker Compose patterns that make local development reproducible and painless.","url":"https://thevector.dev/blog/docker-compose-for-local-development","apiUrl":"https://thevector.dev/api/posts/docker-compose-for-local-development","author":{"name":"Sreekar Siddula","githubUsername":"sreekarsiddula","profileUrl":"https://thevector.dev/authors/sreekarsiddula"},"difficulty":"beginner","readingTime":6,"tags":[{"name":"DevOps","slug":"devops"},{"name":"Web Dev","slug":"web-dev"}],"publishedAt":"2026-02-15T15:35:28.000Z","updatedAt":"2026-02-15T15:35:28.000Z"}]}