About the Role :
Do you get challenged to be better than you were the day before? Do you take a keen interest in system architecture, great ways of working and great implementations?
Do you have a passion for getting things done? Would you love to create experiences that impact the lives of millions of customers?
Then we would like to hear from you!
As a back-end engineer you will develop critical software, expose core services, and enable new and sophisticated end user experiences that will make a difference for consumers and for retail industry experts world-wide.
Key Responsibilities :
Design, develop and deploy enterprise back-end services, including new API layers and microservices, hosted in Cloud or hybrid On-Premise / Cloud environments
Actively participate in a collaborative team that applies principles of Agile, DevOps and CI / CD methodologies
Work with product owners and stakeholder teams to understand requirements, and translate these into pragmatic and effective technical solutions
Create technical designs and contribute to system architecture
Write APIs and service interfaces used by other developers, including web and mobile application developers
Work on solutions to migrate or encapsulate legacy systems and data to a modern architecture
Collaborate with teams to integrate user-facing elements with server-side logic
Ensure code quality through writing unit tests, automation and performing code reviews
Contribute ideas to finding the best solutions for algorithms, technologies and products / tools to be adopted
Work with product and design teams to understand end-user requirements, formulate use cases, and translate these into pragmatic and effective technical solutions
Improve code quality through unit tests, automation and performing code reviews
Mentor, and provide feedback to other team members
Required Skills :
Experience in developing Microservices or Business Services or APIs using Java 8+, Spring Boot
Demonstrated recent experience with hands-on coding and software design
Solid software design knowledge you should know how to create software that is extensible, reusable and meets desired architectural objectives
Experience with Java
Solid practitioner of the Agile / Scrum development process, ideally with test-driven development, DevOps and continuous integration / deployment (CI / CD)
Great communication skills, both oral and written
5+ years in professional development
Bachelor’s degree in Software / Computer Engineering, Computer Science or related field, or comparable relevant experience
Preferred (Optional) Skills :
Experience with REST / XML / JSON, Tomcat
Understanding of Service Discovery, Inter-Service Communication, Service Deployment and Service Orchestration frameworks
Exposure to Google Cloud Platform (GCP), Amazon AWS or Microsoft Azure
Good knowledge and experience with Kubernetes, Docker, Jenkins, API Connect, Kafka in a cloud environment
Solr, CloudSQL (Postgress), BigQuery, Datastore / Cassandra / CloudSQL (Postgress)
Redis
Hands-on experience in Functional Reactive Programming (FRP)
Familiarity with web front-end development (e.g. HTML, JavaScript and CSS)
QA skills in testing, scripting and test automation
Willingness to learn new technologies and approaches
Readiness to work in a global team with contributors from different backgrounds, skills and locations