Job Overview:
Digikala's software engineers develop the next-generation technologies that transform how businesses connect, operate, and grow in e-commerce.
We are looking for a Senior Software Engineer to join Digikala's B2B Platform team. In this role, you will contribute to the design, development, and evolution of Digikala's B2B platform, building scalable, reliable, and high-performance software solutions that support business-to-business operations.
You will bring fresh ideas, strong technical expertise, and a problem-solving mindset to complex engineering challenges. Working closely with product managers, QA engineers, and other stakeholders, you will help shape technical decisions, improve system architecture, and deliver robust solutions that meet evolving business needs.
As a senior engineer, you will take ownership of technical challenges, contribute to engineering best practices, and support the growth of the team through collaboration, code reviews, and knowledge sharing.
Responsibilities:
- Design, develop, test, and maintain high-quality software components and services for Digikala's B2B platform.
- Build scalable, reliable, and efficient solutions that support the platform's business requirements and growing operational needs.
- Participate in and lead technical design and architecture reviews, evaluating technologies and approaches to make informed engineering decisions.
- Contribute to the evolution of the platform's architecture, codebase, and technical infrastructure.
- Identify, troubleshoot, and resolve complex software issues, analyzing their root causes and impact on system performance, reliability, and service quality.
- Review code developed by other engineers and provide constructive feedback to ensure code quality, maintainability, testability, and adherence to engineering best practices.
- Collaborate with product managers, QA engineers, and other cross-functional stakeholders to translate business requirements into effective technical solutions.
- Contribute to technical documentation and knowledge-sharing initiatives, ensuring engineering practices and system knowledge are clearly documented.
- Identify opportunities to improve system performance, scalability, reliability, and development processes.
- Support and mentor other engineers, fostering technical excellence and continuous learning within the team.
Job Requirements:
- Bachelor's degree in Computer Science, Software Engineering, or a related field, or equivalent practical experience.
- At least 5 years of experience in software development using one or more programming languages, with a strong understanding of data structures and algorithms.
- At least 3 years of experience testing, maintaining, or launching software products, and at least 1 year of experience in software design and architecture.
- Proven experience in software architecture, system design, and developing scalable applications.
- Strong hands-on experience with PHP and Laravel.
- Experience working with MySQL and designing efficient database queries and data models.
- Familiarity with Redis and Memcached for caching and performance optimization.
- Experience with Elasticsearch and its application in search and data retrieval.
- Proficiency in Git and version control best practices.
- Strong problem-solving and analytical skills, with the ability to investigate and resolve complex technical challenges.
- Excellent communication and collaboration skills, with the ability to work effectively across technical and business teams.
- Ability to take ownership of technical decisions, contribute to architectural discussions, and support the development of other engineers.