What is docker?
Why use docker?
What are kuberntes?
What is CI/CD?
Why use CI/CD?
What Is Load Balancing?
A simple technique for distributing workloads across multiple machines or clusters. The most common load balancing algorithm is Round Robin where requests are divided in circular order ensuring all machines get equal number of requests and no single machine is overloaded or underloaded.
The Purpose of load balancing is to
What are we sockets and why use them over Http?
A WebSocket is a continuous connection between client and server. That continuous connection allows the following:
What do you mean by lower latency interaction?
Low latency means that there is very little delay between the time you request something and the time you get a response
What Is Scalability?
The ability of a system or process to handle a growing amount of load by adding more resources. The adding of resource can be done in two ways:
Any of the approaches can be used for scaling up/out a application, however the cost of adding resources (per user) may change as the volume increases. If we add resources to the system It should increase the ability of application to take more load in a proportional manner of added resources.
Why Do You Need Clustering?
Clustering is needed for achieving high availability for a server software. The main purpose of clustering is to achieve 100% availability or a zero down time in service. A typical server software can be running on one computer machine and it can serve as long as there is no hardware failure or some other failure. By creating a cluster of more than one machine, we can reduce the chances of our service going un-available in case one of the machine fails.
Doing clustering does not always guarantee that service will be 100% available since there can still be a chance that all the machine in a cluster fail at the same time. However it in not very likely in case you have many machines and they are located at different location or supported by their own resources.
What is Elasticity (in contrast to Scalability)?
Elasticity means that the throughput of a system scales up or down automatically to meet varying demand as resource is proportionally added or removed. The system needs to be scalable to allow it to benefit from the dynamic addition, or removal, of resources at runtime. Elasticity therefore builds upon scalability and expands on it by adding the notion of automatic resource management.
What is an API?
What is a RESTful API?
What is Object-Oriented Programming (OOP)?
Object-Oriented Programming (OOP) is a programming paradigm that organizes software design around data, or objects, rather than functions and logic. It focuses on encapsulating both data and the functions that operate on that data within the same unit, known as an object. OOP allows for code reusability through inheritance, where new classes can be created based on existing ones. It also enables polymorphism, where objects of different types can be treated as objects of a common type, and abstraction, which simplifies complex systems by exposing only essential features. This approach makes it easier to manage and maintain code, promoting modularity and a clear structure
How can you ensure the security of an API?
Authentication and Authorization:
Data Protection:
Rate Limiting and Throttling:
Why is monitoring backend systems crucial, and what are its components?
System Health:
- Health Checks: Periodic checks to ensure services are responsive and functioning correctly.
- Performance Metrics: Monitoring response times, throughput, latency, and error rates to ensure optimal performance.
Proactive Issue Detection:
- Alerting: Automated notifications to developers or sysadmins of issues or anomalies, allowing for quick response.
- Visualization: Dashboards that provide a visual representation of system health and metrics, enabling easy identification of trends or problems.
What is Datadog, and how does it aid in monitoring and analytics?
Cloud monitoring as a service to monitor, troubleshoot, and optimize application performance, and analyze and explore log data in context.
Unified Platform:
- Integration: Supports integration with various platforms, services, and languages, providing a holistic view of the entire infrastructure.
- Dashboards: Customizable views of metrics, traces, and logs for quick insights.
Deep Insights:
- Tracing: Application performance monitoring (APM) for tracing requests across services, identifying bottlenecks.
- Alerting: Automated alerts based on predefined conditions or anomalies, ensuring timely response to issues.
Why is logging essential in software systems, and what are its best practices?
Insight and Debugging:
- Event Recording: Logging provides a chronological record of events, aiding in debugging and understanding system behavior.
- Log Levels: Using levels like DEBUG, INFO, WARN, and ERROR to categorize the importance and severity of log messages.
Best Practices:
- Structured Logging: Using formats like JSON to make logs easily parsable and more informative.
- Centralized Logging: Aggregating logs from multiple sources for unified analysis, aiding in correlation and comprehensive insights.
How does AWS CloudWatch enhance monitoring and observability in the AWS ecosystem?
Comprehensive Monitoring:
- Metrics: Collects and tracks metrics from AWS resources and applications, providing insights into performance and health.
- Logs: Centralized storage and analysis of log data, aiding in debugging and understanding system behavior.
Automation and Response:
- Alarms: Setting up alerts based on metric thresholds or anomalies, ensuring timely response to potential issues.
- Events: Delivering a near real-time stream of system events, enabling automation and response to changes in AWS resources.
What is Sentry, and how does it aid in error tracking and resolution?
Error Tracking:
- Real-time Monitoring: Sentry provides real-time error tracking, giving teams insight into production deployments and information about errors as they happen.
- Contextual Data: Captures detailed context for each error, including stack traces, user information, and environment details, making debugging more efficient.
Workflow Integration:
- Issue Management: Allows teams to assign, prioritize, and manage errors, integrating seamlessly with other tools like JIRA, Slack, and GitHub.
- Release Tracking: Monitors releases, highlighting regressions introduced by a new release, and provides the ability to resolve errors in specific releases.
Performance Monitoring:
- Transaction Tracing: Provides insights into the performance of individual transactions, helping identify bottlenecks and areas for optimization.
- Performance Metrics: Monitors key metrics like throughput, latency, and error rate, giving a comprehensive view of application health.
FE translation process
BE translation process
Automate String Extraction in CI: Configure CI to run the pybabel extract command, generating or updating the .pot file with every code change.
Automate Language File Updates in CI: Use CI to automatically run pybabel update, ensuring all .po files are updated with new or modified strings.
Automate Compilation in CI: Before deployment or as a post-merge step, configure CI to run pybabel compile, producing the .mo files with the latest translations.
CI Integration with Translation Platforms: Integrate CI with platforms like POEditor or others, using their APIs to push new strings and pull approved translations automatically.
Notifications and Quality Checks in CI: Enhance CI to notify translators of new strings and implement quality checks, such as verifying all strings have translations before a production deployment.
.po (Portable Object) files: Text files containing source strings and their translations, used for human-readable translation workflows.
.mo (Machine Object) files: Binary files compiled from .po files, used by software to quickly fetch translations at runtime.