Deniz İrgin's Avatar

Deniz İrgin

@denizirgin

VP of Engineering - Homerun ProntoPro, Armut.com | Speaker Codefiction | Software Developer, gamer, blogger, iron maiden fan. https://twitter.com/denizirgin

433
Followers
161
Following
63
Posts
22.11.2023
Joined
Posts Following

Latest posts by Deniz İrgin @denizirgin

Preview
Release LocalStack.Aspire.Hosting 9.5.2 · localstack-dotnet/dotnet-aspire-for-localstack Stable Release - Full-featured .NET Aspire integration for LocalStack with eager service loading and Docker socket support. 🎉 Graduation to Stable This release marks the graduation from Release Ca...

With this release we’ve officially graduated from RC to a full production-ready version.

📝Full Release Notes: github.com/localstack-d...

cc: @davidfowl.com

27.10.2025 14:20 👍 5 🔁 1 💬 0 📌 0

📢LocalStack .NET Aspire Integration just hit its first stable release! 🎉

Highlights:
⚡ Eager service loading support (KUDOS @stu.dev)
🐳 Docker socket support (for Lambda containers)
🐛 Fixed Lambda + SQS "Invalid URL" bug

github.com/localstack-d...

27.10.2025 14:20 👍 3 🔁 2 💬 1 📌 0

The Go team shared similar feedback 💪

Originally, the plan was to keep separate monorepos for .NET and Go because of the tooling complexity.

Looks like we might actually move to a single backend repo 💯

We’re even joking about just migrating into existing frontend mono repo😀

11.10.2025 16:05 👍 2 🔁 0 💬 0 📌 0

And oh. my. god.

The NX team nailed the hard stuff, affected, caching, all the things that usually make you cry in monorepo 😅

In just a few hours, I moved my .NET playground repo over, tweaked the CI/CD pipeline, and it just worked.

It felt like black magic 🚀

11.10.2025 16:05 👍 1 🔁 0 💬 1 📌 0

Lately, our backend chapter’s been deep in the monorepo rabbit hole 🕳️

The frontend folks in the company have been using NX for years, so we figured, even though we weren’t exactly fans, let’s give it a shot.

Turns out, NX actually has plugins for both .NET and Go 🤯

11.10.2025 16:05 👍 1 🔁 0 💬 1 📌 0

We’ve got two backend stacks at the company: .NET and Go 🧑‍💻

Both are actively used — the balance shifts from squad to squad ⚖️

11.10.2025 16:05 👍 3 🔁 0 💬 1 📌 0

I believe there aren't many production-ready, end-to-end examples of Native AOT Lambdas deployed via AWS .NET CDK with this kind of local setup. I hope BadgeSmith becomes a useful case study for the community 🙌

08.09.2025 19:12 👍 0 🔁 0 💬 0 📌 0
Preview
badge-smith/build/BadgeSmith.CDK.Shared at master · localstack-dotnet/badge-smith Parameter-driven AWS Lambda API for generating dynamic NuGet and GitHub package version badges with shields.io integration. Includes endpoints for test result badges and CI/CD run redirects. Design...

I was able to share the same CDK stack between the production deployment and the local Aspire setup, ensuring local development is as close to production as possible👇

github.com/localstack-d...

08.09.2025 19:12 👍 1 🔁 0 💬 1 📌 0

This project also became a production ready, fully serverless example of modern .NET development, combining:

🏎️ .NET 9 Native AOT Lambda Functions
✨ .NET Aspire Host orchestration
☁️ AWS Aspire Integrations
🧑‍💻 LocalStack for local development

cc: @davidfowl.com

08.09.2025 19:12 👍 1 🔁 0 💬 1 📌 0

Let's talk performance⚡

While I managed to get the cold start under 100ms, things naturally change when network calls (Nuget and Github Api, DynamoDb etc.) come into play.

Still, in stress tests running at 1,000 RPM, I observed a max memory consumption of only 60MB💪

08.09.2025 19:12 👍 0 🔁 0 💬 1 📌 0

While I initially developed the project for my own needs, I built it from the ground up to be a white-label solution⚪

The deployment pipeline is reusable, and the entire CDK Stack can be deployed to any AWS Account, making it super flexible for anyone to host.

08.09.2025 19:12 👍 0 🔁 0 💬 1 📌 0

BadgeSmith is finally live! 🚀

It’s been a very educational journey for me. But, what BadgeSmith actually does🤔

It's a general-purpose, high-perf badge service with Shields .io-compatible endpoints for NuGet and GitHub packages, and CI/CD test results

github.com/localstack-d...

