Backend Engineer
About the job
Type: Full Time
Location: Hybrid
Minimum qualifications:
- Bachelor’s degree or equivalent practical experience
- 4+ years of experience in developing software in Java, Spring Boot, Hibernate, and related stack
- Strong knowledge of data structures, algorithms, and software development principles
- Proficiency with OOP concepts, large-scale software architecture, networking and distributed system and UNIX/Linux environments
- Experience with data modeling and database design with focus on performance
- Experience with Relational (especially PostgreSQL) and NoSQL databases
- Experience with service-oriented architecture (especially REST)
- Knowledge of Cloud Services and cloud native application development (AWS, especially EC2, ECS, RDS, S3, Lambda)
- Experience with CI/CD principles, know-how of various tools, and passionate focus on CI/CD practices
- Experience with Docker containerization
- Strong unit test and debugging skills
- Experience with code versioning tools such as Git
- Strong sense of analytical thinking and problem-solving skills
- Excellent attention to detail
- Highly effective time management and multitasking skills
- Strong verbal and written communication skills
- Fluent in English
Preferred qualifications:
- Experience with container orchestration frameworks such as Kubernetes
- Basic understanding of front-end technologies such as JavaScript, React, HTML5 and CSS3
- Prior experience with SCRUM/Agile methodologies
- Contributions to open-source projects
- Experience with purchasing and/or ERP systems
About The Role
As a Backend Engineer, you will be responsible for developing key technical solutions for complex purchasing and supply chain business problems. As a member of our engineering team, you will be expected to be a team player, be an owner of the product, and contribute and add meaningful innovation to our development. You will have a significant opportunity to be an important part of Sourcing Value. You will collaborate very closely with all other teams to assist in their functions.
Responsibilities
- Writing well-designed, reusable, testable, and secure code by applying best software development practices
- Collaborating in a multi-disciplinary team
- Participating and conducting code reviews
- Troubleshooting system-level integration and performance issues
- Discovering, learning, and implementing new technologies
- Documenting the software components
- Learning best practices, doing pair programming, etc.