Awadelrahman Ahmed’s Post

View profile for Awadelrahman Ahmed, graphic

Cloud Data & Analytics Architect | 10X Cloud & Data Certified | MLflow Ambassador | AWS Community Builder | PhD Fellow in Informatics

Recently I've read so many job postings, and guess what? I love reading each one in detail😅. I even came across an interesting statistic in one of these ads: "studies have shown that women and people of color are less likely to apply to jobs unless they meet every single qualification"😅. As a man of color, I relate to this feeling. Today, I somehow want to "concretize" some generic terms that advertisers often use in job descriptions. Three overused terms apears when they say: you should've experience in building "reliable", "scalable", and "maintainable" systems. My point is that after a while, one can start ignoring these terms because they seemed meaningless, just technical jargon thrown in to sound impressive. However, I beleive it's important to understand the real meaning behind these terms so that when you're asked if you can design a scalable system, you know what to talk about. Here's how I see it and I also mentioned tools so you can get an idea of how it is implementation-wise: #Reliability is about designing a system that can tolerate faults and errors, whether they are hardware, software, or human-induced. Cloud-based tools and concepts to think about here include: • Implementing redundancy and failover mechanisms with tools like #AWS Load Balancing and #Azure Load Balancer. • Using tools for monitoring and alerting like AWS CloudWatch or Azure Monitor to monitor system health and get alerts on issues. • Ensuring thorough testing, including unit tests and integration tests with tools like AWS Fault Injection Simulator for example. #Scalability is about how well your system can handle increased load and performance requirements, such as latency and throughput. Key cloud-based tools and concepts include: • Using tools like AWS Elastic Load Balancing, Azure Load Balancer, or Google Cloud Load Balancing to distribute traffic evenly across servers. (Yes, I also mentioned load balancers for #reliability) • Utilizing cloud services like AWS Auto Scaling or Azure VM Scale Sets to automatically adjust resources. • Leveraging cloud services like AWS Kinesis or Azure Event Hubs, and cloud databases like Amazon DynamoDB or Azure Cosmos DB for scalable storage. #Maintainability is about how easy it is to operate your system, its complexity/simplicity, and how easily changes can be made. Important cloud-based tools and concepts could be: • Ensuring clean, well-documented code using CI/CD tools like AWS CodePipeline or Azure DevOps. • Using infrastructure as code (IaC) tools like AWS CloudFormation, Azure Resource Manager or Terraform to manage and automate system configurations. • Utilizing version control systems like Git integrated with cloud services such as GitHub for managing changes and collaborating with team members effectively. My main point is to not lose the concrete definition of such important, overused terms. Try mapping them to the tools you're familiar with to make these terms make sense🙂. Hope that makes sense🙂. #data

To view or add a comment, sign in

Explore topics