08.09.2025 19:12 👍 1 🔁 0 💬 1 📌 0

These are baseline numbers. I still need to add HttpClient and the AWS SDKs, so I expect these figures to climb. 📈

Still, it's a strong starting point. While I'm building this for a specific need, it will be also a production-ready .NET Aspire sample🎯

26.08.2025 15:54 👍 0 🔁 0 💬 0 📌 0

🎛️ Finally, fine-tune your compilation with AOT flags.

• InvariantGlobalization=true: Shrinks package size and cuts init time if you don't need culture-specific behavior.
• TrimMode=full: Enables aggressive trimming. Start with partial first to ensure stability.

26.08.2025 15:54 👍 1 🔁 0 💬 1 📌 0

🔥And prefer .NET 9 over .NET 8! The improvements for Native AOT are dramatic. I saw:

📦 ~10-15% smaller function size
⏱️ ~15 ms faster init times
🚀 Higher overall performance

I honestly can’t imagine what .NET 10 will bring

26.08.2025 15:54 👍 0 🔁 0 💬 1 📌 0

🐧Your environment choices have a huge impact.

• Runtime: Use AWS’s provided.al2023. I measured a ~15 ms faster init vs. the official dotnet8 runtime.
• Architecture: arm64 beats amd64. Expect a 10-15% smaller package, lower memory usage, and ~10 ms faster bootstrap.

26.08.2025 15:54 👍 0 🔁 0 💬 1 📌 0

