<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rohit Mahajan</title>
    <description>The latest articles on DEV Community by Rohit Mahajan (@rohitisavailable).</description>
    <link>https://dev.to/rohitisavailable</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4155296%2F54a67e8a-b043-440e-ae6f-dd91a130798c.png</url>
      <title>DEV Community: Rohit Mahajan</title>
      <link>https://dev.to/rohitisavailable</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rohitisavailable"/>
    <language>en</language>
    <item>
      <title>PassThrough: Catch Shoot Expenses Before They Disappear</title>
      <dc:creator>Rohit Mahajan</dc:creator>
      <pubDate>Thu, 15 Oct 2026 05:13:59 +0000</pubDate>
      <link>https://dev.to/rohitisavailable/passthrough-catch-shoot-expenses-before-they-disappear-2jeh</link>
      <guid>https://dev.to/rohitisavailable/passthrough-catch-shoot-expenses-before-they-disappear-2jeh</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge: Week 2 — Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fadv9esgg10k2nvyj2etb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fadv9esgg10k2nvyj2etb.png" alt="PassThrough Home Page" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;PassThrough helps freelance photographers and videographers turn shoot expenses into invoice-ready lines.&lt;/p&gt;

&lt;p&gt;Parking, travel, props, and rush prints are easy to forget when the job is over. Upload a receipt, attach it to a shoot and client, review the extracted fields, then approve the costs that are billable. Only approved, billable expenses appear in the CSV export.&lt;/p&gt;

&lt;p&gt;The model suggests the merchant, date, total, currency, and a short expense description. It does not approve anything or send an invoice. The freelancer checks the source receipt and corrects the fields first.&lt;/p&gt;

&lt;p&gt;The person I built this for is a working photographer or videographer who regularly fronts small production costs. Recovering even a few missed expenses could justify paying for a small tool like this. I have not tested that willingness to pay with a customer yet; that is the next thing I need to validate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://freelanceguard.onrender.com/" rel="noopener noreferrer"&gt;Try PassThrough&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The public demo is deployed with Backboard configured. Use sample receipts only: the Render free service can lose stored data after a restart or deploy, and this version is not for sensitive client documents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Rohitisavailable/PassThrough" rel="noopener noreferrer"&gt;PassThrough on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The app uses Python, FastAPI, SQLite, and a small HTML/CSS/JavaScript interface. Backboard sends receipt images and scanned PDF pages to the configured open-weight &lt;strong&gt;Qwen3.5 9B&lt;/strong&gt; model through OpenRouter. Searchable PDF text is extracted locally, then sent for model processing.&lt;/p&gt;

&lt;p&gt;After extraction, ordinary code validates the date, currency, and positive amount. The user reviews each field and decides whether it is billable. The CSV contains only approved billable lines.&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
  A[Receipt photo or PDF] --&amp;gt; B[PassThrough web app]
  B --&amp;gt;|Image or scanned page| C[Backboard]
  B --&amp;gt;|Searchable PDF text| C
  C --&amp;gt; D[Qwen3.5 9B via OpenRouter]
  D --&amp;gt; E[Suggested receipt fields]
  E --&amp;gt; F[Human review and code validation]
  F --&amp;gt; G[Workspace expense list]
  F --&amp;gt; H[Approved invoice-line CSV]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Each browser profile gets a separate workspace using a private cookie, and database queries scope receipts to that workspace. This is not account authentication: people sharing one browser profile share its workspace. On local runs, receipt files and records stay in the local data directory. On the hosted demo, they are stored by the Render service and may be ephemeral.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;I chose an open-weight model because receipt extraction is a narrow job where I want to be able to change the model without rebuilding the whole product around one proprietary model API. Backboard gives this web demo a hosted way to run the configured model, while leaving the model choice visible and replaceable.&lt;/p&gt;

&lt;p&gt;There is a real tradeoff: this is &lt;strong&gt;not local inference&lt;/strong&gt;. Receipt images and scanned pages go to Backboard, and searchable PDF text is sent there too. Hosted inference is easier to demo than asking every freelancer to install a vision model, but it adds provider cost and means the public version is not suitable for confidential receipts. A local inference option would be a separate piece of work, not a feature I’m claiming today.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Best Use of Backboard&lt;/li&gt;
&lt;li&gt;Best Use of Render&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Fieldnote: a tiny local AI prompt to help you notice more outside</title>
      <dc:creator>Rohit Mahajan</dc:creator>
      <pubDate>Wed, 07 Oct 2026 11:07:03 +0000</pubDate>
      <link>https://dev.to/rohitisavailable/fieldnote-a-tiny-local-ai-prompt-to-help-you-notice-more-outside-18ll</link>
      <guid>https://dev.to/rohitisavailable/fieldnote-a-tiny-local-ai-prompt-to-help-you-notice-more-outside-18ll</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2a05nh7kybwjqjjin1tc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2a05nh7kybwjqjjin1tc.png" alt=" " width="800" height="617"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Fieldnote is a pocket sized outdoor reflection companion. Write one thing you noticed on a walk a bird call, a patch of moss, wind in the trees and it gives you one short sensory prompt. The goal is to glance at the screen, get curious about your surroundings, and put the phone away.&lt;/p&gt;

