https://github.com/djeada/backend-engineers-guide
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.
https://github.com/djeada/backend-engineers-guide
Last synced: 10 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/djeada/backend-engineers-guide
- Owner: djeada
- License: mit
- Created: 2022-03-30T20:01:37.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-03-06T20:08:34.000Z (10 months ago)
- Last Synced: 2025-03-06T21:21:37.834Z (10 months ago)
- Homepage:
- Size: 512 KB
- Stars: 8
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Backend Engineer's Guide
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. 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.
I 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.
## Getting Started
To begin, clone the repository to your local machine and navigate to the "notes" directory to access each topic's Markdown file.
```
git clone https://github.com/your_username/Backend-Engineers-Guide.git
cd Backend-Engineers-Guide/notes
```
## Notes
### API Design
| Topic | Notes |
| ----------------------------- | --------------------------------------------------------------------------------------------------------- |
| Overview | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/01_api_design/01_overview.md) |
| REST | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/01_api_design/02_rest.md) |
| GraphQL | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/01_api_design/03_graphql.md) |
| gRPC | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/01_api_design/04_grpc.md) |
| Stateful vs Stateless Applications | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/01_api_design/05_state_management.md) |
| Encoding and Data Transmission | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/01_api_design/06_data_transmission.md) |
### Network Communications
| Topic | Notes |
| ----------------------------- | --------------------------------------------------------------------------------------------------------- |
| Real-time Communication Methods | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/02_network_communications/01_overview.md) |
| TCP vs UDP | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/02_network_communications/02_tcp_and_udp.md) |
| HTTP Protocol | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/02_network_communications/03_http_protocol.md) |
| WebSockets | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/02_communication_protocols/04_web_sockets.md) |
| Performance Metrics | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/02_network_communications/05_metrics_and_analysis.md) |
### Web Servers
| Topic | Notes |
| ----------------------------- | --------------------------------------------------------------------------------------------------------- |
| Web Server Overview | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/01_web_server_overview.md) |
| Static and Dynamic Content | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/02_static_dynamic_content.md) |
| Tomcat | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/03_tomcat.md) |
| Apache | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/04_apache.md) |
| Nginx | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/05_nginx.md) |
| Forward Proxies | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/06_forward_proxies.md) |
| Reverse Proxies | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/07_reverse_proxies.md) |
| Load Balancing | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/03_server_technologies/08_load_balancing.md) |
### Databases
| Topic | Notes |
| ------------------------ | ----------------------------------------------------------------------------------------------------- |
| Types of Databases | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/04_databases/01_types_of_databases.md) |
| Transactions | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/04_databases/02_transactions.md) |
| Indexes | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/04_databases/03_indexes.md) |
| Isolation Levels | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/04_databases/04_isolation_levels.md) |
| Data Warehousing | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/04_databases/05_data_warehousing.md) |
| Replication | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/04_databases/06_replication.md) |
### Caching
| Topic | Notes |
| ------------------------ | ------------------------------------------------------------------------------------------- |
| Caching Strategies and Techniques | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/05_caching/01_caching_strategies_and_techniques.md) |
| Redis | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/05_caching/01_redis.md) |
### Data Processing
| Topic | Notes |
| ------------------------ | ------------------------------------------------------------------------------------------- |
| Pub Sub vs Queue | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/06_data_processing/01_pub_sub_vs_queue.md) |
| Messaging System Integration | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/06_data_processing/02_messaging_system_integration.md) |
| Batch Processing | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/06_data_processing/03_batch_processing.md) |
| Stream Processing | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/06_data_processing/04_stream_processing.md) |
### Security
| Topic | Notes |
| ------------------------ | --------------------------------------------------------------------------------------- |
| Protobuf | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/07_data_formats/01_protocol_buffers.md) |
| XML | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/07_data_formats/02_xml.md) |
| JSON | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/07_data_formats/03_json.md) |
| YAML | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/07_data_formats/04_yaml.md) |
### Security
| Topic | Notes |
| ------------------------ | --------------------------------------------------------------------------------------- |
| Auth | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/08_security/01_auth.md) |
| TLS | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/08_security/02_tls.md) |
| Security Vulnerabilities in Backend | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/08_security/03_security_vulnerabilities.md) |
| Security Best Practices and Measures | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/08_security/04_security_best_practices_and_measures.md) |
| Third-Party Cookies Vulnerabilities | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/08_security/05_third_party_cookies_vulnerabilities.md) |
### Deployment
| Topic | Notes |
| ------------------------ | ---------------------------------------------------------------------------------------------- |
| CentOS Digital Ocean | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/09_deployment/01_centos_digital_ocean.md) |
| Static Python Website | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/09_deployment/02_static_python_website_netlify.md) |
### Distributed Systems
| Topic | Notes |
| ------------------------ | ----------------------------------------------------------------------------------------- |
| Coordination Services | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/10_distributed_systems/01_coordination_services.md) |
| Gossip Protocol | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/10_distributed_systems/02_gossip_protocol.md) |
| Linearizability | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/10_distributed_systems/03_linearizability.md) |
| Concurrent Writes | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/10_distributed_systems/04_concurrent_writes.md) |
| Operational Transform | [
](https://github.com/djeada/Backend-Engineers-Guide/blob/main/notes/10_distributed_systems/05_operational_transform.md) |
## Refrences
Here are some recommended resources for learning more about backend engineering:
* [Node.js API Design](https://www.cs.unb.ca/~bremner/teaching/cs2613/books/nodejs-api/)
* [RESTful API Designing guidelines](https://restfulapi.net/)
* [Database Systems Concepts](https://www.db-book.com/)
* [Distributed Systems for Fun and Profit](http://book.mixu.net/distsys/)
* [Google Cloud Platform Documentation](https://cloud.google.com/docs)
* [AWS Documentation](https://aws.amazon.com/documentation/)
* [Nginx Documentation](https://nginx.org/en/docs/)
* [The Twelve-Factor App](https://12factor.net/)
## Contributing
We 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.
## License
[MIT](https://choosealicense.com/licenses/mit/)