Displaying 1 to 12 from 12 results

awesome-scalability - Scalable, Available, Stable, Performant, and Intelligent System Design Patterns

  •    

An updated and curated list of readings to illustrate best practices and patterns in building scalable, available, stable, performant, and intelligent large-scale systems. Concepts are explained in the articles of prominent engineers and credible references. Case studies are taken from battle-tested systems that serve millions to billions of users. Understand your problems: scalability problem (fast for a single user but slow under heavy load) or performance problem (slow for a single user) by reviewing some design principles and checking how scalability and performance problems are solved at tech companies. The section of intelligence are created for those who work with data and machine learning at big (data) and deep (learning) scale.

iOS-Developer-Roadmap - Roadmap to becoming an iOS developer in 2018.

  •    Swift

Roadmap to becoming an iOS developer in 2018. This is a tree-like compilation of topics highly relevant to iOS development. Both image and text version are generated from human readable content file.

system_design - Preparation links and resources for system design questions

  •    

Learning about and implementing large-scale distributed system is not easy. I do not want to give the impression that it's something that can be learnt in a month. What this repository aims to achieve, is for software engineers and students to get a rough idea of how the thought process of designing a large scale works and how big companies have managed to solve really hard problems. Along with that, there is a recent trend for companies to have an open-ended interview with system design questions, which is at times hard for engineers of all levels if they haven't gotten the opportunity to work on such systems themselves. This is a collection of links/documents for the following use cases: a) Prepare for a system design or open-ended rounds. b) Learn more about how large-scale systems work and thought process of designing a new system.

school-of-sre - At LinkedIn, we are using this curriculum for onboarding our entry-level talents into the SRE role

  •    HTML

Site Reliability Engineers (SREs) sits at the intersection of software engineering and systems engineering. While there are potentially infinite permutations and combinations of how infrastructure and software components can be put together to achieve an objective, focusing on foundational skills allows SREs to work with complex systems and software, regardless of whether these systems are proprietary, 3rd party, open systems, run on cloud/on-prem infrastructure, etc. Particularly important is to gain a deep understanding of how these areas of systems and infrastructure relate to each other and interact with each other. The combination of software and systems engineering skills is rare and is generally built over time with exposure to a wide variety of infrastructure, systems, and software. SREs bring in engineering practices to keep the site up. Each distributed system is an agglomeration of many components. SREs validate business requirements, convert them to SLAs for each of the components that constitute the distributed system, monitor and measure adherence to SLAs, re-architect or scale out to mitigate or avoid SLA breaches, add these learnings as feedback to new systems or projects and thereby reduce operational toil. Hence SREs play a vital role right from the day 0 design of the system.




pool - Simple worker pool example 🏊‍♂️

  •    Go

The worker pool distributes work across the workers to the least loaded worker. The pool was tested by a load generator that produces tasks at a inconsistent interval, faster than the time it takes to complete the tasks itself. The tasks also take an inconsistent amount of time to finish. In this example the tasks were just sleeps.


clay - An abstract system model store to automate various kind of operations

  •    Go

Clay is an abstract system model store to automate various kind of operations. It provides some APIs to access the system model store. Clay is a simple client tool that enables you to define various kind of models what you need, to register and pull those model data, and to generate data what you want like program code, text data using those models through REST API. It concentrates on those tasks in order to help you to try such as Infrastructure as Code, DevOps.

system-design-master-plan - :1st_place_medal: Roadmap to becoming a system design and architecture master

  •    

System Design (Large Scale Design) is one of the areas that all engineers find challenging, and they always struggle to learn, design, and solve real system design problems. I created this chart as a roadmap for all engineers to learn large-scale design faster and become a better engineer.