Milan Jovanovic Tech

Milan Jovanovic Tech

IT Services and IT Consulting

Helping you become a better software engineer

About us

We're a company focused on helping you become a better .NET software engineer.

Website
https://www.milanjovanovic.tech/
Industry
IT Services and IT Consulting
Company size
1 employee
Headquarters
Niš
Type
Privately Held
Specialties
software engineer, .net, c#, software architecture, and marketing

Locations

Employees at Milan Jovanovic Tech

Updates

  • Milan Jovanovic Tech reposted this

    View profile for Milan Jovanović, graphic
    Milan Jovanović Milan Jovanović is an Influencer

    Practical .NET and Software Architecture Tips | Microsoft MVP

    I've now been creating YouTube videos for 𝟮 𝘆𝗲𝗮𝗿𝘀 𝗮𝗻𝗱 𝟭 𝗺𝗼𝗻𝘁𝗵. - 10,7M views - 434,500 hours of watch time (~49.5 years 🤯) - 99,500+ amazing subscribers (almost at 100k) - 2 videos/week for 109+ weeks straight The image below is what it looked like when I was starting. I had no idea what I was doing. I even used the front camera on my phone to see what I was recording. You don't need to have everything figured out. I tried to make one small improvement with every video. Looking back at my first video, I'm almost embarrassed. But I'm proud of that man for starting. So if there's one thing you take away from all this, it's this. 𝗦𝘁𝗮𝗿𝘁 𝘁𝗵𝗮𝘁 𝘁𝗵𝗶𝗻𝗴 𝘆𝗼𝘂'𝘃𝗲 𝗯𝗲𝗲𝗻 𝗽𝘂𝘁𝘁𝗶𝗻𝗴 𝗼𝗳𝗳. Who knows where you'll be in a year from now. You'll figure out how to make it work as you go. Be scrappy, ship fast, and learn from mistakes. My only goal is to bring value to you. Stay awesome!

    • No alternative text description for this image
  • Milan Jovanovic Tech reposted this

    View profile for Milan Jovanović, graphic
    Milan Jovanović Milan Jovanović is an Influencer

    Practical .NET and Software Architecture Tips | Microsoft MVP

    Do you use separate database schemas for your tables? Grouping related tables in the database is a way to introduce logical isolation. This is practical in a modular monolith. Each module has a unique schema containing the module's tables. Now, it becomes easy to distinguish which module contains which tables. This lets you implement data isolation in a modular monolith. You can learn more here: https://lnkd.in/eRwqXYQb

    • No alternative text description for this image
  • Milan Jovanovic Tech reposted this

    View profile for Milan Jovanović, graphic
    Milan Jovanović Milan Jovanović is an Influencer

    Practical .NET and Software Architecture Tips | Microsoft MVP

    Are you looking for your next side project to sharpen your skills? Here are 12 ideas to challenge your engineering and architecture skills. 1. Basic Online Store Cart functionality. Product catalog, search. Order management. Payment integration. Basic recommendation system. 2. Subscription-based Marketplace A platform for selling subscription services/products. Recurring billing. User account management. Content/product access control. 3. Auction Platform Real-time bidding system. Item listing. Seller reputation. Payment handling for successful bids. 4. Simple Blogging Platform Post creation/editing. Categorization. Commenting. Basic user profiles. Content search. 5. Document Management System Document storage. Version control. Collaboration features. Search. Access permissions. 6. Recipe Management & Sharing Recipe creation. Ingredient indexing. Nutritional information calculation. Community sharing/reviews. 7. Project Management Tool Task assignment. Timelines (Gantt chart optional). Collaboration features. Progress reporting. 8. Inventory & Warehouse Management Stock level tracking. Purchase orders. Reorder notifications. Basic shipment logistics. 9. Basic Social Network User profiles. Newsfeed. Messaging. Interest groups. Basic forum functionality. 10. Personal Reminder Create and manage reminders. Real-time and email notifications. Connect with friends. Calendar view. 11. Personal Finance Tracker Expense logging. Budgeting tools. Basic investment tracking. Financial goal visualization. 12. Healthcare Appointment Management Patient scheduling. Provider profiles. Basic medical history. Appointment reminders. I hope this will inspire a select few to build something cool. Which one would you build? --- Do you want to simplify your development process? Grab my free Clean Architecture template here: https://bit.ly/4cPKDmp

    • No alternative text description for this image
  • Milan Jovanovic Tech reposted this

    View profile for Milan Jovanović, graphic
    Milan Jovanović Milan Jovanović is an Influencer

    Practical .NET and Software Architecture Tips | Microsoft MVP

    How does horizontal scaling help your system? Let me explain: There are two main approaches to scale an application: - Vertical sclaing - Horizontal scaling How are they different? Vertical Scaling: Involves upgrading individual servers with more powerful hardware - more CPU cores, RAM, and faster storage. However, this has a few limitations: costs escalate quickly, and you'll still hit a performance ceiling. Horizontal Scaling: Involves adding more servers to your infrastructure and distributing the load intelligently among them. This approach offers greater scalability potential, as you can continue adding servers to handle more traffic. Horizontal scaling is where load balancing comes in, and YARP shines bright in this approach. Here's how you can get started with YARP: https://lnkd.in/es6TMejy

    • No alternative text description for this image
  • Milan Jovanovic Tech reposted this

    View profile for Milan Jovanović, graphic
    Milan Jovanović Milan Jovanović is an Influencer

    Practical .NET and Software Architecture Tips | Microsoft MVP

    Are you tired of slow web applications? I know I am, so here's how to use Output Caching to fix this. But what is Output caching? It's a middleware that allows you to cache HTTP responses. It's different from response caching since we can configure the caching behavior on the server. You can configure output caching on individual endpoints. - Controllers use the [OutputCache] attribute - Minimal APIs use the CacheOutput() method What I like about output caching: - Easy to configure and use - Blazing-fast response times - Works with a distributed cache like Redis What I don't like about output caching: - Only caches unauthenticated requests by default - Can't evict specific (individual) cache entries You can see that output caching is more intended for static resources that don't change frequently. But you can still use caching to improve application performance. Here's how: https://lnkd.in/eKwwiM35 Did you ever need to use output caching? --- Do you want to simplify your development process? Grab my free Clean Architecture template here: https://bit.ly/4cPKDmp

    • No alternative text description for this image
  • Milan Jovanovic Tech reposted this

    View profile for Milan Jovanović, graphic
    Milan Jovanović Milan Jovanović is an Influencer

    Practical .NET and Software Architecture Tips | Microsoft MVP

    I love the simplicity of using HTML templates to generate PDF documents. I create a Razor view as the template and render it to an HTML string with my data. You can use any library to convert the HTML into a PDF. I used IronPDF in this example. This could be all you need for your PDF document generation. Here's a simple way to get started: https://lnkd.in/eMtd2Fp8

    • No alternative text description for this image
  • Milan Jovanovic Tech reposted this

    View profile for Milan Jovanović, graphic
    Milan Jovanović Milan Jovanović is an Influencer

    Practical .NET and Software Architecture Tips | Microsoft MVP

    If you're a developer who writes code daily, remember these 5 things: - First, make it work - Then make it pretty - Add safety with lots of tests - Stay away from over-engineering - Refactor if needed (tests keep you safe) Software engineering can be overwhelming. But your process can be straightforward. And if you want to take this further, you should master refactoring. Here are some refactoring techniques I use to write better code: https://lnkd.in/ewRUWijw Do you have time to refactor your code? --- Do you want to simplify your development process? Grab my free Clean Architecture template here: https://bit.ly/3WM8Js4

    • No alternative text description for this image
  • Milan Jovanovic Tech reposted this

    View profile for Milan Jovanović, graphic
    Milan Jovanović Milan Jovanović is an Influencer

    Practical .NET and Software Architecture Tips | Microsoft MVP

    𝗦𝗲𝗰𝘂𝗿𝗲 𝗬𝗼𝘂𝗿 .𝗡𝗘𝗧 𝗔𝗽𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗪𝗶𝘁𝗵 𝗞𝗲𝘆𝗰𝗹𝗼𝗮𝗸: 𝗦𝘁𝗲𝗽-𝗯𝘆-𝗦𝘁𝗲𝗽 𝗚𝘂𝗶𝗱𝗲 You'll see how to integrate Keycloak, a powerful open-source identity and access management solution, with your .NET application. This step-by-step guide covers everything from setting up Keycloak and configuring your .NET project to implementing robust authentication and authorization features. Check it out here: https://lnkd.in/egDEGgW7

    • No alternative text description for this image
  • Milan Jovanovic Tech reposted this

    View profile for Milan Jovanović, graphic
    Milan Jovanović Milan Jovanović is an Influencer

    Practical .NET and Software Architecture Tips | Microsoft MVP

    Why should you care about making your application resilient? Let's say your services communicate by sending HTTP requests. HTTP requests are susceptible to failures from network or server issues. These failures can disrupt service availability, especially as dependencies increase and the risk of cascading failures grows. So, here's how you can solve this: https://lnkd.in/e7eTANR6

    • No alternative text description for this image
  • Milan Jovanovic Tech reposted this

    View profile for Milan Jovanović, graphic
    Milan Jovanović Milan Jovanović is an Influencer

    Practical .NET and Software Architecture Tips | Microsoft MVP

    I worked on an application that scaled to 1M+ active users. It was powered by a powerful SQL Server instance in Azure. However, we would run into problems when a traffic spike happened. Some queries would eat up the database resources. So, here are the two things we did to improve performance: - Cache aggressively - Add a read replica We used two-level caching on all application instances. First, we checked the in-memory check, and in case of a cache miss, we checked if the data was available in Redis. Caching significantly reduced the load on the database and allowed us to scale. However, some queries took a long to execute, and it didn't make much sense to cache the results. So, we decided to use a read replica for these queries. Luckily, Azure makes the entire replication process easy to configure. What about connecting to the read replica from the code? We used EF Core to execute queries and sometimes stored procedures. When we added the read replica, I made a copy of the EF Core DbContext and configured it to connect to the read replica. You can also make all the queries to be read-only by default. This is one situation where having multiple DbContexts makes sense. Here's how you can implement this in .NET: https://lnkd.in/eQRBshiX If there's one thing you take away from this post, it's scale when necessary. If we did this at the start of the project, it would've only slowed us down. --- Do you want to simplify your development process? Grab my free Clean Architecture template here: https://bit.ly/3WM8Js4

    • No alternative text description for this image

Similar pages