📡My trick for OpenTelemetry: wrap it in preprocessor directives(# if ENABLE_TELEMETRY)

A compile-time flag can strip the entire dependency, cutting package size and saving ~30ms on init + ~15ms per call. I only enable it when I need to debug. Instantiate the SDK directly, NO DI

26.08.2025 15:54 👍 0 🔁 0 💬 1 📌 0

⚖️You have to make choices for performance

Microsoft.Extensions.Logging adds a ~20 ms cold start overhead. I kept it for its structured logging features, but for absolute maximum performance, fall back to the basic LambdaContext.Logger.

26.08.2025 15:54 👍 0 🔁 0 💬 1 📌 0

🚨This is the most critical one for Lambda: Avoid Generic Host, Dependency Injection (ServiceCollection), and ConfigurationBuilder.

Technically they work, but the overhead is huge:
• Generic Host alone: Adds ~70-80 ms
• DIY ServiceCollection/ConfigBuilder: Still adds ~30 ms

26.08.2025 15:54 👍 0 🔁 0 💬 1 📌 0

First, the fundamentals of AOT:

🔮NO Reflection, NO dynamic code. The compiler will warn you anyway.

🛠️ALWAYS use Source Generation. For JSON, regex, etc. Even outside of AOT, this is the way. It boosts performance and can cut memory allocations💡

26.08.2025 15:54 👍 0 🔁 0 💬 1 📌 0

Been so deep in .NET NativeAOT experiments, the business logic is still evolving! 🧪 But the project's technical skeleton is solid. 🏗️

I started at 250ms Init / 50MB memory, now down to just 77ms / 28MB. The package is 3.5MB zipped. 📉

Here are my insights and key takeaways 👇

26.08.2025 15:54 👍 0 🔁 0 💬 1 📌 0
Preview
GitHub - localstack-dotnet/badge-smith: Parameter-driven AWS Lambda API for generating dynamic NuGet and GitHub package version badges with shields.io integration. Includes endpoints for test result b... Parameter-driven AWS Lambda API for generating dynamic NuGet and GitHub package version badges with shields.io integration. Includes endpoints for test result badges and CI/CD run redirects. Design...

I’ve cleaned up the project and made it public

TL;DR
🚀 Cold start init: 77ms, memory allocation: 28MB
📦 Package size: 3.5MB
🔥 .NET 9 AOT > .NET 8 (smaller, faster)
❌ Dropped DI/Host/Reflection
🛠️ Using source generators
🐧 Use arm64+provided.al2023

github.com/localstack-d...

26.08.2025 15:54 👍 5 🔁 1 💬 1 📌 1
Preview
🎉 Aspire.Hosting.LocalStack Release Candidate - Community Feedback · localstack-dotnet dotnet-aspire-for-localstack · Discussion #5 I'm excited to share that Aspire.Hosting.LocalStack has reached Release Candidate (RC) status! 🎉 This integration provides a production-ready solution for local AWS development using LocalStack wit...

⏳ Waiting a few weeks for RC feedback before the full release with more features. Huge thanks to the AWS .NET Team @normj.bsky.social & @davidfowl.com for the support! 🙌

🌴 On vacation for 2 weeks, so won’t be around much. Feedback here 👇

🔗 github.com/localstack-d...

08.08.2025 19:32 👍 2 🔁 0 💬 0 📌 0
Preview
GitHub - localstack-dotnet/localstack-serverless-dotnet-demo at aspire-host Demo project for usage of LocalStack, Serverless and .NET Core - GitHub - localstack-dotnet/localstack-serverless-dotnet-demo at aspire-host

➕ Additionally, I've started migrating my long-maintained LocalStack Serverless demo to Aspire in a separate branch (still in progress🚛). The README isn't updated yet, but the example works👇

🔗 github.com/localstack-d...

08.08.2025 19:32 👍 2 🔁 0 💬 1 📌 0
Preview
GitHub - Blind-Striker/dotnet-otel-aspire-localstack-demo: Showcase of OpenTelemetry in .NET with Aspire, demonstrating enhanced observability using AWS and LocalStack. Showcase of OpenTelemetry in .NET with Aspire, demonstrating enhanced observability using AWS and LocalStack. - Blind-Striker/dotnet-otel-aspire-localstack-demo

🎯 I've also updated my Aspire + OTEL + LocalStack demo from last year’s Devnot to use the new LocalStack package! 🚀

A great example of Aspire and LocalStack in action.

🔗 github.com/Blind-Strike...

08.08.2025 19:32 👍 2 🔁 0 💬 1 📌 0
Preview
dotnet-aspire-for-localstack/playground at master · localstack-dotnet/dotnet-aspire-for-localstack This repositry contains the integrations with .NET Aspire for LocalStack - localstack-dotnet/dotnet-aspire-for-localstack

🛠️ The repo includes two complete examples in the playground folder:

📦 AWS provisioning with full messaging flow + real-time UI ➡️DynamoDB, SNS, SQS
🔗 URL shortener built with 2 Lambda functions ➡️ DynamoDB, S3

You can quickly get started👇

🔗 github.com/localstack-d...

08.08.2025 19:32 👍 1 🔁 0 💬 1 📌 0
Preview
GitHub - localstack-dotnet/dotnet-aspire-for-localstack: This repositry contains the integrations with .NET Aspire for LocalStack This repositry contains the integrations with .NET Aspire for LocalStack - localstack-dotnet/dotnet-aspire-for-localstack

📢 Finally finished work on LocalStack - .NET Aspire Integration!

🚀RC now on NuGet.
1️⃣Extends official AWS Aspire integrations with LocalStack features
2️⃣Auto-detects AWS resources
3️⃣Auto-configures LocalStack endpoints

🔗 github.com/localstack-d...

cc: @davidfowl.com @localstack.cloud

08.08.2025 19:32 👍 21 🔁 5 💬 1 📌 1
Preview
GitHub - localstack-dotnet/localstack-nuget-badge-lambda: Parameter-driven AWS Lambda API for generating dynamic NuGet & GitHub package version badges with shields.io integration, featuring two-track ... Parameter-driven AWS Lambda API for generating dynamic NuGet & GitHub package version badges with shields.io integration, featuring two-track versioning support and fail-fast validation for Loc...

🎁Bonus content!

🤔 I ran into a problem: how to show separate v1 & v2 badges for my NuGet packages? The defaults didn't work.
💡So I built a small AWS Lambda to do it
✨It’s not a general-purpose tool, but a fun example of solving your own problems!

github.com/localstack-d...

25.07.2025 15:04 👍 2 🔁 0 💬 0 📌 0
Preview
GitHub - localstack-dotnet/localstack-serverless-dotnet-demo: Demo project for usage of LocalStack, Serverless and .NET Core Demo project for usage of LocalStack, Serverless and .NET Core - localstack-dotnet/localstack-serverless-dotnet-demo

👨‍💻And since I was already deep in the code, I updated the localstack-serverless-dotnet-demo project.
🎓 It was lagging behind, but now it's a fresh, relevant example for anyone wanting to develop AWS apps locally with @localstack.cloud

github.com/localstack-d...

25.07.2025 15:04 👍 1 🔁 0 💬 1 📌 0
Preview
GitHub - localstack-dotnet/localstack-dotnet-client at sdkv3-lts A lightweight .NET client for LocalStack. Contribute to localstack-dotnet/localstack-dotnet-client development by creating an account on GitHub.

📢A quick reminder on the two-track strategy:

v1.x (for AWS SDK v3) is still in active maintenance🚀 In fact, I've just released a patch for it to support new endpoints in @localstack.cloud

sdkv3-lts branch👇

github.com/localstack-d...

25.07.2025 15:04 👍 1 🔁 0 💬 1 📌 0