&lt;p&gt;The local path runs an open-weight model in the browser. If a device cannot run WebGPU, Fieldnote still offers a clearly labeled sample prompt; it does not pretend that the sample came from AI. I also built an explicit hosted-model path for devices that need it. That path sends the note to a Supabase Edge Function and then to Backboard, so it has different privacy and connectivity tradeoffs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://trailside.onrender.com/" rel="noopener noreferrer"&gt;Try Fieldnote on Render&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first local model load needs a connection to download the model files. After they are cached, local inference can work without sending the note to a model server, on browsers and devices that support WebGPU and have enough memory. My testing also surfaced the limitation: some devices do not expose a compatible GPU, so the local model cannot start there. The hosted fallback is implemented, but I have not yet verified a complete live generation with its production provider credentials; I’m not presenting that route as a confirmed working demo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Rohitisavailable/trailside" rel="noopener noreferrer"&gt;Source code on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The local model/runtime integration is in &lt;code&gt;app.js&lt;/code&gt;; the hosted proxy is in &lt;code&gt;supabase/functions/field-prompt/&lt;/code&gt;. The repository README covers local setup and deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;Fieldnote uses &lt;a href="https://github.com/mlc-ai/web-llm" rel="noopener noreferrer"&gt;WebLLM&lt;/a&gt; to run &lt;code&gt;Qwen2.5-0.5B-Instruct-q4f16_1-MLC&lt;/code&gt; with WebGPU in the browser. The model turns a short field note into one safe, one-minute observation prompt. Its system instructions explicitly avoid identifying wildlife or encouraging people to approach it.&lt;/p&gt;

&lt;p&gt;The local route keeps the note in the browser. The model files are downloaded on first use and cached by the browser for this site. The app also has a separate hosted route: the browser calls a Supabase Edge Function, which keeps the Backboard credential server-side. Its deployment settings are intended to select &lt;code&gt;google/gemma-3-12b-it&lt;/code&gt; through OpenRouter. Hosted generation needs network access and sends the note to the hosted service; it is not private local inference. That route still needs a successful production end-to-end check.&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
  A[Notice something outside] --&amp;gt; B[Write a short field note]
  B --&amp;gt; C{Choose a route}
  C --&amp;gt;|Local, compatible WebGPU| D[WebLLM + Qwen in browser]
  C --&amp;gt;|Hosted, explicit opt-in| E[Supabase Edge Function]
  E --&amp;gt; F[Backboard / configured Gemma model]
  D --&amp;gt; G[One-minute field prompt]
  F --&amp;gt; G
  G --&amp;gt; H[Put the phone away]&lt;/code&gt;&lt;/pre&gt;



&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open weights and an open browser runtime make the local first version possible: people can use the prompt without sending their observation to an AI provider, and there is no per request model API charge on that path. The small model is also replaceable, so the app can evolve as browser runtimes and compact models improve.&lt;/p&gt;

&lt;p&gt;That openness comes with real constraints. WebGPU support, memory, and the initial model download determine whether the local route works on a particular phone. A hosted model can reach more devices, but it needs connectivity, may cost money, and means the user's note leaves the device. I want the app to make that tradeoff visible instead of quietly routing every observation to a server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Overall challenge&lt;/li&gt;
&lt;li&gt;Best Use of Render (the live frontend is deployed as a Render Static Site)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Exploring Generative AI with the Gemini API in Vertex AI: A Technical Overview</title>
      <dc:creator>Rohit Mahajan</dc:creator>
      <pubDate>Thu, 01 Oct 2026 16:25:23 +0000</pubDate>
      <link>https://dev.to/rohitisavailable/exploring-generative-ai-with-the-gemini-api-in-vertex-ai-a-technical-overview-j7k</link>
      <guid>https://dev.to/rohitisavailable/exploring-generative-ai-with-the-gemini-api-in-vertex-ai-a-technical-overview-j7k</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx7m3ksk12l9vrik4wdhu.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx7m3ksk12l9vrik4wdhu.webp" alt="Gemini's vertex image" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Generative AI is rapidly reshaping the landscape of artificial intelligence by enabling machines to produce new, original content ranging from text and images to video and beyond.&lt;/p&gt;

