Ottorino Bruni's Avatar

Ottorino Bruni

@ottorinobruni

I love "seeing beyond" with my job and enjoy crafting apps in my free time πŸ’»πŸŒ™ | Passionate Software Engineer | DevOps πŸš€ https://codeswissknife.com πŸš€

108
Followers
138
Following
567
Posts
12.11.2024
Joined
Posts Following

Latest posts by Ottorino Bruni @ottorinobruni

Post image

πŸ›’ Ever buy groceries you already had at home?
iPantry tracks pantry items, expiration dates, and shopping lists with seamless iCloud sync.
Stay organized and waste less food.
Download πŸ‘‰ apps.apple.com/us/app/ipant...
#indiedev #iOS #productivity

10.03.2026 07:53 πŸ‘ 4 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
How to Use LINQ in C# – Practical Examples for .NET Developers - Ottorino Bruni Learn how to use LINQ in C# with practical, real-world examples. Understand Where, Select, OrderBy, FirstOrDefault and how to write clean, readable queries in .NET

LINQ > foreach! πŸš€ `students.Where(s => s.Age >= 18).ToList()` Less code, clearer intent, declarative style. Part 1 – LINQ essentials for .NET devs #dotnet #csharp #LINQ #DotNetDev
www.ottorinobruni.com/how-to-use-l...

09.03.2026 09:30 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

πŸ”– Your bookmarks shouldn’t be locked in one browser.
Bookmark Bar – Browser Hub puts all your links in the macOS menu bar for instant access across browsers.
Simple idea. Huge productivity boost.
Get it πŸ‘‰ apps.apple.com/us/app/bookm...
#indiedev #macOS #productivity

08.03.2026 10:29 πŸ‘ 4 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
How to Monitor Website and API Uptime Using Azure Functions and .NET – Part 2: Configuration, Retries and Smart Alerts - Ottorino Bruni Learn how to improve your .NET uptime monitor with Azure Functions and Logic Apps. Add config, retries, and dynamic email alerts in a free, serverless setup

Level up your Azure Functions uptime monitor! πŸš€ Part 2:
βœ… Config via env settings
βœ… Dynamic alerts
βœ… Simple retries
βœ… Better HttpClient
Smarter, flexible, beginner-friendly .NET monitoring! πŸ› οΈ #dotnet #AzureFunctions #CSharp #Monitoring #Backend www.ottorinobruni.com/how-to-monit...

08.03.2026 10:27 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

πŸƒ PokΓ©mon card collectors: scan your cards in seconds.
Card Scanner Value – TCG identifies cards instantly and shows real eBay price insights so you know their true market value.
Track collections and watchlists with ease.
Try it πŸ‘‰ apps.apple.com/us/app/card-...
#indiedev #PokemonTCG #TCG #iOS

07.03.2026 14:09 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Worker Service vs Console Application in .NET: Understanding the Right Choice - Ottorino Bruni Understand the real differences between Worker Services and Console Applications in .NET, and learn how to choose the right template for background and long-running processes.

Worker Service or just a Console App in .NET? πŸ€” Most devs default to Console apps for background tasks… and it works! But Worker Services give you: built-in DI, config & logging
better long-running behaviour Time to level up? #dotnet #DotNet #CSharp #WorkπŸš€ www.ottorinobruni.com/worker-servi...

07.03.2026 14:07 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

🎧 Turn voice notes into text instantly.
Speech & Audio to Text Offline transcribes audio directly on your device fast, private, and reliable.
No cloud, no accounts, just results.
Try it πŸ‘‰ apps.apple.com/us/app/speec...
#indiedev #iOS #productivity

06.03.2026 09:47 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
C# File-based Apps in .NET 10: Run and Build Apps from a Single .cs File - Ottorino Bruni Learn how C# file-based apps work in .NET 10. Run, build, and evolve tools and scripts from a single .cs file without creating a project

πŸ“„ C# File-based Apps in .NET 10 Single .cs file β†’ run & build real apps, no csproj no sln no boilerplate. Scripts prototypes experiments quick utils finally feel lightweight in C#. #dotnet #csharp #net10 #scripting #productivity www.ottorinobruni.com/csharp-file-...

06.03.2026 09:45 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

🧠 Turn messy text into clear writing in seconds.
Rewrite Text – AI Writing Tool rewrites, summarizes, and extracts key points directly on your device using on-device AI.
No cloud. No tracking. Just clean results.
Try it πŸ‘‰ apps.apple.com/us/app/rewri...
#indiedev #AI #iOS #privacy

05.03.2026 14:21 πŸ‘ 2 πŸ” 0 πŸ’¬ 6 πŸ“Œ 0
Preview
Getting Started with ASP.NET Core Middleware for Better Logging and Correlation IDs - Ottorino Bruni Learn how to create custom ASP.NET Core middleware for logging slow requests and adding correlation IDs to improve observability.

