Software Engineer
- Technology
- Full-time
- Tehran
Job Description
We are looking for a Senior Software Engineer to join our engineering team and help design, build, and evolve reliable software systems at scale.
This role is a good fit for someone who enjoys solving complex engineering problems, thinking deeply about system design, and taking ownership of software from initial design through production. You’ll work closely with engineers, product managers, and other technical stakeholders to build systems that are scalable, maintainable, and resilient.
We value engineers who can look beyond implementation details, understand trade-offs, challenge assumptions, and help improve both the software and the way the team builds it.
Responsibilities:
- Design, develop, and maintain reliable backend systems and services.
- Participate actively in architecture and technical design decisions.
- Build APIs, asynchronous workflows, and event-driven services where appropriate.
- Design systems with scalability, reliability, observability, and maintainability in mind.
- Take ownership of features and services from design through production.
- Investigate production issues and improve system performance and reliability.
- Collaborate with product and engineering teams to turn business requirements into robust technical solutions.
- Review code and contribute to improving engineering standards and development practices.
- Help other engineers through technical discussions, code reviews, and knowledge sharing.
- Identify technical debt and propose pragmatic improvements.
- Contribute to technical documentation and architecture discussions.
Requirements:
- Strong experience in backend software development.
- Solid understanding of software architecture and system design principles.
- Experience designing and working with distributed or service-oriented systems.
- Strong understanding of API design and asynchronous communication.
- Good knowledge of relational databases and data modeling.
- Experience with messaging systems such as Kafka, RabbitMQ, or similar technologies.
- Good understanding of concurrency, performance optimization, and production troubleshooting.
- Experience designing systems for scalability and high availability.
- Familiarity with caching, consistency, failure handling, and resilience techniques.
- Experience working with production systems and investigating real-world performance or reliability issues.
- Ability to reason about technical trade-offs and communicate decisions clearly.
- Strong communication and collaboration skills.
- Comfortable working independently, taking ownership, and driving technical work forward.
Nice to Have
Experience in one or more of the following areas is considered an advantage:
- Go
- .NET / .NET Core
- Docker and Kubernetes
- Event-driven architectures
- High-throughput or large-scale distributed systems
- Observability and distributed tracing
- OpenTelemetry or similar observability platforms
- Performance-sensitive systems
- Designing or modernizing large legacy systems
- Experience mentoring engineers or driving technical initiatives across a team
فرآیند استخدام در علیبابا
هر فرصت شغلی، یک فرصت ماجراجویی
- ارسال رزومه
- بررسی رزومه
- ارزیابی تخصصی
- ارزیابی منابعانسانی
- گفت و گو با مدیر ارشد
- ارزیابی نهایی
- دعوت به همکاری
- شروع ماجراجویی