Milan Jovanović — Practical .NET and Software Architecture Tips | Microsoft MVP
Practical .NET and Software Architecture Tips | Microsoft MVP
Milan Jovanović ranks #82 of 14,983 LinkedIn creators in Information Technology & Services, and is a standout voice in Serbia. They have 279.1K followers and published 43 posts in the last 30 days at a 0.2% average engagement rate.
- 279.1K followers
- 43 posts / 30d
- 0.2% avg engagement
- — follower growth / 30d
The roast
Milan Jovanovic spends his life lecturing 279,000 people on how to build scalable, distributed systems, yet his entire career is just a single man in Serbia running a company named after himself to hand out tutorials for the digital equivalent of a sticker from Microsoft.
About Milan
Hi there! 👋 I'm a senior software engineer, primarily working in the .NET ecosystem. Things I talk about on LinkedIn: - C# and .NET ❤ - Software engineering and architecture - Distributed systems and how to build them - Databases and optimization techniques - Career and personal growth One of my goals (i̶s̶) was to become a Microsoft MVP in Developer Technologies. I became an MVP in March of 2023. If this sounds interesting, let's connect!
Highlights
- Big Audience — 279,145 followers · top 1%
- Top 1% in Information Technology & Services — Ranked #8 of 1652 creators
- Top 5% in Serbia — Ranked #1 of 77 creators
- Consistent Creator — 43 posts in 30d · top 5%
Recent posts
EF Core feature of the day: Hi/Lo algorithm. Here's how to use it and why it can be useful. Hi/Lo lets you generate database identifiers on the client side. You can minimize database round-trips and lock contention. Here's how it works: - Instead of generating a new ID, the application requests a batch of IDs - The database maintains a "hi_value" tracking the highest ID - When requesting a new batch of IDs, start from "hi_value" + 1 The trade-off is the possibility of gaps in IDs if an application crashes before it has used the full batch. Not the end of the world, IMO. To use this with
126 reactions · 12 comments · 0 reposts
No - you aren't doing "integration" testing with an in-memory database. At best it's a glorified unit test... I've seen many examples using the EF Core in-memory provider. This isn't an integration test because there's no real database. Worse, this will fail to catch any LINQ or SQL bugs. Here's a better approach: - Use a real database or Docker container - Connect to this database from your tests - Write proper integration tests that have value If you want to use Docker, I recommend exploring Testcontainers. It lets you define throwaway containers in your tests. What tools or methods
169 reactions · 33 comments · 0 reposts
Here are 5 underappreciated LINQ methods you should know: - SequenceEqual - Aggregate - GroupJoin - ToLookup - Intersect LINQ is full of gems that can make your code cleaner and more efficient. What's one LINQ method that you think deserves more love?
179 reactions · 8 comments · 0 reposts