Engineering Manager Flashcards

Engineering Manager (9 cards)

1
Q

What software engineering experience do you have?

A
  • 18 years experience
  • Web application development using c#, asp.net and sql server
  • Familiar with engineering tools like jira, confluence
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the engineering best practices you follow?

A
  • Clean code
  • Scalability, maintainability, and reusability
  • Engineering automation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How do you stay up to date with software engineering trends?

A
  • blogs, videos, podcast
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is your experience with release planning and coordination?

A
  • End-to-end oversight of the release lifecycle
  • Goal is to balance speed with quality, minimize risk, and ensure alignment across business, development, and operations
  • coordinate release readiness reviews, ensuring QA sign-off, deployment plans, rollback procedures, and stakeholder communications are in place
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How would you design a scalable microservices architecture?

A
  • Define microservice based on business capability
  • Each service should be independently deployable, stateless and have its own DB
  • API Gateway – Acts as a single entry point for clients, handling authentication, logging, and request routing.
  • Service Discovery – Enables dynamic service registration and lookup.
  • Load Balancer – Distributes traffic efficiently across instances.
  • Database per Service – Each microservice manages its own data to avoid bottlenecks.
  • Event-Driven Communication – Use message queues (Kafka, RabbitMQ) for asynchronous processing.
    -Containerization – Use Docker and Kubernetes for efficient deployment.
  • Auto-Scaling – Adjust resources dynamically based on traffic.
  • CI/CD Pipelines – Automate testing and deployment for rapid iteration
  • Authentication & Authorization – Implement OAuth, JWT, or API keys.
  • Logging & Monitoring – Use tools like Prometheus, Grafana, and ELK Stack
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How you would optimize database queries for high-traffic applications.

A
  • Indexing: Use appropriate indexes (especially on WHERE, JOIN, and ORDER BY columns) to speed up lookups.
  • Query Optimization: Rewrite complex queries to be more efficient—avoid SELECT *, unnecessary subqueries, and large joins.
  • Caching: Implement query result caching (e.g., Redis or Memcached) to avoid repeated hits on the database.
  • Connection Pooling: Use connection pooling to manage and reuse database connections efficiently.
  • Denormalization & Materialized Views: In read-heavy systems, denormalize or use materialized views to reduce join operations.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the trade-offs between monolithic and microservices architectures?

A

Monolithic Architecture

Pros:

  • Simpler to develop and deploy initially.
  • Easier to test as everything is in one codebase.
  • Less overhead in terms of inter-service communication.

Cons:

  • Hard to scale individual components—must scale the entire app.
  • Becomes difficult to maintain and evolve as it grows.
  • A small change can require redeploying the entire application.

Microservices Architecture

Pros:
- Independent scalability and deployment of services.
- Better fault isolation—a failure in one service doesn’t crash the whole system.
- Enables tech stack flexibility per service.

Cons:
- Higher complexity in communication, deployment, and data consistency.
- Requires robust monitoring, logging, and orchestration (e.g., Kubernetes).
- More effort in managing service contracts and versioning.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What strategies do you use to prioritize technical debt vs. new features?

A

1) Impact analysis of tech debt
2) Collaborate with dev team to understand the cost of unresolved debt
3) Allocate 20-30% of backlog capacity for addressing tech debt
4) Prioritize debt and feature using WSJF
5) Communicate to stakeholders on the trade off

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

How would you design a CI/CD pipeline for a large-scale application?

A

1) Source Control Integration

  • Use Git (e.g., GitHub, GitLab) with clear branching strategies

2) Continuous Integration (CI)

  • Trigger builds automatically on code commits.
  • Run unit tests, static code analysis, and linting.
  • Use tools like Jenkins, GitHub Actions, or GitLab CI.

3) Build & Artifact Management

  • Package builds into Docker containers or deployable artifacts.
  • Store in a central artifact repository (e.g., Nexus, Artifactory).

4) Automated Testing

  • Run integration, API, UI, and security tests in dedicated test environments.
  • Use parallel test execution to save time.

5) Continuous Deployment (CD)

  • Promote builds to staging and production via automated pipelines

6) Environment Management

  • Use infrastructure as code (IaC) tools like Terraform or Ansible.
  • Container orchestration via Kubernetes for consistent environments.

7) Monitoring & Alerts
- Integrate with tools like Prometheus, Grafana, ELK, and Sentry to monitor pipeline health and application performance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly