· Mohammad AbouElSherbini · tracks · 5 min read
Backend track
It's is about finding efficient ways to store and retrieve data, to perform operations on data, and to solve specific problems

study for interview
Resources
- https://roadmap.sh/backend
- https://www.udemy.com/course/a-complete-guide-to-java-full-stack-development-with-react
- https://www.udemy.com/course/fundamentals-of-backend-communications-and-protocols
SWE I - Software Engineer I
A Software Engineer with good foundational software engineering knowledge and potential, but limited experience working on large scale products
Responsibilities
- Ship features
- Write code
- Learn & Grow
Requirements
Foundation
- Can formulate Big O time and space complexity for algorithms
- Follows best practices in software design and code quality
- Knows the software development lifecycle
- Understands the lifecycle of a distributed system
- Understands the different types of automated tests
- Writes good unit tests
- Understands SOLID principles
- Writes testable code
- Knows the difference between pass-by-reference and pass-by-value
- Understands the basics of databases and data design
- Knows about data structures and when to use them
- Fluent in object oriented foundation
- Uses version control and understands the basic tools of Git
Backend
- Good Understanding of HTTP APIs
- Good command of one programming language (procedural paradigm)
- Strong in Debugging/Profiling
- Unit Testing (mocking, subbing … etc)
- Contribute to design documents
- Basic understanding of HTTP/TCP (e.g. SSO, connection pooling/CDN, TLS, Load balancing … etc)
- Good understanding for Design Patterns
- Basic understanding for architure patterns
- Good understanding of CAP (e.g. consensus algorithms)
- Understands best practices in various backend paradigms (ex: authentication: JWT and Tokens)
- Different Git branching techniques (ex: rebase and squash)
- Good understanding of 2 Data Stores (K/V, Document or Relational)
- Understands database design and Indexing strategies
- Knows the best practices of Data Modeling
- Good understanding of ACID
- Good Understanding of Async Message Queues and Managing Consistancy
- Good understanding of Docker
- Basic understanding of K8s
Interview examples
SWE II - Software Engineer II
A solid software engineer, has some experience working on large scale products and good understanding of their functional domain with excellent knowledge of at least one area of Swvl’s architecture and system
Responsibilities
- Ship features
- Write code
- Learn & Grow
- Code Review
- Minimum dependency on others
Requirements
All of SWE I - Software Engineer I and…
Foundation
- Deeply understands design patterns and can implement them correctly
- Knows different programming paradigms and can implement them correctly
- Knows when to use immutable objects correctly
- Understands programming language design constructs
- Understands container base infrastructure
- Understands the Kubernetes distributed computation platform
- Understands database scalability patterns
- Can use recursion effectively to optimize algorithm performance
- Able to use the C4 diagram model to sketch architecture
- Can bootstrap a proper scalable project file structure
- Spots performance or security issues during Code Reviews
Backend
- Good Understanding of RESTful APIs
- Understand the Java internals
- Remote Debugging/Profiling
- Performance Testing
- Draft big design documents
- Good understanding of HTTP/TCP (e.g. SSO, connection pooling/CDN, TLS, Load balancing … etc)
- Basic understanding for level App lever protocols
- Good understanding for architecture patterns
- Basic understanding for distributed systems & failure management (Ex: Load shifting, Backpressure, Circuit Breaker, Rate limiters, Graceful Shutdown/Connection Draining)
- Good experience in Polyglot Programming
- Good experience in Polyglot Persistence
- CQRS
- Authentication/Authorization: OpenID/OAuth
- Git Submodules, Git Subtrees & git hooks
- Strong Command of 3 Data Stores (K/V, Document, Relational, Graph … etc)
- Data Modeling @ Scale
- Consistency
- Understanding Replicas
- Basic Database and Server Administration
- Basic Understanding of Kafka (or other messaging brokers)
- Very strong understanding of Docker
- Good understanding of K8s
Sr. SWE - Senior Software Engineer
A strong independent contributor with broad knowledge of at least 1 other functional domain. Novice system architect, able to propose and follow through on small-to-medium design decisions. Expert in estimating effort for execution. Good engineering mentor who is able to show more junior engineers their path to grow. Great at simplifying complex problems to avoid over-engineering while maintaining excellent quality
Responsibilities
- Ship features
- Write code
- Code review
- Mentor
- Design and Architecture
Requirements
All of SWE II - Software Engineer II and… All of Requirements and… All of Foundation and…
Backend
- Good experience in APIs design/versioning/integration/deprecation
- Strong command of multiple programming lang/paradigms
- Distributed Debugging/Tracing/Profiling
- Set direction of what work needs to be done
- Good understanding for network layers from Transport to Application (e.g. AMQP, CoAP, MQTT, RPC, RTCP, UDP, TCP)
- Good understanding for distributed systems & failure management
- Good experience in microservices at scale
- Code management (search, refactoring, duplication)
- Distributed debugging, profiling and tracing
- Decentralized authN/Z
- Ethical Hacking (e.g. pen tests)
- Git Centeric (e.g GitOps)
- More Adminstration Understanding
- Experience with Sharding
- Eventual Consistency [across geos ..etc]
- Advanced knoweldge of managing distributed systems
- Advanced K8s (Administration)
- Types of consistency: strong consistency, eventual consistency, causal consistency, and read-your-write consistency
- Load balancing strategies: round-robin, least connections, IP hash, and consistent hashing
- Rate limiting approaches: token bucket, leaky bucket, and fixed window counter
- Caching strategies: write-through, write-around, write-back, and read-through
Squad Lead
A seasoned senior engineer with good grasp of project management processes and leadership. Well versed in engineering productivity metrics, business KPIs and squad objectives.
Responsibilities
- Ship features
- Write Code
- Code review
- Mentor
- Design and Architecture
- Delivery Management
- Squad roadmap Planning
Requirements
All of Sr. SWE - Senior Software Engineer and…
Foundation
Staff Engineer
An expert engineer, considered a subject matter expert with very good grasp of the business and technical domains. A track record of end-to-end leadership of successful medium projects spanning several squads/tribes that impacts business or engineering KPIs. A great mentor who is able to push others in the right direction for their growth. Doesn’t stop at blockers in execution and is able to unblock projects. Drives impactful changes against stability, quality, architecture and design. Takes initiative rather than wait for external motivation
Responsibilities
- Lead & ship medium projects
- Code review
- Mentor
- Design and Architecture
- Technical roadmap planning
Requirements
All of Squad Lead and…
Foundation
- Compiles their own Linux kernel
- Designs architectures on the system level
- Knowledge of advanced data structures like B-trees, binomial and fibonacci heaps, AVL/Red Black trees, Splay Trees, Skip Lists, tries etc.
- Able to recognize and code dynamic programming solutions, good knowledge of graph algorithms, good knowledge of numerical computation algorithms, able to identify NP problems etc.
- Able to visualize and design complex systems with multiple product lines and integrations with external systems. Also should be able to design operations support systems like monitoring, reporting, fail overs etc.
- Spots performance or security issues in architecture
Principal Engineer
A seasoned systems architect, able to clearly communicate technical direction and define the technical roadmap across the engineering organization
Responsibilities
- Lead & ship large-scale projects
- Mentor
- System Design and Architecture
- Technical roadmap generation & planning
- Ship complicated and major key components within the system
- Delivers impact that extends beyond the company
Requirements
All of Staff Engineer and…


