Backend Software Engineer - SnappBox

Job description

As a member of our Software Engineering Team, we look first and foremost for people who are passionate about solving business problems through innovation and engineering practices. The ideal candidate is a self-starter with a strong desire to get the jobs done.

It’s a mission that takes some serious smarts, intense curiosity, and determination to be the best. Come be part of the team that makes it possible.



Responsibilities:

  • Deliver technical solutions based on the business requirement by getting involved in the full development life cycle.
  • Translate technical requirements into programmed application modules and develop web applications or enhance existing ones.
  • Must be a collaborative team player with good communication skills.
  • Participate in code reviews and ensure that all solutions are aligned to predefined architectural specifications.
  • Work independently or partner with teams.

Requirements

Required Skills:

  • 2+ years of hands-on experience in web development (Java, Golang, C#, PHP, Python, NodeJS, ...)
  • Deep knowledge about basic programming concepts such as object-oriented programming, software design pattern, modular design, clean code, and data structures.

  • Design, develop, document, and implement new functionality, as well as build enhancements, modifications, and corrections to existing software.

  • Relational and non-relational databases

  • Some Experience in solution design, code reviews, refactoring, and other best practices

  • Develops unit tests and uses version control (Git)

  • Understands the Agile mindset and iterative development process

  • The ability to learn and grasps concepts quickly in a fast-paced environment is critical to success

  • Willingness to learn to new technologies and frameworks

Preferred Skills:

  • Experience with Continuous Integration / Continuous Deployment (CI/CD), Test Driven Development (TDD)

  • Experience with Jenkins, Docker, and Kubernetes.

  • Knowledgeable of common Java ecosystem technologies such as Spring(and its ecosystem), Reactor, etc is preferred

  • Experience with message queuing (e.g. RabbitMQ, NATS) and data streaming (e.g. KAFKA)

  • Experience with SQL and NO-SQL databases including MySql/MariaDB, Redis, MongoDB

  • Have an understanding of monitoring tools (like Grafana, Elastic APM, Kibana, PMM, etc.)