---
title: "Zia Ullah (@ziaullahzia) | Hashnode"
description: "Full-Stack Developer · Technical Writer · Azure. Read the latest articles by Zia Ullah on Hashnode."
url: "https://hashnode.com/@ziaullahzia"
---

@ziaullahzia

# Zia Ullah

@ziaullahzia · Stockholm, Sweden · Joined June 2026

Full-Stack Developer · Technical Writer · Azure

[Website](https://ziaongit.github.io/)

### [How to Build an AI Agent with Function Calling in Node.js Using Google Gemini](https://freecodecamp.org/news/how-to-build-ai-agent-function-calling-nodejs-gemini?utm_source=hashnode&utm_medium=feed)

Last year, a client asked me to add a conversational interface to their internal reporting tool. Staff would type a question, and the system would pull a live answer from the database. I had the first

19 min read · [freecodecamp.org](https://freecodecamp.org/news/how-to-build-ai-agent-function-calling-nodejs-gemini?utm_source=hashnode&utm_medium=feed)

[Jul 24](https://hashnode.com/posts/how-to-build-ai-agent-function-calling-nodejs-gemini/6a63af5c9a1ab0289b0cbb6a)

### [How to Build a Multi-Tenant SaaS API with Node.js, RBAC, and Audit Logging](https://freecodecamp.org/news/how-to-build-a-multi-tenant-saas-api-with-nodejs-rbac-and-audit-logging?utm_source=hashnode&utm_medium=feed)

A colleague asked me to help debug what looked like a permissions issue in their SaaS project management tool. Users were seeing resources they hadn't created. I pulled up the query logs expecting som

21 min read · [freecodecamp.org](https://freecodecamp.org/news/how-to-build-a-multi-tenant-saas-api-with-nodejs-rbac-and-audit-logging?utm_source=hashnode&utm_medium=feed)

[Jul 20](https://hashnode.com/posts/how-to-build-a-multi-tenant-saas-api-with-nodejs-rbac-and-audit-logging/6a5e8914bc397f89a942b88b)

### [How to Manage Secrets Securely with Azure Key Vault in Node.js](https://freecodecamp.org/news/how-to-manage-secrets-securely-with-azure-key-vault-in-node-js?utm_source=hashnode&utm_medium=feed)

Last year a client called me about exactly this. Someone ran git log -p on a hunch and found a .env committed two years earlier, never caught. Database password, Stripe secret, JWT signing key — all s

21 min read · [freecodecamp.org](https://freecodecamp.org/news/how-to-manage-secrets-securely-with-azure-key-vault-in-node-js?utm_source=hashnode&utm_medium=feed)

[Jul 20](https://hashnode.com/posts/how-to-manage-secrets-securely-with-azure-key-vault-in-node-js/6a5e27b295e748bed9510853)

### [How to Build a RAG Chatbot for Your Docs with Node.js, Google Gemini, and pgvector](https://freecodecamp.org/news/how-to-build-rag-chatbot-nodejs-gemini-pgvector?utm_source=hashnode&utm_medium=feed)

I was helping a team that had a 200-page API documentation PDF. Every new engineer spent their first two weeks Ctrl+F-ing through it, asking the same questions in Slack, getting redirected to the same

20 min read · [freecodecamp.org](https://freecodecamp.org/news/how-to-build-rag-chatbot-nodejs-gemini-pgvector?utm_source=hashnode&utm_medium=feed)

[Jul 15](https://hashnode.com/posts/how-to-build-rag-chatbot-nodejs-gemini-pgvector/6a57a6aa328507d0d4d46169)

### [How to Containerize a Node.js Application with Docker and Deploy with GitHub Actions](https://freecodecamp.org/news/containerize-a-node-js-app-with-docker-and-deploy-with-github-actions?utm_source=hashnode&utm_medium=feed)

If you've been building Node.js projects, you've probably had an experience like this. The project runs fine on your machine, but when you push it to a server, something breaks. Maybe it's a different

14 min read · [freecodecamp.org](https://freecodecamp.org/news/containerize-a-node-js-app-with-docker-and-deploy-with-github-actions?utm_source=hashnode&utm_medium=feed)

[Jul 14](https://hashnode.com/posts/containerize-a-node-js-app-with-docker-and-deploy-with-github-actions/6a569b9cbd138d774dee2042)