πŸ”§ ASP.NET Core Middleware Guide Build custom middleware for better logging + correlation IDs. Full control over request pipeline, improved observability & resilience. #dotnet #aspnetcore #middleware #logging #correlationid www.ottorinobruni.com/getting-star...

05.03.2026 13:52 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
How to Use LINQ in C# – Practical Examples for .NET Developers - Ottorino Bruni Learn how to use LINQ in C# with practical, real-world examples. Understand Where, Select, OrderBy, FirstOrDefault and how to write clean, readable queries in .NET

πŸ” LINQ in C# – Practical Guide for .NET Developers Replace messy foreach loops with clean, declarative queries. Filter, project, group, join – readable & powerful code. #dotnet #csharp #linq #dotnetdev #programming www.ottorinobruni.com/how-to-use-l...

04.03.2026 09:43 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

πŸ› οΈ Need quick developer utilities without breaking your flow?
CodeSwissKnife Bar gives you instant access to UUIDs, Base64 encoding, hashes, timestamps and more right from your macOS menu bar.
Small app. Big time saver.
Try it πŸ‘‰ apps.apple.com/us/app/codes...
#indiedev #macOS #DevTools

03.03.2026 09:10 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Getting Started with System.Collections and Immutable Types in C# and .NET – Part 1 - Ottorino Bruni Learn how to use System.Collections in C# with clear examples. This beginner-friendly guide covers arrays, lists, dictionaries, stacks, and queues

πŸ“š Getting Started with System.Collections & Immutable Types in C# – Part 1 Beyond List<T> & Dictionary: core interfaces, queues, stacks, arrays, trade-offs & when to use each. Write cleaner .NET code. #dotnet #csharp #collections #immutable #programming www.ottorinobruni.com/getting-star...

03.03.2026 09:08 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
How to Use LINQ in C# – Practical Examples for .NET Developers - Ottorino Bruni Learn how to use LINQ in C# with practical, real-world examples. Understand Where, Select, OrderBy, FirstOrDefault and how to write clean, readable queries in .NET

πŸ” LINQ in C# – Practical Guide for .NET Developers Replace verbose foreach loops with clean, declarative queries. Filter, project, group, join – more readable & maintainable code. #dotnet #csharp #linq #dotnetdev #programming www.ottorinobruni.com/how-to-use-l...

02.03.2026 08:34 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

✍️ Improve your writing without sending your text to the cloud.
Rewrite Text – AI Writing Tool rewrites, summarizes, and paraphrases directly on your device using on-device AI.
Fast. Private. Secure.
Try it πŸ‘‰ apps.apple.com/us/app/rewri...
#indiedev #iOS #AI #privacy

01.03.2026 10:57 πŸ‘ 1 πŸ” 0 πŸ’¬ 3 πŸ“Œ 0
Preview
How to Use LINQ in C# – Practical Examples for .NET Developers - Ottorino Bruni Learn how to use LINQ in C# with practical, real-world examples. Understand Where, Select, OrderBy, FirstOrDefault and how to write clean, readable queries in .NET

πŸ” How to Use LINQ in C# – Practical Guide for .NET Devs From basics to advanced queries: filter, project, group, join – cleaner, more readable code. Replace messy loops with expressive power. #dotnet #csharp #linq #dotnetdev #programming www.ottorinobruni.com/how-to-use-l...

01.03.2026 10:50 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
How to Use LINQ in C# – Practical Examples for .NET Developers - Ottorino Bruni Learn how to use LINQ in C# with practical, real-world examples. Understand Where, Select, OrderBy, FirstOrDefault and how to write clean, readable queries in .NET

LINQ is a turning point when learning C# πŸš€
I’ve just published Part 1 of a practical guide covering fundamentals, core operators, and a runnable console example.
www.ottorinobruni.com/how-to-use-l...
#dotnet #csharp #linq #backend #softwareengineering

28.02.2026 10:45 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

Today is launch day πŸš€
Rewrite Text is live on Product Hunt.
An on-device AI writing tool for iPhone
No cloud. No servers. Just fast, private text rewriting.
Would love your support πŸ™Œ
www.producthunt.com/products/rew...
#ProductHunt #LaunchDay #indiedev #AI #iOS

27.02.2026 07:22 πŸ‘ 1 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0
Post image

Your Mac has a rewrite tool.
Now your iPhone does too ✍️
β€’ Rewrite messy text
β€’ Make it professional or friendly
β€’ Summarize long articles
β€’ Extract key points
β€’ Create tweet-ready posts
All on device.
apps.apple.com/us/app/rewri...
#iOS #indiedev #AItools #Productivity #AppleIntelligence

