Back End Developer - Technical Lead

<\/span>
<\/p><\/div>

Job Title<\/span><\/span> <\/span><\/span><\/span>\-<\/span><\/span> <\/span><\/span><\/span>Back End Developer \- Technical Lead<\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
<\/span><\/span><\/p><\/div>

Location \u2013 Chennai (Onsite)<\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
<\/span><\/span><\/p><\/div>

Role Summary <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
<\/span><\/span><\/p><\/div>

We are hiring a<\/span><\/span> <\/span><\/span><\/span><\/span><\/span>Lead Backend Engineer<\/span><\/span> <\/span><\/span><\/span><\/span><\/span>with<\/span><\/span> <\/span><\/span><\/span><\/span><\/span>10+ years of experience<\/span><\/span> <\/span><\/span><\/span><\/span><\/span>who will own backend architecture and system design while<\/span><\/span> <\/span><\/span><\/span>remaining<\/span><\/span> <\/span><\/span><\/span>deeply hands\-on. This role is for someone already making architectural decisions. <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
<\/span><\/span><\/p><\/div>

You will design, build, and evolve distributed backend systems, define architectural standards, and guide teams through complex technical decisions. <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
<\/span><\/span><\/p><\/div>

Core Responsibilities <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
<\/span><\/span><\/p><\/div>

System Design & Architecture <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
<\/span><\/span><\/p><\/div>

  • Design end\-to\-end backend systems with a focus on<\/span><\/span> <\/span><\/span><\/span><\/span><\/span>scalability, resilience, and maintainability <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
    <\/span><\/span><\/p><\/li><\/ul><\/div>

    • Define service boundaries, data ownership, and communication patterns <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
      <\/span><\/span><\/p><\/li><\/ul><\/div>

      1. Select and apply<\/span><\/span> <\/span><\/span><\/span>appropriate<\/span><\/span> <\/span><\/span><\/span><\/span><\/span>architecture<\/span><\/span> <\/span><\/span><\/span>patterns<\/span><\/span><\/span><\/span>: Modular monoliths <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
        <\/span><\/span><\/p><\/li><\/ol><\/div>

        1. Microservices <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
          <\/span><\/span><\/p><\/li><\/ol><\/div>

          1. Event\-driven systems <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
            <\/span><\/span><\/p><\/li><\/ol><\/div>

            1. Layered and hexagonal architectures <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
              <\/span><\/span><\/p><\/li><\/ol><\/div>

              1. <\/span><\/span><\/span>
                <\/span><\/span><\/p><\/li><\/ol><\/div>

                1. Drive trade\-off decisions (performance vs cost vs complexity) <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                  <\/span><\/span><\/p><\/li><\/ol><\/div>

                  1. Produce architecture diagrams, ADRs, Data Flow Diagrams and technical design documents <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                    <\/span><\/span><\/p><\/li><\/ol><\/div>

                    <\/span><\/span><\/span>
                    <\/span><\/span><\/p><\/div>

                    Backend Engineering <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                    <\/span><\/span><\/p><\/div>

                    • Design and develop high\-performance backend services using<\/span><\/span> <\/span><\/span><\/span><\/span><\/span>Python and<\/span><\/span> <\/span><\/span><\/span><\/span>FastAPI<\/span><\/span><\/span> <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                      <\/span><\/span><\/p><\/li><\/ul><\/div><\/div>

                      • Build and<\/span><\/span> <\/span><\/span><\/span>maintain<\/span><\/span> <\/span><\/span><\/span>RESTful APIs and async services <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                        <\/span><\/span><\/p><\/li><\/ul><\/div>

                        • Handle concurrency, background processing, and IO\-heavy workloads <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                          <\/span><\/span><\/p><\/li><\/ul><\/div>

                          • Enforce clean code, SOLID principles, and testability <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                            <\/span><\/span><\/p><\/li><\/ul><\/div>

                            • Lead code reviews with a focus on correctness, performance, and long\-term design <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                              <\/span><\/span><\/p><\/li><\/ul><\/div>

                              <\/span><\/span><\/span>
                              <\/span><\/span><\/p><\/div>

                              Data Engineering & Storage <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                              <\/span><\/span><\/p><\/div>

                              1. Design and<\/span><\/span> <\/span><\/span><\/span>optimize<\/span><\/span> <\/span><\/span><\/span>schemas in<\/span><\/span> <\/span><\/span><\/span><\/span><\/span>RDBMS<\/span><\/span> <\/span><\/span><\/span><\/span><\/span>(PostgreSQL/MySQL) Indexing, query optimization, transactions, isolation levels <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                                <\/span><\/span><\/p><\/li><\/ol><\/div>

                                1. <\/span><\/span><\/span>
                                  <\/span><\/span><\/p><\/li><\/ol><\/div>

                                  1. Design data models for<\/span><\/span> <\/span><\/span><\/span><\/span><\/span>NoSQL<\/span><\/span> <\/span><\/span><\/span><\/span><\/span>systems (MongoDB, DynamoDB, Redis, etc.) <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                                    <\/span><\/span><\/p><\/li><\/ol><\/div>

                                    1. Choose the right data store based on access patterns and consistency needs <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                                      <\/span><\/span><\/p><\/li><\/ol><\/div>

                                      1. Handle migrations, versioning, and backward compatibility <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                                        <\/span><\/span><\/p><\/li><\/ol><\/div>

                                        <\/span><\/span><\/span>
                                        <\/span><\/span><\/p><\/div>

                                        Distributed Systems <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                                        <\/span><\/span><\/p><\/div>

                                        1. Design systems that handle: Partial failures <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                                          <\/span><\/span><\/p><\/li><\/ol><\/div>

                                          1. Retries, timeouts, and idempotency <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                                            <\/span><\/span><\/p><\/li><\/ol><\/div>

                                            1. Horizontal scaling <\/span><\/span><\/span><\/span> <\/span><\/span><\/span>
                                              <\/span><\/span><\/p><\/li><\/ol><\/div>

                                                <\/ol><\/div><\/div><\/span>