🍷September was a good month
Have you read any of my articles? I'm open to feedback!
If you have never seen my blog, you can find it at https://t.co/g6cR87Rig0, where I write about #csharp, #dotnet, #azure, and more!
You can have all the AWS Certifications & Computer Science degrees in the world, but if you let the seed of doubt take root in your mind your light will be extinguished. Understand you're capable, highly skilled, and deserve to have the success you seek.
🌐 Stateful vs. Stateless: Transforming Application Architecture on AWS
This AWS blog outlines the transformation from a stateful to a stateless architecture, highlighting the benefits and processes involved.
https://t.co/nB3DX8EFJA
Found this ongoing series on building your own operating system from scratch in #rust
Good time to pick up if you want to explore this, first video is just 2 months old.
https://t.co/JyjZZJNYFv
My advice to engineers starting out:
Find an important open source project on the way up and fix a bunch of issues and then go cold email a bunch of startups you know use that open source project.
Langchain or Chroma are a couple to start with
Including best practices for security in your #CICD pipelines is something that everyone should be looking at these days.
This article from KUMAR KARAN discussing incorporating some of these into your @awscloud#CodePipeline setup with #ECS https://t.co/7Ai1uYpHDw
Algorithms you should know before you take system design interviews
I put together a list and explained why they are important. Those algorithms are not only useful for interviews but good to understand for any software engineer.
One thing to keep in mind is that understanding “how those algorithms are used in real-world systems” is generally more important than the implementation details in a system design interview.
What do the stars mean in the diagram?
It’s very difficult to rank algorithms by importance objectively. I’m open to suggestions and making adjustments.
Five-star: Very important. Try to understand how it works and why.
Three-star: Important to some extent. You may not need to know the implementation details.
One-star: Advanced. Good to know for senior candidates.
–
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/FIzCeaWsZV
5 Best System Design Courses for Interviews
1. Modern System design - https://t.co/6CBu13yMW4
2. Grokking the System Design - https://t.co/OxR5eCW7TM
3. Software Architecture 101 - https://t.co/GudhicBm57
4. ZTM - https://t.co/x2wIdfOQS6
5. ByteByteGo - https://t.co/ZnWwDtx65O
As part of the work for .NET 8, the team has been rebuilding the popular eshop microservice sample to use all of the new .NET 8 goodies! There’s still lots of cleanup and simplification to do, but come take a look!
#dotnet
https://t.co/oZSDVQCIHu
𝗧𝗼𝗽 𝟭𝟬 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗮𝗹 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝘀
𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 is the process of designing the structure and behavior of a software system, which includes making decisions about components, modules, interfaces, and the system's organization.
𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗽𝗮𝘁𝘁𝗲𝗿𝗻𝘀 are important because they provide reusable solutions to common problems in software design. They capture best practices and proven solutions for designing reliable, scalable, maintainable, and extensible software systems.
There are many software architecture design patterns to know, but some of the most important ones are:
𝟭. 𝗟𝗮𝘆𝗲𝗿𝗲𝗱 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲: This pattern is based on dividing the application into logical layers, where each layer has a specific responsibility and interacts with the layers above and below it.
𝟮. 𝗠𝗶𝗰𝗿𝗼𝘀𝗲𝗿𝘃𝗶𝗰𝗲𝘀 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲: This pattern is based on decomposing the application into small, independent services that communicate through well-defined APIs.
𝟯. 𝗘𝘃𝗲𝗻𝘁-𝗗𝗿𝗶𝘃𝗲𝗻 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲: This pattern uses events to communicate between different components or services, where events trigger actions or reactions in the system.
𝟰. 𝗦𝗽𝗮𝗰𝗲-𝗯𝗮𝘀𝗲𝗱 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 (𝗦𝗕𝗔): is a software design method that centers the system's structure around the idea of "spaces," which are independent and autonomous units.
𝟱. 𝗠𝗶𝗰𝗿𝗼𝗸𝗲𝗿𝗻𝗲𝗹 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲: this is an approach where the kernel provides minimal functionality and services are implemented as separate modules outside the kernel.
𝟲. 𝗣𝗲𝗲𝗿 𝘁𝗼 𝗣𝗲𝗲𝗿 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗮𝗹 𝗽𝗮𝘁𝘁𝗲𝗿𝗻: this is a decentralized model where nodes in a network can act as both clients and servers, allowing for distributed sharing of resources and information without a central authority.
𝟳. 𝗖𝗹𝗼𝘂𝗱 𝗻𝗮𝘁𝗶𝘃𝗲 𝘀𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲: this is a pattern where applications are developed and deployed to run on cloud platforms, leveraging cloud services and infrastructure for scalability, reliability, and agility.
𝟴. 𝗖𝗤𝗥𝗦 (𝗖𝗼𝗺𝗺𝗮𝗻𝗱 𝗤𝘂𝗲𝗿𝘆 𝗥𝗲𝘀𝗽𝗼𝗻𝘀𝗶𝗯𝗶𝗹𝗶𝘁𝘆 𝗦𝗲𝗴𝗿𝗲𝗴𝗮𝘁𝗶𝗼𝗻): This pattern separates the command and query responsibilities of an application's model, making it easier to scale and optimize the application.
𝟵. 𝗛𝗲𝘅𝗮𝗴𝗼𝗻𝗮𝗹 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲: This pattern separates the application into an inner and outer layer, where the inner layer contains the business logic and the outer layer contains the interfaces with the outside world.
𝟭𝟬. 𝗖𝗹𝗲𝗮𝗻 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲: This pattern emphasizes separating concerns and decoupling components, making it easier to maintain and change an application over time.
#technology #softwareengineering #softwaredesign #techworldwithmilan #softwarearchitecture