Job Description
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