Job Description
As a Lead Engineer, you will be responsible for leading the design, development, and maintenance of high-quality software applications. You will collaborate with cross-functional teams to define, design, and ship new features, while also ensuring the performance, quality, and responsiveness of applications. In addition, you will mentor and guide junior engineers.
Responsibilities
- Lead design, develop, and maintain scalable and robust web applications and data pipelines.
- Strong expertise in backend development, data processing, and API implementation.
- Experience in designing, developing, and deploying agentic workflows and complex AI/LLM orchestration systems (e.g., LangGraph, LangChain, crewAI) desirable.
- Collaborate with product managers, designers, and other engineers to gather requirements and translate them into technical specifications.
- Write clean, maintainable, and efficient code following best practices and coding standards.
- Conduct code reviews ensuring adherence to best practices and high coding standards, and provide constructive feedback to team members.
- Troubleshoot and debug applications to optimize performance and resolve issues.
- Participate in the full software development lifecycle, including planning, development, testing, and deployment.
- Participate in architectural discussions and decision-making processes to shape the future of our technology stack.
- Stay up-to-date with emerging technologies and industry trends and evaluate their potential impact on our products and services.
- Contribute to the development and improvement of engineering processes, tools, and methodologies.
- Mentor and guide junior engineers, fostering a culture of learning and collaboration within the team.
Qualifications
- Bachelor’s degree in Computer Science, Engineering, or a related field.
- 6+ years of professional experience in software development, with a strong focus on Python.
- Experience with RESTful APIs and microservices architecture.
- Familiarity with front-end technologies (e.g., HTML, CSS, JavaScript) is a plus.
- Working knowledge of machine learning and data science concepts.
- Understanding of software development methodologies (Agile, Scrum, etc.).
- Strong problem-solving skills and the ability to work independently as well as in a team environment.
- Excellent communication and interpersonal skills.
Required Experience and Skills
- Experience in designing, developing, and scaling enterprise-grade applications, including developing solutions from scratch.
- Strong experience in high-level design for large-scale distributed systems architecture and development.
- Deep proficiency in systems programming languages like C and C++.
- Exposure to various backend and front-end technologies including Java, Go, and JavaScript.
- Willing to work on legacy stacks and curious to automate old systems.
- Strong understanding of operating systems concepts, memory management, and system performance tuning.
- Experience with networking protocols and socket programming.
- Experience in building ETL/ELT processes to ingest data from various sources (APIs, databases, files, XML, etc.).
- Optimize existing data pipelines for performance, cost, and reliability.
- Proficiency in databases, including schema design, for large-scale applications, with mandatory experience in both SQL, NoSQL, and vector datastores.
- Examples of SQL: PostgreSQL, MySQL, Oracle.
- Examples of NoSQL: MongoDB, Cassandra, Redis, DynamoDB, Elastic Search, Neo4j.
- Examples of vector datastores: Pinecone, Pgvector, Milvus, Redis Vector Similarity.
- Proven experience in leading and mentoring a team of engineers ensuring successful project delivery.
- In-depth knowledge and proficiency of messaging queue concepts.