<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Tamas Czaban</title><description>Vulnerability Threat Management Analyst &amp; Python Developer</description><link>https://tamasczaban.github.io/</link><item><title>Building a Local RAG Knowledge Base for a Two-Person Agency</title><link>https://tamasczaban.github.io/projects/08-cz-dev-rag-local-knowledge-base/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/08-cz-dev-rag-local-knowledge-base/</guid><description>We started CZ Dev as a two-person software agency. Three months in we had enough client contracts, SOWs, and meeting notes that &apos;where did we say that?&apos; became a real question. This is what we built to answer it: LightRAG + RAG-Anything on an RTX 3090, Ollama for the models, MCP for Claude Code integration, Tailscale for sharing, and zero data sent to a third-party AI provider.</description><pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Hunting NaN Embeddings: BGE-M3 on Ollama and the F16 Flash-Attention Trap</title><link>https://tamasczaban.github.io/projects/09-bge-m3-ollama-nan-embeddings-flash-attention/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/09-bge-m3-ollama-nan-embeddings-flash-attention/</guid><description>Halfway through building CZ-Dev-RAG I hit a bug that took two days and a dozen wrong theories to track down: BGE-M3 returning NaN embeddings to LightRAG, but only during the merging stage, but only on long inputs, and not reproducible from a curl one-liner. The cause turned out to be a quietly-enabled flash-attention path in Ollama that overflows F16 on dense BERT inputs. Here&apos;s the debug trail and what actually fixed it.</description><pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate></item><item><title>CZ-Dev-RAG</title><link>https://tamasczaban.github.io/projects/cz-dev-rag/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/cz-dev-rag/</guid><description>Local, graph-based knowledge base for a two-person software agency. LightRAG + RAG-Anything on an RTX 3090, Windows-native Ollama, BGE-M3 + Qwen2.5-32B for embeddings and entity extraction, a BGE reranker in the retrieval path, Langfuse for tracing, an MCP server so Claude Code can query the KB as a tool, and Tailscale as the only thing standing between the world and our client contracts. Public code, private data.</description><pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Joining KEV and EPSS at Build Time: a Static-Site Vulnerability Dashboard</title><link>https://tamasczaban.github.io/projects/06-kev-explorer-epss-cvss/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/06-kev-explorer-epss-cvss/</guid><description>CVSS tells you how severe a CVE theoretically is. KEV tells you whether it&apos;s been exploited. EPSS tells you how likely it is to be exploited. Here&apos;s how I joined all three into a single React dashboard that deploys as a static site and refreshes itself nightly via GitHub Actions.</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate></item><item><title>One Scan, Four Channels: Advisory Composer as a Pure Client-Side Tool</title><link>https://tamasczaban.github.io/projects/07-advisory-composer-multichannel/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/07-advisory-composer-multichannel/</guid><description>Vulnerability disclosure inside a company is always multi-channel — email to owners, Slack to teams, a PR comment on the dependency bump, a CSV for the audit log. Same data, four formats. Here&apos;s how I built a browser-only tool that does all four from a single lockfile upload.</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Advisory Composer</title><link>https://tamasczaban.github.io/projects/advisory-composer/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/advisory-composer/</guid><description>Browser tool that takes any lockfile — npm, pip, Go, Cargo, CycloneDX SBOM — queries OSV.dev and EPSS, and generates formatted security advisories for four channels in one pass: email drafts, Slack Block Kit JSON, GitHub PR comment markdown, and CSV exports. Pure client-side, zero backend, EPSS-weighted prioritisation.</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate></item><item><title>KEV Explorer</title><link>https://tamasczaban.github.io/projects/kev-explorer/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/kev-explorer/</guid><description>Interactive dashboard over the 1,559 vulnerabilities in CISA&apos;s Known Exploited Vulnerabilities catalogue, enriched with EPSS exploit-probability scores. Build-time ETL joins KEV + EPSS nightly, filters URL-sync for shareable views, drill-down fetches live NVD data. Built with React, TypeScript, Recharts, and GitHub Actions.</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Vital Registry v2 — React Production</title><link>https://tamasczaban.github.io/projects/vital-registry-v2/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/vital-registry-v2/</guid><description>Full React migration of Vital Registry, the production CRM built with my brother for our Mum&apos;s BEMER medical device rental business. Same Firebase + Stripe backbone, redesigned UI, dev/UAT/prod deployment pipeline, and live at vital-registry.com/contracts.</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>CVE Feed Dashboard</title><link>https://tamasczaban.github.io/projects/cve-feed-dashboard/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/cve-feed-dashboard/</guid><description>Live CVE feed dashboard built with Streamlit and the NVD API v2, enriched with EPSS exploit-prediction scores. Features a dark terminal aesthetic, log-scale EPSS vs CVSS scatter, colour-coded HTML vulnerability table, 1-hour cache, CSV export, and 27 Playwright end-to-end tests.</description><pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Vulnerability Prioritization Scorer</title><link>https://tamasczaban.github.io/projects/vuln-prioritization-scorer/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/vuln-prioritization-scorer/</guid><description>Streamlit app that enriches CVE lists with live NVD (CVSS v3) and FIRST EPSS (exploit probability) data, scores via a configurable 4-factor composite formula (CVSS + EPSS + exposure tier + age decay), and exports ranked HTML/CSV reports.</description><pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Automated Vulnerability Email Composer</title><link>https://tamasczaban.github.io/projects/vulnerability-email-composer/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/vulnerability-email-composer/</guid><description>Streamlit tool that takes scanner exports and an email template, applies 3-layer hierarchical filtering, and sends personalised per-app-manager vulnerability notifications with individual filtered attachments. Used during Apache Tika and Oracle HTTP Server L0 incidents to hit 48-hour remediation deadlines.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Manifest-Based Parquet Caching for a Streamlit Dashboard with Shifting Requirements</title><link>https://tamasczaban.github.io/projects/05-two-tier-parquet-caching/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/05-two-tier-parquet-caching/</guid><description>SQL queries that take minutes. Stakeholder requirements that change weekly. No sprint planning. Here&apos;s the caching architecture I built to handle all three.</description><pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Firewall &amp; Load Balancer Vulnerability Dashboard</title><link>https://tamasczaban.github.io/projects/citi-firewall-vulnerability-dashboard/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/citi-firewall-vulnerability-dashboard/</guid><description>Internal Streamlit dashboard aggregating vulnerability data across firewalls and load balancers, with a manifest-based multi-file Parquet cache, graceful degradation, connection pooling, and real-time Plotly visualisations. Built solo, with no sprint planning, under continuously shifting stakeholder requirements.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>CZ Dev — Software Agency (Co-Founder)</title><link>https://tamasczaban.github.io/projects/czdev/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/czdev/</guid><description>Co-founded with my brother Zsombor. Custom software for founders who&apos;ve outgrown spreadsheets and no-code. Four shipped case studies across production CRM, security tooling, and vulnerability automation. Design-led frontend, Python backend, full-stack delivery.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Citi GEM Dashboard</title><link>https://tamasczaban.github.io/projects/citi-gem-dashboard/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/citi-gem-dashboard/</guid><description>Internal vulnerability tracking dashboard built with Python, Streamlit, and Pandas for Citi&apos;s global security team.</description><pubDate>Tue, 01 Apr 2025 00:00:00 GMT</pubDate></item><item><title>From Data Analyst to Security Analyst: What Transfers</title><link>https://tamasczaban.github.io/projects/04-from-data-analyst-to-security/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/04-from-data-analyst-to-security/</guid><description>Moving from BI and data analysis into vulnerability management wasn&apos;t a pivot — it was the same skills in a different domain. Here&apos;s what I learned.</description><pubDate>Sat, 01 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Why I Build Internal Tools with Streamlit</title><link>https://tamasczaban.github.io/projects/01-streamlit-for-internal-tools/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/01-streamlit-for-internal-tools/</guid><description>Streamlit lets you ship a real, interactive web app in a fraction of the time it takes with a traditional stack. Here&apos;s why I keep reaching for it.</description><pubDate>Mon, 10 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Automating Vulnerability Reporting with Python and Pandas</title><link>https://tamasczaban.github.io/projects/03-python-vulnerability-reporting/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/03-python-vulnerability-reporting/</guid><description>Manual security reporting is slow, error-prone, and nobody&apos;s favourite Friday afternoon task. Here&apos;s how I replaced it with a Python pipeline at Citi.</description><pubDate>Mon, 20 Jan 2025 00:00:00 GMT</pubDate></item><item><title>The Right Way to Connect SQL to Power BI</title><link>https://tamasczaban.github.io/projects/02-sql-to-power-bi/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/02-sql-to-power-bi/</guid><description>Pulling data straight from a database into Power BI works — until it doesn&apos;t. Here&apos;s the pattern I use to keep reports fast, clean, and maintainable.</description><pubDate>Tue, 15 Oct 2024 00:00:00 GMT</pubDate></item><item><title>Vital Registry v1 — Streamlit Production</title><link>https://tamasczaban.github.io/projects/vital-registry/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/vital-registry/</guid><description>The v1 of Vital Registry: a production full-stack CRM built with my brother for our Mum&apos;s BEMER medical device rental business. Streamlit frontend over Firebase Firestore, Stripe billing, Google/Facebook OAuth, client-side PDF contract generation, dual inventory (B2C + B2B cross-rentals), multi-entity billing, and 391 passing tests.</description><pubDate>Mon, 01 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Olympic Games Dashboard</title><link>https://tamasczaban.github.io/projects/olympic-games-dashboard/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/olympic-games-dashboard/</guid><description>Historical summer Olympics performance dashboard built with SQL Server and Power BI — filterable by country, with medal counts, age group breakdowns, and competitor-level drill-through.</description><pubDate>Thu, 01 Sep 2022 00:00:00 GMT</pubDate></item><item><title>Daily Steps Tracker</title><link>https://tamasczaban.github.io/projects/daily-steps-tracker/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/daily-steps-tracker/</guid><description>Personal fitness analytics dashboard in Power BI, tracking daily step counts with running vs walking breakdowns using a custom DAX data model.</description><pubDate>Wed, 01 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Movies Correlation Analysis</title><link>https://tamasczaban.github.io/projects/movies-correlation-analysis/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/movies-correlation-analysis/</guid><description>Python-based statistical analysis of what drives box office revenue, using Pandas, Seaborn, and Matplotlib on a Kaggle movies dataset.</description><pubDate>Tue, 01 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Sales Management Dashboard</title><link>https://tamasczaban.github.io/projects/sales-management-dashboard/</link><guid isPermaLink="true">https://tamasczaban.github.io/projects/sales-management-dashboard/</guid><description>Interactive Power BI dashboard giving sales leadership a high-level overview of product sales by client over time, with budget vs actuals comparison.</description><pubDate>Sat, 01 Jan 2022 00:00:00 GMT</pubDate></item></channel></rss>