&lt;p&gt;Google Cloud’s Vertex AI platform now includes the powerful Gemini API, designed to simplify access to state of the art multimodal generative models.&lt;/p&gt;

&lt;p&gt;This blog dives into the technical aspects of the Gemini API within Vertex AI, providing insights into its architecture, capabilities, and practical integration strategies for developers and data scientists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding Gemini API in Vertex AI&lt;/strong&gt;&lt;br&gt;
At its core, the Gemini API provides programmatic access to Google’s advanced generative AI foundation models. These models are pretrained on massive datasets and fine tuned for multimodal tasks, meaning they can handle text, images, and video seamlessly within a single unified API.&lt;/p&gt;

&lt;p&gt;The Gemini API is not a standalone service it’s embedded within Vertex AI, Google Cloud’s end-to-end machine learning platform. This integration offers several benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Unified model management:&lt;/strong&gt; Use Vertex AI to deploy, monitor, and version control generative models.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalability and reliability:&lt;/strong&gt; Leverage Google Cloud’s infrastructure for high availability and autoscaling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security and compliance:&lt;/strong&gt; Benefit from built-in IAM controls, encryption, and audit logging.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Core Capabilities of Gemini API&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multimodal Generation:&lt;/strong&gt; Gemini’s models can generate coherent outputs across different media types. For example, you can submit a text prompt and receive an image or video, or vice versa, enabling complex multimodal workflows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fine-tuning and Customization:&lt;/strong&gt; Although the API exposes pretrained models, Vertex AI allows further fine-tuning on custom datasets. This helps tailor outputs to domain-specific vocabulary, style, or content constraints.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contextual Understanding:&lt;/strong&gt; Gemini models maintain contextual awareness across inputs, making outputs more relevant and consistent. This feature is especially useful in conversational AI and interactive applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;High Throughput Predictions:&lt;/strong&gt; The API is optimized for production workloads, supporting batch and streaming prediction modes, allowing integration into real-time applications and large-scale content pipelines.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Architectural Highlights&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Model Abstraction Layer:&lt;/strong&gt; The API abstracts underlying model complexities, presenting a simplified interface to developers. This means users can focus on designing prompts and workflows rather than managing AI architecture.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Vertex AI Pipeline Integration:&lt;/strong&gt; Gemini seamlessly integrates with Vertex AI pipelines, enabling automated end-to-end workflows — from data ingestion, preprocessing, model invocation, to post-processing and deployment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monitoring and Explainability:&lt;/strong&gt; Vertex AI’s tooling provides detailed monitoring dashboards, usage analytics, and explainability reports. These features are crucial for maintaining model performance and meeting regulatory requirements.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Integration Best Practices&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prompt Engineering:&lt;/strong&gt; Since Gemini’s outputs depend heavily on input prompts, invest time in crafting clear and context-rich prompts. Experimentation and iterative refinement help optimize results.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Latency and Cost Management:&lt;/strong&gt; Balance request complexity and response time by tuning batch sizes and model parameters. Utilize Vertex AI’s cost management tools to monitor usage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security Measures:&lt;/strong&gt; Implement strong authentication and role-based access control via Google Cloud IAM to secure API access, especially when integrating Gemini into customer-facing applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hybrid Workflows:&lt;/strong&gt; Combine Gemini-generated content with other ML models or business logic in Vertex AI pipelines for richer applications — for example, pairing text generation with sentiment analysis. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use Cases Where Gemini API Excels&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated Content Creation:&lt;/strong&gt; Generate high-quality marketing copy, product descriptions, or social media content with minimal human intervention.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Creative Design Assistance:&lt;/strong&gt; Assist graphic designers by generating initial image concepts or storyboards from textual briefs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Conversational AI:&lt;/strong&gt; Power intelligent virtual assistants capable of understanding and generating nuanced, multimodal responses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Video and Media Production:&lt;/strong&gt; Prototype video sequences or multimedia presentations by combining text, images, and video generation.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Gemini API in Vertex AI offers a technically robust and scalable solution to incorporate generative AI capabilities into modern applications. By abstracting complex model management and providing a unified multimodal interface, it accelerates innovation while maintaining enterprise-grade reliability and security.&lt;/p&gt;

&lt;p&gt;As generative AI continues to evolve, leveraging tools like Gemini within a comprehensive platform like Vertex AI positions developers and organizations to lead in AI-driven creativity and automation.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>education</category>
    </item>
  </channel>
</rss>
