{"id":25019629,"url":"https://github.com/djeada/backend-engineers-guide","last_synced_at":"2025-03-30T10:11:42.828Z","repository":{"id":114371086,"uuid":"476033242","full_name":"djeada/Backend-Engineers-Guide","owner":"djeada","description":"This repository is a collection I've put together, focusing on various backend engineering topics. It's a place where you can find information on API design, databases, deployment, distributed computing, networking, performance optimization, security, and even more specialized areas. ","archived":false,"fork":false,"pushed_at":"2025-03-06T20:08:34.000Z","size":524,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-06T21:21:37.834Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/djeada.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-30T20:01:37.000Z","updated_at":"2025-03-06T20:08:38.000Z","dependencies_parsed_at":"2024-06-29T17:38:08.878Z","dependency_job_id":"d0641948-f3b2-4c90-a168-e042a01e1335","html_url":"https://github.com/djeada/Backend-Engineers-Guide","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2FBackend-Engineers-Guide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2FBackend-Engineers-Guide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2FBackend-Engineers-Guide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2FBackend-Engineers-Guide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djeada","download_url":"https://codeload.github.com/djeada/Backend-Engineers-Guide/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246301997,"owners_count":20755514,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-05T11:51:15.188Z","updated_at":"2025-03-30T10:11:42.821Z","avatar_url":"https://github.com/djeada.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Backend Engineer's Guide\n\nThis repository is a collection I've put together, focusing on various backend engineering topics. It's a place where you can find information on API design, databases, deployment, distributed computing, networking, performance optimization, security, and even more specialized areas. Each topic is broken down into a Markdown file, found in the notes directory. Here, I've tried my best to provide detailed notes, explanations, and examples.\n\nI try to keep these notes updated and expanded regularly, aiming to provide up-to-date, relevant information. Of course, if you have any contributions or suggestions, they're more than welcome. We're all learning together, after all.\n\n## Getting Started\n\nTo begin, clone the repository to your local machine and navigate to the \"notes\" directory to access each topic's Markdown file.\n\n```\ngit clone https://github.com/your_username/Backend-Engineers-Guide.git\ncd Backend-Engineers-Guide/notes\n```\n\n## Notes\n\n### API Design\n\n| Topic                         | Notes                                                                                                     |\n| ----------------------------- | --------------------------------------------------------------------------------------------------------- |\n| Overview                          | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/01_api_design/01_overview.md)                   |\n| REST                          | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/01_api_design/02_rest.md)                   |\n| GraphQL                          | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/01_api_design/03_graphql.md)                   |\n| gRPC                          | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/01_api_design/04_grpc.md)                   |\n| Stateful vs Stateless Applications | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/01_api_design/05_state_management.md)                   |\n| Encoding and Data Transmission | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/01_api_design/06_data_transmission.md) |\n\n### Network Communications\n\n| Topic                         | Notes                                                                                                     |\n| ----------------------------- | --------------------------------------------------------------------------------------------------------- |\n| Real-time Communication Methods                    | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/02_network_communications/01_overview.md)                   |\n| TCP vs UDP                        | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/02_network_communications/02_tcp_and_udp.md)                   |\n| HTTP Protocol                          | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/02_network_communications/03_http_protocol.md)                   |\n| WebSockets | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/02_communication_protocols/04_web_sockets.md)                   |\n| Performance Metrics | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/02_network_communications/05_metrics_and_analysis.md) |\n\n### Web Servers\n\n| Topic                         | Notes                                                                                                     |\n| ----------------------------- | --------------------------------------------------------------------------------------------------------- |\n| Web Server Overview                 | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/01_web_server_overview.md)                   |\n| Static and Dynamic Content                       | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/02_static_dynamic_content.md)                   |\n| Tomcat                          | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/03_tomcat.md)                   |\n| Apache | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/04_apache.md)                   |\n| Nginx | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/05_nginx.md) |\n| Forward Proxies     | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/06_forward_proxies.md)                   |\n| Reverse Proxies | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/07_reverse_proxies.md)                   |\n| Load Balancing                 | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/08_load_balancing.md)                   |\n\n\n### Databases\n\n| Topic                    | Notes                                                                                                 |\n| ------------------------ | ----------------------------------------------------------------------------------------------------- |\n| Types of Databases       | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/04_databases/01_types_of_databases.md) |\n| Transactions             | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/04_databases/02_transactions.md) |\n| Indexes                  | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/04_databases/03_indexes.md) |\n| Isolation Levels         | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/04_databases/04_isolation_levels.md) |\n| Data Warehousing         | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/04_databases/05_data_warehousing.md) |\n| Replication              | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/04_databases/06_replication.md) |\n\n### Caching\n\n| Topic                    | Notes                                                                                       |\n| ------------------------ | ------------------------------------------------------------------------------------------- |\n| Caching Strategies and Techniques         | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/05_caching/01_caching_strategies_and_techniques.md) |\n| Redis         | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/05_caching/01_redis.md) |\n\n### Data Processing\n\n| Topic                    | Notes                                                                                       |\n| ------------------------ | ------------------------------------------------------------------------------------------- |\n| Pub Sub vs Queue            | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/06_data_processing/01_pub_sub_vs_queue.md) |\n| Messaging System Integration         | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/06_data_processing/02_messaging_system_integration.md) |\n| Batch Processing        | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/06_data_processing/03_batch_processing.md) |\n| Stream Processing                  | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/06_data_processing/04_stream_processing.md) |\n\n### Security\n\n| Topic                    | Notes                                                                                   |\n| ------------------------ | --------------------------------------------------------------------------------------- |\n| Protobuf          | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/07_data_formats/01_protocol_buffers.md) |\n| XML          | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/07_data_formats/02_xml.md) |\n| JSON           | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/07_data_formats/03_json.md) |\n| YAML           | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/07_data_formats/04_yaml.md) |\n\n### Security\n\n| Topic                    | Notes                                                                                   |\n| ------------------------ | --------------------------------------------------------------------------------------- |\n| Auth      | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/08_security/01_auth.md) |\n| TLS      | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/08_security/02_tls.md) |\n| Security Vulnerabilities in Backend           | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/08_security/03_security_vulnerabilities.md) |\n| Security Best Practices and Measures           | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/08_security/04_security_best_practices_and_measures.md) |\n| Third-Party Cookies Vulnerabilities          | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/08_security/05_third_party_cookies_vulnerabilities.md) |\n\n### Deployment\n\n| Topic                    | Notes                                                                                          |\n| ------------------------ | ---------------------------------------------------------------------------------------------- |\n| CentOS Digital Ocean     | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/09_deployment/01_centos_digital_ocean.md) |\n| Static Python Website    | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/09_deployment/02_static_python_website_netlify.md) |\n\n### Distributed Systems\n\n| Topic                    | Notes                                                                                     |\n| ------------------------ | ----------------------------------------------------------------------------------------- |\n| Coordination Services    | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/10_distributed_systems/01_coordination_services.md) |\n| Gossip Protocol          | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/10_distributed_systems/02_gossip_protocol.md) |\n| Linearizability          | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/10_distributed_systems/03_linearizability.md) |\n| Concurrent Writes        | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/10_distributed_systems/04_concurrent_writes.md) |\n| Operational Transform    | [\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/10_distributed_systems/05_operational_transform.md) |\n\n## Refrences\n\nHere are some recommended resources for learning more about backend engineering:\n\n* [Node.js API Design](https://www.cs.unb.ca/~bremner/teaching/cs2613/books/nodejs-api/)\n* [RESTful API Designing guidelines](https://restfulapi.net/)\n* [Database Systems Concepts](https://www.db-book.com/)\n* [Distributed Systems for Fun and Profit](http://book.mixu.net/distsys/)\n* [Google Cloud Platform Documentation](https://cloud.google.com/docs)\n* [AWS Documentation](https://aws.amazon.com/documentation/)\n* [Nginx Documentation](https://nginx.org/en/docs/)\n* [The Twelve-Factor App](https://12factor.net/)\n\n## Contributing\nWe welcome contributions to this guide! If you would like to contribute, please create a pull request. For major changes, please open an issue first to discuss what you would like to change.\n\n## License\n[MIT](https://choosealicense.com/licenses/mit/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjeada%2Fbackend-engineers-guide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjeada%2Fbackend-engineers-guide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjeada%2Fbackend-engineers-guide/lists"}