Sign in

Ottorino Bruni

@ottorinobruni.bsky.social
171 followers 149 following 842 posts

I love "seeing beyond" with my job and enjoy crafting apps in my free time 💻🌙 | Passionate Software Engineer | DevOps 🚀 codeswissknife.com 🚀

PostsRepliesMedia
Ottorino Bruni @ottorinobruni.bsky.social · 8h
How do you turn a local RAG app in C# into an AI Agent? In Part 1, I use Microsoft Agent Framework to expose Qdrant search as a tool and let the model decide when retrieval is needed. www.ottorinobruni.com/from-local-r... #dotnet #csharp #aiagent #rag #ollama #qdrant
ottorinobruni.com
From Local RAG to an AI Agent in C# with Ollama and Qdrant - Part 1 - Ottorino Bruni
Learn how to evolve a local RAG application into an AI Agent in C# using Ollama, Qdrant, and Microsoft Agent Framework with tool calling
000
Ottorino Bruni @ottorinobruni.bsky.social · 12h
Stop discovering expired food when it’s already too late. 🥫 iPantry keeps track of what’s in your pantry, fridge and freezer, reminds you about expiration dates, and helps build your shopping list. apps.apple.com/us/app/ipant... #indiedev #iOS #productivity
132
Ottorino Bruni @ottorinobruni.bsky.social · 02/10/2026
A two-minute pause can fit even into a busy day. 🌿 Breath Box guides you through simple breathing sessions for calm, focus, sleep, balance, or a quick reset with visual, sound, and haptic guidance. apps.apple.com/us/app/breat... #indiedev #iOS #breathing #wellness
042
Ottorino Bruni @ottorinobruni.bsky.social · 02/10/2026
🚨 Want to add AI to your .NET apps easily? Get started with Microsoft.Extensions.AI: unified API, local Ollama models & clean DI! 🤖 Guide: www.ottorinobruni.com/getting-star... Tried it yet? 👇 #dotnet #CSharp #AI #MicrosoftExtensionsAI
ottorinobruni.com
Getting Started with AI in .NET: A Simple Guide to Microsoft.Extensions.AI - Ottorino Bruni
Discover how to integrate Large Language Models (LLMs) into .NET applications using Microsoft.Extensions.AI and Ollama. Learn the fundamentals of AI-powered functionality with practical examples in th...
000
Ottorino Bruni @ottorinobruni.bsky.social · 01/10/2026
🚨 Building a local RAG app in C#? Part 4: Next steps with Ollama + Qdrant fully local, more complete! 🤖📚 Guide: www.ottorinobruni.com/build-local-... Following the series? 👇 #dotnet #CSharp #RAG #Ollama
ottorinobruni.com
Build a Local RAG Application in C# with Ollama and Qdrant - Part 4 - Ottorino Bruni
Learn how to improve a local RAG application in C# with Microsoft.Extensions.DataIngestion, token-based chunking, Ollama, Qdrant, and Microsoft.Extensions.AI
010
Ottorino Bruni @ottorinobruni.bsky.social · 30/09/2026
🚨 Vague errors confusing your API clients? Use ProblemDetails in ASP.NET Core for clean, standardized error responses! 📋🔧 Guide: www.ottorinobruni.com/how-to-use-p... How do you handle API errors? 👇 #dotnet #ASPNETCore #MinimalAPI
ottorinobruni.com
How to Use ProblemDetails in ASP.NET Core APIs for Better Error Handling - Ottorino Bruni
Learn how to improve error handling in your ASP.NET Core APIs using the ProblemDetails standard (RFC 9457). This guide shows how to structure meaningful error responses with minimal APIs, global excep...
000
Ottorino Bruni @ottorinobruni.bsky.social · 30/09/2026
Your bookmarks shouldn’t be trapped inside one browser. 🔖 Bookmark Bar puts them in your Mac menu bar and lets you open any link directly in Safari, Chrome, Firefox, Edge, or your preferred browser. apps.apple.com/us/app/bookm... #indiedev #macOS #productivity
053
Ottorino Bruni @ottorinobruni.bsky.social · 29/09/2026
🚨 Complex object creation in C# getting messy? Simplify it with the Builder Pattern: clean, fluent code with real examples! 🛠️ Guide: www.ottorinobruni.com/builder-patt... Used Builder before? 👇 #dotnet #CSharp #DesignPatterns
ottorinobruni.com
Builder Pattern in C# and .NET – Simplify Object Creation with Real Examples - Ottorino Bruni
Learn how the Builder Pattern in C# and .NET can simplify object creation using practical and beginner-friendly real-world examples.
000
Ottorino Bruni @ottorinobruni.bsky.social · 28/09/2026
Turn voice notes into text without sending private conversations to the cloud. 🎙️🔒 Speech & Audio to Text Offline transcribes directly on your device even without an internet connection. apps.apple.com/us/app/speec... #indiedev #iOS #privacy #transcription
152
Ottorino Bruni @ottorinobruni.bsky.social · 28/09/2026
🚨 Complex data queries in C# getting messy? Master advanced LINQ operators with practical .NET examples cleaner, more powerful code! 📊 Guide: www.ottorinobruni.com/advanced-lin... Favorite LINQ operator? 👇 #dotnet #CSharp #LINQ
ottorinobruni.com
Advanced LINQ Operators in C# – Practical Examples for .NET Developers - Ottorino Bruni
Learn advanced LINQ operators in C# with practical examples. Explore GroupBy, SelectMany, Join, Distinct, and aggregation using a simple .NET console app.
000
Ottorino Bruni @ottorinobruni.bsky.social · 27/09/2026
Stop jumping between dozens of developer websites and stop pasting sensitive data into them. 🔒 CodeSwissKnife puts 48 developer tools, an MCP Inspector, and an AI Developer Library in one Mac app, with your data processed locally. codeswissknife.com #macOS #devtools #privacy #indiedev
074
Ottorino Bruni @ottorinobruni.bsky.social · 27/09/2026
🚨 Confused by AI terms as a developer? Clear guide to tokens, inference, embeddings, vector DBs & RAG! 🤖 📖 Guide: www.ottorinobruni.com/ai-basics-fo... Which concept confuses you most? 👇 #dotnet #AI #RAG #Embeddings
ottorinobruni.com
AI Basics for Developers: Tokens, Inference, Embeddings, Vector Databases and RAG Explained - Ottorino Bruni
Learn AI basics for developers: tokens, inference, embeddings, vector databases, and RAG explained in a simple and practical way.
000
Ottorino Bruni @ottorinobruni.bsky.social · 26/09/2026
🛠️ Your Mac deserves a developer toolkit. CodeSwissKnife brings JSON tools, semantic diff & an MCP Inspector into one app. 🔥 September only: 50% OFF a personal licence for 2 Macs! 👉 codeswissknife.com #macOS #DevTools #MCP
codeswissknife.com
CodeSwissKnife, The Native Mac Toolbox for Developers
51+ developer features for formatting, inspecting, decoding, diffing and automating work locally on your Mac.
020
Ottorino Bruni @ottorinobruni.bsky.social · 25/09/2026
Your best feature request might already be hidden in hundreds of App Store reviews. 🔍 AppReview AI turns user feedback into clear insights, recurring issues, sentiment trends, and feature requests in seconds. www.appreview-ai.com #indiedev #AI #AppStore #productivity
153
Ottorino Bruni @ottorinobruni.bsky.social · 25/09/2026
🚨 Separate memory + distributed caches too complex? HybridCache in .NET: in-memory + Redis in one API, with stampede protection! ⚡ 📦 Guide: www.ottorinobruni.com/how-to-imple... Tried HybridCache yet? 👇 #dotnet #CSharp #Caching
000
Ottorino Bruni @ottorinobruni.bsky.social · 24/09/2026
Your workday ends. But did you work 8 hours, 8:30, or 9? ⏱️ HourLog keeps track of hours, breaks, overtime, and earnings so you don’t have to calculate everything yourself. apps.apple.com/us/app/hourl... #indiedev #iOS #timetracking #productivity
053
Ottorino Bruni @ottorinobruni.bsky.social · 24/09/2026
🚨 Transient failures breaking your APIs? Make them resilient with Polly v8: Retry + Circuit Breaker in ASP.NET Core! 🛡️ ⚡ Guide: www.ottorinobruni.com/how-to-build... Favorite resilience pattern? 👇 #dotnet #ASPNETCore #Polly
ottorinobruni.com
How to Build Resilient APIs in ASP.NET Core with Polly Retry and Circuit Breaker - Ottorino Bruni
Introduction When building modern APIs, one thing is certain: HTTP calls will fail. It does not matter how well your code is written. Networks are unreliable, external services can be slow, and tempor...
000
Ottorino Bruni @ottorinobruni.bsky.social · 23/09/2026
Stop doing time zone math before every meeting. 🌍 Flag Time compares cities side by side, highlights WORK, EARLY, LATE and NIGHT, and helps you quickly find the right time to connect. apps.apple.com/us/app/flag-... #indiedev #iOS #productivity #remotework
062
Ottorino Bruni @ottorinobruni.bsky.social · 23/09/2026
🚨 Building a local RAG app in C#? Part 4: Next steps with Ollama + Qdrant fully local, more complete! 🤖 📚 Guide: www.ottorinobruni.com/build-local-... Following the series? 👇 #dotnet #CSharp #RAG #Ollama
ottorinobruni.com
Build a Local RAG Application in C# with Ollama and Qdrant - Part 4 - Ottorino Bruni
Learn how to improve a local RAG application in C# with Microsoft.Extensions.DataIngestion, token-based chunking, Ollama, Qdrant, and Microsoft.Extensions.AI
200
Ottorino Bruni @ottorinobruni.bsky.social · 22/09/2026
Found a useful article but don’t have time to turn it into content? ✍️ Paste the link into AI Writing Tool. It extracts the text automatically, then lets you summarize, rewrite, or create a social post with on-device AI. apps.apple.com/us/app/ai-wr... #indiedev #iOS #AI #productivity
052
Ottorino Bruni @ottorinobruni.bsky.social · 22/09/2026
🚨 Want to add AI to your .NET apps easily? Get started with Microsoft.Extensions.AI: unified API, local Ollama models & clean DI! 🤖 Guide: www.ottorinobruni.com/getting-star... Tried it yet? 👇 #dotnet #CSharp #AI #MicrosoftExtensionsAI
ottorinobruni.com
Getting Started with AI in .NET: A Simple Guide to Microsoft.Extensions.AI - Ottorino Bruni
Discover how to integrate Large Language Models (LLMs) into .NET applications using Microsoft.Extensions.AI and Ollama. Learn the fundamentals of AI-powered functionality with practical examples in th...
000
Ottorino Bruni @ottorinobruni.bsky.social · 21/09/2026
Your Mac menu bar can be more than Wi-Fi and battery. ⚡ CodeSwissKnife Bar puts everyday developer utilities one click away, so you can format, encode, convert, and generate without breaking your workflow. apps.apple.com/us/app/codes... #indiedev #macOS #devtools #productivity
032
Ottorino Bruni @ottorinobruni.bsky.social · 20/09/2026
You don’t need a long meditation session to make room for a pause. 🌿 Breath Box guides you through 4–6, box breathing, 4–7–8, 5–5, or a quick 2-minute reset—with visual, sound, and haptic guidance. apps.apple.com/us/app/breat... #indiedev #iOS #breathwork #wellness
043
Ottorino Bruni @ottorinobruni.bsky.social · 20/09/2026
🚨 Building a local RAG app in C#? Part 4: Next steps with Ollama + Qdrant still fully local, more complete! 🤖 📚 Guide: www.ottorinobruni.com/build-local-... Following the series? 👇 #dotnet #CSharp #RAG #Ollama
ottorinobruni.com
Build a Local RAG Application in C# with Ollama and Qdrant - Part 4 - Ottorino Bruni
Learn how to improve a local RAG application in C# with Microsoft.Extensions.DataIngestion, token-based chunking, Ollama, Qdrant, and Microsoft.Extensions.AI
200
Ottorino Bruni @ottorinobruni.bsky.social · 19/09/2026
Your day doesn’t always need another productivity hack. Sometimes it needs a breathing break. 🌿 Breath Box guides you through simple breathing rhythms for calm, focus, rest, or a quick reset offline and without an account. apps.apple.com/us/app/breat... #indiedev #iOS #breathing #wellness
062
Ottorino Bruni @ottorinobruni.bsky.social · 19/09/2026
Part 4 of my local RAG series is live 🚀 This time: Microsoft.Extensions.DataIngestion for cleaner document ingestion and token-based chunking in C#. Same Ollama + Qdrant pipeline, better ingestion. 🧩 www.ottorinobruni.com/build-local-... #dotnet #csharp #rag #ai
000
Ottorino Bruni @ottorinobruni.bsky.social · 18/09/2026
Different cities. Different time zones. One simple view. 🌍 Flag Time lets you compare cities instantly, spot WORK, EARLY, LATE and NIGHT hours, and find the right time to connect. apps.apple.com/us/app/flag-... #indiedev #iOS #productivity #remotework
063
Ottorino Bruni @ottorinobruni.bsky.social · 18/09/2026
🚨 Confused by AI terms as a developer? Clear guide to tokens, inference, embeddings, vector DBs & RAG! 🤖 📖 Guide: www.ottorinobruni.com/ai-basics-fo... Which concept confuses you most? 👇 #dotnet #AI #RAG #Embeddings
ottorinobruni.com
AI Basics for Developers: Tokens, Inference, Embeddings, Vector Databases and RAG Explained - Ottorino Bruni
Learn AI basics for developers: tokens, inference, embeddings, vector databases, and RAG explained in a simple and practical way.
000
Ottorino Bruni @ottorinobruni.bsky.social · 17/09/2026
🚨 APIs getting hammered by too many requests? Add Rate Limiting in ASP.NET Core for better security and performance! 🛡️ ⚡ Guide: www.ottorinobruni.com/how-to-use-r... Using rate limiting? 👇 #dotnet #ASPNETCore #RateLimiting #APISecurity
ottorinobruni.com
How to Use Rate Limiting in ASP.NET Core for Better API Security and Performance - Ottorino Bruni
Learn how to use the built-in Rate Limiting middleware in ASP.NET Core to protect your APIs from abuse, ensure fair usage, and maintain reliable performance. Includes a complete example using Minimal ...
000
Ottorino Bruni @ottorinobruni.bsky.social · 16/09/2026
Turn your Mac menu bar into a developer toolbox. ⚡ CodeSwissKnife Bar keeps everyday dev utilities just one click away fast access without interrupting your workflow. apps.apple.com/us/app/codes... #indiedev #macOS #devtools #productivity
031
Ottorino Bruni @ottorinobruni.bsky.social · 15/09/2026
Your next feature request may already be sitting in your App Store reviews. 🔍 AppReview AI analyzes customer feedback to uncover recurring issues, sentiment trends, and what users actually want next. www.appreview-ai.com #indiedev #AI #AppStore #productivity
031
Ottorino Bruni @ottorinobruni.bsky.social · 15/09/2026
🚨 Complex objects in C# hard to create? Master the Builder Pattern for clean, fluent, maintainable code with real examples! 🛠️ Guide: www.ottorinobruni.com/builder-patt... Used Builder before? 👇 #dotnet #CSharp #DesignPatterns
ottorinobruni.com
Builder Pattern in C# and .NET – Simplify Object Creation with Real Examples - Ottorino Bruni
Learn how the Builder Pattern in C# and .NET can simplify object creation using practical and beginner-friendly real-world examples.
000
Ottorino Bruni @ottorinobruni.bsky.social · 14/09/2026
Stop buying groceries you already have at home. 🥫 iPantry keeps your pantry, fridge and freezer organized, tracks expiration dates, and turns what you’re missing into a shopping list. apps.apple.com/us/app/ipant... #indiedev #iOS #productivity
021
Ottorino Bruni @ottorinobruni.bsky.social · 13/09/2026
Stop pasting sensitive code and data into online developer tools. 🔒 CodeSwissKnife runs 48 tools locally on your Mac, with an MCP Inspector and AI Developer Library built in. Private by design. One-time purchase. No subscription. codeswissknife.com #macOS #devtools #privacy #indiedev
codeswissknife.com
CodeSwissKnife, The Native Mac Toolbox for Developers
51+ developer features for formatting, inspecting, decoding, diffing and automating work locally on your Mac.
031
Ottorino Bruni @ottorinobruni.bsky.social · 13/09/2026
🚨 Why rebuild a developer toolbox as native macOS? The story behind CodeSwissKnife: faster, offline & built for real workflows! 🧰 ⚡ Guide: www.ottorinobruni.com/why-rebuilt-... Tried native tools? 👇 #dotnet #macOS #DeveloperTools #Productivity
ottorinobruni.com
Why I Rebuilt CodeSwissKnife as a Native macOS Developer Toolbox - Ottorino Bruni
Discover why I rebuilt CodeSwissKnife 2.0 as a native Mac app with 48 offline developer tools, local processing, MCP Inspector and an AI Developer Library.
010
Ottorino Bruni @ottorinobruni.bsky.social · 11/09/2026
🚨 Looking for a Docker alternative for .NET? Get started with Podman: daemonless, rootless & beginner-friendly! 🐳 🔧 Guide: www.ottorinobruni.com/podman-for-d... Tried Podman yet? 👇 #dotnet #Podman #Docker #Containers
ottorinobruni.com
Podman for .NET Developers: A Beginner-Friendly Docker Alternative - Ottorino Bruni
Discover how to use Podman as a secure, daemonless alternative to Docker for .NET development. Learn about rootless containers, seamless Docker command compatibility, and enterprise-ready features. Pe...
211
Ottorino Bruni @ottorinobruni.bsky.social · 11/09/2026
Found something worth sharing? Turn the link into a post. ✍️ Paste a URL into AI Writing Tool, extract the article automatically, then summarize or rewrite it into social-ready content with on-device AI. apps.apple.com/us/app/ai-wr... #indiedev #iOS #AI #contentcreation
041
Ottorino Bruni @ottorinobruni.bsky.social · 10/09/2026
Bookmarks everywhere? Safari, Chrome, Firefox, Edge… 🔖 Bookmark Bar puts them in one place in your Mac menu bar and lets you open each link directly in the browser you want. apps.apple.com/us/app/bookm... #indiedev #macOS #productivity
021
Ottorino Bruni @ottorinobruni.bsky.social · 10/09/2026
🚨 Tightly coupled to external APIs in .NET? Use the Adapter Pattern to wrap libraries, isolate dependencies & make testing easier! 🔌 🧪 Guide: www.ottorinobruni.com/adapter-patt... Used Adapter before? 👇 #dotnet #CSharp #DesignPatterns
ottorinobruni.com
Adapter Pattern in .NET – Decouple External Libraries and Wrap APIs for Easier Testing - Ottorino Bruni
Learn how to use the Adapter Pattern in .NET to decouple external libraries and wrap real APIs like Open-Meteo into clean, testable interfaces.A practical guide with a working Minimal API example, sho...
000
Ottorino Bruni @ottorinobruni.bsky.social · 09/09/2026
How much did you actually work this month? ⏱️ HourLog keeps work hours, breaks, overtime and earnings organized, with timesheet exports when you need them. apps.apple.com/us/app/hourl... #indiedev #iOS #productivity #timetracking
030
Ottorino Bruni @ottorinobruni.bsky.social · 09/09/2026
🚨 Building a local RAG app in C#? Part 3: Next steps with Ollama + Qdrant fully local, more complete! 🤖 📚 Guide: www.ottorinobruni.com/build-local-... Following the series? 👇 #dotnet #CSharp #RAG #Ollama
ottorinobruni.com
Build a Local RAG Application in C# with Ollama and Qdrant - Part 3 - Ottorino Bruni
Improve a local RAG application in C# using Microsoft.Extensions.AI and VectorData with Ollama and Qdrant for cleaner, more maintainable AI code.
300
Ottorino Bruni @ottorinobruni.bsky.social · 08/09/2026
Sensitive developer data doesn’t belong in random online tools. 🔒 CodeSwissKnife keeps 48 developer tools local on your Mac, plus an MCP Inspector and AI Developer Library. Your code and data stay on your machine. codeswissknife.com #macOS #devtools #privacy #indiedev
051
Ottorino Bruni @ottorinobruni.bsky.social · 08/09/2026
🚨 Want to build your own Garmin watch face? Get started with Connect IQ + Monkey C in VS Code: create, test & deploy your first watch face! ⌚ 💻 Guide: www.ottorinobruni.com/getting-star... Tried it yet? 👇 #dotnet #Garmin #ConnectIQ #MonkeyC
ottorinobruni.com
Getting Started with Garmin Connect IQ Development: Build Your First Watch Face with Monkey C and VS Code - Ottorino Bruni
Learn how to create your first Garmin Connect IQ watch face using VS Code and Monkey C. Complete beginner's guide covering SDK setup, development environment configuration, and watch face deployment. ...
010
Ottorino Bruni @ottorinobruni.bsky.social · 07/09/2026
🚨 Need a fast, offline developer toolbox on macOS? CodeSwissKnife: native tools for everyday coding tasks no cloud, no clutter! 🧰 ⚡ Try it: codeswissknife.com Using it yet? 👇 #dotnet #macOS #DeveloperTools #Productivity
010
Ottorino Bruni @ottorinobruni.bsky.social · 07/09/2026
Your best product ideas might already be hiding in your App Store reviews. 💡 AppReview AI turns customer feedback into clear summaries, recurring pain points, feature requests, and actionable insights. www.appreview-ai.com #indiedev #AI #AppStore #productivity
051
Ottorino Bruni @ottorinobruni.bsky.social · 07/09/2026
🚨 Building a local RAG app in C#? Part 3: Next steps with Ollama + Qdrant still fully local, more complete! 🤖 📚 Guide: www.ottorinobruni.com/build-local-... Following the series? 👇 #dotnet #CSharp #RAG #Ollama
ottorinobruni.com
Build a Local RAG Application in C# with Ollama and Qdrant - Part 3 - Ottorino Bruni
Improve a local RAG application in C# using Microsoft.Extensions.AI and VectorData with Ollama and Qdrant for cleaner, more maintainable AI code.
220
Ottorino Bruni @ottorinobruni.bsky.social · 05/09/2026
Working across time zones? Stop counting hours in your head. 🌍 Flag Time compares cities at a glance, shows WORK, EARLY, LATE or NIGHT, and helps you find the right time to connect. apps.apple.com/us/app/flag-... #indiedev #iOS #productivity #remotework
020
Ottorino Bruni @ottorinobruni.bsky.social · 05/09/2026
🚨 Ready for the next step in local RAG? Part 3: Continue building your C# RAG app with Ollama + Qdrant more control, still fully local! 🤖 📚 Guide: www.ottorinobruni.com/build-local-... Following the series? 👇 #dotnet #CSharp #RAG #Ollama
ottorinobruni.com
Build a Local RAG Application in C# with Ollama and Qdrant - Part 3 - Ottorino Bruni
Improve a local RAG application in C# using Microsoft.Extensions.AI and VectorData with Ollama and Qdrant for cleaner, more maintainable AI code.
300
Ottorino Bruni @ottorinobruni.bsky.social · 04/09/2026
Your pantry should help you save food, not forget it. 🥫 iPantry tracks what you have, keeps an eye on expiration dates, and helps you build your shopping list with iCloud sync across your devices. apps.apple.com/us/app/ipant... #indiedev #iOS #productivity
060
Ottorino Bruni @ottorinobruni.bsky.social · 04/09/2026
🚨 Want local AI on Apple devices with SwiftUI? Get started with Apple Foundation Models: on-device inference, no cloud needed! 🍎 🤖 Guide: www.ottorinobruni.com/getting-star... Tried on-device AI yet? 👇 #dotnet #SwiftUI #AppleAI #FoundationModels
ottorinobruni.com
Getting Started with Apple Foundation Models for Local AI in SwiftUI - Ottorino Bruni
Learn how to use Apple Foundation Models for on-device AI in SwiftUI apps. Build local, private, and intelligent features without external APIs
010