26.02.2026 09:48 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
How to Implement Redis Cache in .NET using Minimal APIs and C# - Ottorino Bruni Learn how to implement Redis caching in a .NET Minimal API using C#. This guide walks you through setting up Redis locally with Docker, transitioning from in-memory to distributed caching, and scaling...

⚑ Redis Cache in .NET Minimal APIs Distributed caching β†’ shared across instances, consistent, scalable. Fast setup with StackExchange.Redis, perfect for high-load APIs. #dotnet #redis #minimalapi #csharp #caching www.ottorinobruni.com/how-to-imple...

26.02.2026 09:45 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

Built an AI writing tool that runs fully on device ✨
- No cloud
-No API costs
-No data leaving your phone
Rewrite, summarize, paraphrase and generate tweets directly on iPhone.
Free daily uses included.
apps.apple.com/us/app/rewri...
#indiedev #buildinpublic #iosdev #AI #privacy

25.02.2026 08:05 πŸ‘ 5 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Preview
Testcontainers for C# and .NET: Simplify Integration Tests with Docker - Ottorino Bruni Learn how to boost integration testing with Testcontainers in .NET, using real MySQL database instances for reliable, production-like test environments. Simplify your setup, improve code quality, and ...

πŸ§ͺ Testcontainers for .NET & C#
Spin up real Docker containers for databases, queues & services in integration tests.
Clean, production-like, no mocks, auto cleanup.
#dotnet #testcontainers #docker #integrationtesting #testing www.ottorinobruni.com/testcontaine...

23.02.2026 09:07 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

πŸš€ CamFrame 1.0.10 is live!
New: Live Mouse Zoom
No more post-production zoom or pan.
⌨️ Option + Z β†’ Toggle Zoom
Perfect for coding tutorials, demos & screen recordings.
apps.apple.com/us/app/camfr...
#macOS #ScreenRecording #IndieDev #YouTubeCreators #Coding

21.02.2026 11:06 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

πŸƒ Scan your PokΓ©mon cards in seconds.
Card Scanner Value – TCG identifies 19,800+ cards across 170+ sets and shows live eBay price insights instantly.
Track collections. Monitor watchlists. Know the real value.
Try it πŸ‘‰ apps.apple.com/us/app/card-...
#indiedev #PokemonTCG #TCG #iOS

20.02.2026 12:50 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Systems Thinking for Software Engineers - Ottorino Bruni Learn why systems thinking is one of the most essential skills for modern software engineers. This practical guide explains how to see systems end-to-end, understand data flows, identify feedback loop...

🧠 Systems Thinking for Software Engineers See beyond code: how components connect, data flows & small changes ripple through the whole system. The upgrade from programmer to real engineer. #dotnet #softwareengineering #systemsthinking #architecture www.ottorinobruni.com/systems-thin...

20.02.2026 10:24 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
How to Implement HybridCache in .NET using C# - A Better Caching Strategy - Ottorino Bruni Learn how to implement HybridCache in .NET applications, combining in-memory and distributed caching for optimal performance. A comprehensive guide to unified caching with code examples and best pract...

⚑ HybridCache in .NET Best of both worlds: in-memory speed + distributed scalability. Stampede protection, smart reuse, better performance. #dotnet #csharp #hybridcache #caching #performance www.ottorinobruni.com/how-to-imple...

19.02.2026 09:24 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

πŸ”– All your bookmarks. One place.
Bookmark Bar – Browser Hub brings links from multiple browsers straight to your macOS menu bar.
Faster access. Cleaner workflow. Zero distractions.
Get it πŸ‘‰ apps.apple.com/us/app/bookm...
#indiedev #macOS #productivity

18.02.2026 13:52 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Worker Service vs Console Application in .NET: Understanding the Right Choice - Ottorino Bruni Understand the real differences between Worker Services and Console Applications in .NET, and learn how to choose the right template for background and long-running processes.

Worker Service vs Console App in .NET Console = fast & simple for quick tasks. Worker Service = structured long-running jobs, built-in DI, config, logging & lifecycle. #dotnet #csharp #workerservice #consoleapp #backgroundjobs www.ottorinobruni.com/worker-servi...

18.02.2026 13:46 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

πŸ›’ Stop overbuying groceries.
iPantry tracks what’s in your pantry, monitors expiration dates, and syncs across devices with iCloud.
Smarter shopping starts at home.
Download πŸ‘‰ apps.apple.com/us/app/ipant...
#indiedev #iOS #productivity

13.02.2026 08:22 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
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. ...

⌚ Getting Started with Garmin Connect IQ Build your first watch face for Instinct 3 using Monkey C & VS Code. Setup, simulator, deploy to device – beginner-friendly guide. #dotnet #garmin #connectiq #monkeyc #vscode #watchface www.ottorinobruni.com/getting-star...

13.02.2026 08:12 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0