Java -
POSTION SUMMARY & KEY AREAS OF RESPONSIBILITY :
The NCR NVL™ is a product which enables retailers to setup and execute omni-channel communication and promotions, provides a wide range of business services to drive the next generation shopping experience both in-store and online. Our teams develop software in a fast-paced, zero-defect environment using the latest software development techniques and tools with a zeal towards customer satisfaction. NVL is a state of art product with a large variety of tech stack including very recent cutting-edge technologies.
Primary responsibility is to develop high quality software solutions as a contributing member of a highly motivated team of Engineers. Should be able to understand what goes behind the building of a complex resilient scalable enterprise products and should contribute through design and development. This individual has to solve complex technical challenges and assist in laying out technical roadmap.
Should have had hands on complex applications / solutions which has integrations with various components. Experience with production systems and migrating customers from legacy systems to later versions is preferred. Advanced knowledge on the best practices on enterprise applications – logging, communication, coding, testing and CI / CD pipeline is expected.
The primary solution stack technology for this position is Java with other preferred skills referred below.
Responsibilities include :
- Develop high quality software which meets requirements, promotes re-use of software components, and facilitates ease of support.
- Diagnose, isolate, and implement remedies for system failures caused by errors in software code.
- Identifies and implements process improvements in Engineering practices.
- Utilize software-based system maintenance and tracking tools.
- Provide input and technical content for technical documentation, user help materials and customer training.
- Conduct unit tests, track problems, and implement changes to ensure adherence to test plan and functional / nonfunctional requirements
- Analyze, design and implement software mechanisms to improve code stability, performance, and reusability.
- Participates and leads code review sessions.
- Create high fidelity estimates of their own work efforts.
- Assist others in estimating task effort and dependencies, responsible for team commitments within the Sprint.
- May be asked to lead and advise other Engineering resources as part of project activities.
- Considered subject matter experts in their chosen field.
- Participates with industry groups, stays current with technology and industry trends, disseminates knowledge to team members, forms best practices.
- Communicate with Solution Management and other internal teams.
- Participates in cross-functional collaboration within the organization.
- Works with developers to assist detailed problem resolution for difficult problems which are proving difficult for Lead Developers to resolve.
- Works on improving use of tools relating to NVL development / tools used.
BASIC QUALIFICATIONS :
Bachelor’s degree in computer science or related fieldA minimum of 4 years of experience in software design and developmentA minimum of 4 years of experience in preferred technology stack,Must Have
Very strong development experience Java 11, Spring, Sprint boot.API based design and development using REST API and GraphqlMulti-threading ConceptsUnit testing and integration testing frameworks like Junit5, MockitoMessaging services.Strong understanding and affinity towards building scalable and robust solutions.Very strong understanding of NOSQL(MongoDB) and SQL DBSIn depth understanding of Design Patterns and ability to design a Class Model, Data Model for a given requirement.Experience with CI / AppSec tools like – Sonar, Coverity, Whitesource etc.Strong in Debugging, Memory Leaks, Profiling, Crashes, etcGood to Have
Hands on development experience with Linux OSGood understanding of NFT Performance;scalability and availability and familiarity with Tools
Cloud Native Application DevelopmentLinux OS and scriptingShould be familiar with HTTPs / SSLNetworking concepts like how to setup and configure name servers and network interfaces Load BalancersMust have hands on any of the two from the following skill setsDocker and K8sAzure / GCPCucumberScalaHelmDeep understanding of Software Development and Quality Assurance best practicesExcellent written and verbal communication skillsExcellent teamwork and collaboration skillsExperience operating in an Agile environment, with a deep understanding of agile development principles.Familiarity with Continuous Improvement and Six Sigma Lean principles.PREFERRED QUALIFICATIONS :
Knowledge of software development standards and protocols :
Secured development knowledgeDevOps for the cloud deploymentsCI / CD pipelineCloud development knowledge on Azure or GCPGood to have domain experience of Loyalty in Retail or Hospitality spaceExperience with tools utilized in development environment :JiraGITScripting languages