I am a technical writer on topics related to IoT, DevOps and AI.

You can find my work freely on Medium

VLMs — Giving Language Models the Gift of Sight.

This article provides an overview of Vision Language Models (VLMs), a class of multimodal systems that integrate visual perception with language understanding. It traces their evolution from early image–text alignment models like CLIP to modern large multimodal models with native vision capabilities. The article explains how VLMs are trained using joint learning on image–text data with contrastive, generative, and alignment objectives, and categorizes major architectural approaches such as joint tokenization, frozen visual prefixes, cross-attention fusion, and training-free stitching. It also outlines key datasets used for training, common evaluation benchmarks for visual reasoning and video understanding, and emerging trends including unified token spaces, end-to-end training, and long-context vision for handling extended visual sequences.

WSO2, a place that taught me my real passion will find me wherever I go.

I joined WSO2 as an SRE intern with a background in DevOps but a long-standing interest in AI and robotics. Starting in the Choreo SRE team, I worked on PII detection and incident analysis, which introduced me deeply to applied NLP. This led to an opportunity with the AI & RnD team, where I fine-tuned small language models, built evaluation pipelines, and improved experimentation workflows. The journey culminated in developing “Oxy,” a Unitree Go2 robot showcased at WSO2Con Asia. In just six months, the internship reshaped my skills, confidence, and career direction toward research and development.

Creating ChatGPT out of Internet text — How LLMs are trained and fine-tuned.

Training a Large Language Model begins with cleaning and filtering vast amounts of internet text, which is then converted into numerical tokens. During the initial “pre-training” phase, the model learns language, facts, and reasoning by predicting words within this data, creating a knowledgeable but untamed base model. This base model is then refined through “fine-tuning,” where it is trained on instruction-response pairs to learn how to follow commands. Finally, its behavior is aligned with human values using techniques like Reinforcement Learning from Human Feedback (RLHF), which uses human ratings to teach the model to generate safer and more helpful answers. The finished model`s performance is then validated against standardized benchmarks for reasoning and factual accuracy.

Explain it to me like I’m six years old - Large Language Models (LLMs)

This article unpacks the fascinating world of Large Language Models (LLMs) in a friendly, story-driven tone that’s perfect for beginners. Starting with how models like ChatGPT, Claude, and Gemini came to be, it explains what LLMs are, how they’re trained, and how they mimic human language. It dives into transformer architecture, attention mechanisms, and the different model types — encoders, decoders, and seq2seq — all explained with analogies and simplified examples. The piece also touches on tokenization, next-word prediction, and popular LLMs in both open-source and proprietary categories. It's a fun, informative introduction for anyone looking to demystify the tech behind today’s AI revolution.

DevOps 101 with Luke — Part 02 : Everything Docker

This comprehensive guide on Docker dives into the essential aspects of the platform, starting with its architecture and core concepts like containers, images, Dockerfiles, and volumes. Using analogies such as cars and blueprints, it simplifies technical ideas for better understanding. It then walks through Docker installation on various systems, offers hands-on command-line examples for building, running, and managing containers, and explains interactions with Docker Hub. The article provides a practical foundation for beginners and sets the stage for more advanced topics in future installments of the DevOps 101 series.

Presidio in Action: Detecting and Securing PII in Text.

This article provides a comprehensive guide to using Microsoft Presidio SDK for detecting and anonymizing Personally Identifiable Information (PII) in text. It explains how Presidio leverages regex, Named Entity Recognition (NER), and context-aware methods to identify PII, and how it can be integrated via Python or deployed as a web service. Key components include the Analyzer (for detection) and Anonymizer (for redaction, encryption, masking, etc.). It also supports custom recognizers, external NER models, and full anonymization-deanonymization workflows, making it a robust solution for privacy compliance in diverse applications.

DevOps 101 with Luke — Part 01 : Introduction to Containerization.

The article introduces containerization as a solution to environment mismatch issues in software development. It explains how containers bundle applications with their dependencies for consistent behavior across systems. Unlike virtual machines, containers offer lightweight OS-level virtualization, enabling faster startup and better resource efficiency. Widely used in DevOps, microservices, and cloud-native applications, containerization enhances portability, scalability, and deployment consistency across environments.

Named Entity Recognition (NER) for sanitizing the PII and sensitive data for public LLMs

The article explores Named Entity Recognition (NER) as a key tool in protecting sensitive data when using public Large Language Models (LLMs). It details methods like regex, POS tagging, and transformer models such as BERT, highlighting NER’s ability to detect PII and improve data security. Various implementation tools like SpaCy, NLTK, and Microsoft Presidio are discussed, alongside challenges like ambiguity and multilingual support.

Best practices with Environment Variable Files(.env) in SDLC

The article outlines best practices for handling environment variable files (.env) in the software development lifecycle, emphasizing security, version control strategies, and automated management for streamlined deployments and development efficiency.

Introduction to IoT System Architectures

Explore IoT system architectures in this article, covering Cloud, Edge, and Fog models. Each architecture addresses different needs in terms of data processing and latency. Understand their advantages and drawbacks to choose the best fit for your IoT applications, ensuring effective and efficient system design.

Create your own PDF chatbot with OpenAI, Langchain and Streamlit

This article explains how to create a PDF chatbot using OpenAI, Langchain, and Streamlit with a Retrieval-Augmented Generation (RAG) approach. It details setting up the environment, coding, and deploying the chatbot, which leverages AI to extract and answer questions from PDF documents interactively.

Create an MQTT-powered React Native App for Your Next IoT Project

This article offers a practical guide to building IoT applications using MQTT (Message Queuing Telemetry Transport) with React Native. It explains the advantages of MQTT over HTTP, highlighting its lightweight nature, efficiency in low-bandwidth environments, and suitability for multi-client communication. The article focuses on implementing MQTT with the Paho-MQTT library, walking through client setup, connection, publishing, subscribing, and disconnecting. It also outlines the use of WebSockets for communication and shows how to integrate MQTT in a real-world React Native app, making it ideal for IoT use cases like device control or data collection.