Software Engineer (Java)- SnappBox

Job description

About Snapp
Snapp is the pioneer provider of ride-hailing mobile solutions in Iran that connects smartphone owners in need of a ride to Snapp drivers who use their private cars offering transportation services. We are ambitious, passionate, engaged, and excited about pushing the boundaries of the transportation industry to new frontiers and be the first choice of each user in Iran.

Snapp box venture in order to improve its services and needs someone who can help the team along the way. 

Develop and design the architecture of Snapp box services and help the team to maintenance current projects.


Responsibilities:

  • Develop and maintain Snapp box backend services
  • Support all product line features for all services

Requirements

Required Skills:

  • 2+ years of hands-on experience in similar role.
  • Subtle knowledge of software architecture.

  • Strong knowledge of OOP and SOLID principles.

  • Basic understanding of OOP design patterns.

  • Strong problem-solving abilities.

  • Java (11+) programming language.

  • Bachelor’s degree in math, computer science or other quantitative fields (or equivalent experience)



Preferred skills:


  • Advanced knowledge of common Java technologies such as Spring(and its ecosystem), Reactor is preferred.

  • Subtle knowledge of designing and using relational and Non-relational databases including MySql, PostgreSQL, Redis, MongoDB
  • Having experienced in Microservice and Message brokers like Rabbit MQ.
  • Subtle knowledge of Linux.
  • Advanced knowledge of Git version controls.
  • Having experienced in CI/CD processes and test driven development
  • Tendency in writing clean code and following coding standards.
  • Having experience in working with Docker, Kubernetes, deploying projects to cloud environments and monitoring tools
  • Interested learning new technologies and innovative solutions.
  • Having experienced in monitoring tools.