The company supplies in-store retail solutions to retailers. It is a billion-dollar global company based in Research Triangle Park, NC.
You would own and evolve the point-of-sale client, a Vue 3 and TypeScript application framework used across fixed lanes, self-checkout, kiosks, specialty stations, associate mobile devices, and customer displays.
This is a successor role on an architect track. The hire will be trained to become the architect for the point-of-sale client.
The work is platform engineering more than feature work. Most of it is the framework other teams build screens on: a dependency-injection and plugin system that partners extend, a configuration merge chain that applies customer overrides, a device layer for lane hardware, a legacy Dojo application that must keep shipping beside the modern client, and the build train that releases it all together.
The role calls for solid Vue.js and Java enterprise experience, with a focus on complex browser-side functionality. The team works collaboratively and puts the customer first. This suits someone who wants a route into architecture rather than a bigger backlog.
Responsibilities
Design, build, and test client UI and framework code in Vue 3 and TypeScript, and mentor others doing the same.
Design for the people who use the framework: your own team, plus the retailer, partner, and services engineers who extend it from outside.
Own the extensibility model: dependency injection, decorator-based registration, plugin loading, UI slot injection, and the merge chain that layers base, company, partner, and customer configuration.
Keep plugins and customizations built on earlier framework versions working.
Publish versioned shared packages for other teams, applying semantic versioning and a disciplined deprecation process.
Keep two UI generations shippable at once by moving the legacy Dojo layer over gradually, not in one cutover.
Extend the device layer for scanners, scales, printers, payment terminals, cash recyclers, and customer displays, including the mock device harness that runs the full client on a laptop.
Run the client release train: hybrid Maven and npm builds, monorepo publishing, and Jenkins multi-branch pipelines across the framework dependency chain, including constrained and air-gapped customer environments.
Own client quality: unit and component tests held to a coverage gate, and a browser-automated BDD suite that blocks builds.
Write and defend architecture decision records, component analyses, and solution designs, and present the client stack at the Architecture Review Board.
Maintain the client Self-Enablement Guide and generated extension catalogs, and act as technical contact for key technology partners.
Test product features, and fix unit, functional, and customer- or partner-reported defects on every supported release line.
Give realistic estimates, deliver on time while helping teammates, and help the team hit its KPIs.
Apply sound programming patterns, flag anti-patterns, and adapt to fast change in pursuit of better solutions.
Requirements
Bachelor's degree in computer science or equivalent experience.
Software Engineer III: at least 5 years of professional web development experience. Software Engineer IV: at least 9 years of full-stack web development, mostly client side.
Strong analytical skills and TypeScript or object-oriented programming skill, including generics, declaration files, and strict mode.
At least 2 years with Vue 3 or a comparable modern component framework, at depth: reactivity, routing, and centralized state management.
Experience building shared libraries or frameworks that other teams consume, not only end-user features.
Working knowledge of a dependency-injection or inversion-of-control container (such as InversifyJS, tsyringe, Angular DI, or Spring) and decorator-based registration, including lifetimes and resolution order.
Deep skill in HTML5, JavaScript, TypeScript, SASS, XML/JSON, and Vue.js, including ESM, AMD, and UMD module systems and modern build tools such as Vite.
Unit testing as a habit, plus browser automation with at least one of Playwright, Cypress, or Selenium, and the ability to diagnose a flaky test rather than retry it.
Proven ability to work productively in a large legacy codebase without rewriting it.
Experience in a Java-based environment, including enterprise web content, enough to debug a service you do not own and find where a defect really sits.
Understanding of REST and OpenAPI contracts, including what counts as a breaking change.
Comfort with CI/CD: pipelines, containerized builds, artifact registries, dependency resolution, lockfiles, and transitive version conflicts.
Proficiency with Git at team scale: long-lived release lines, backports, and conflict resolution that loses no work.
Experience with Linux, Windows, iOS, or Android: installation, light administration, and simple scripting.
Knowledge of software development methods and life cycle, especially Agile.
Clear technical writing and a track record of documenting decisions that others then followed. Communication is a hiring criterion for this role, not an extra.
Strong problem-solving and debugging skills, attention to detail, and a team mindset.
Preferred: experience with point-of-sale, kiosk, self-checkout, or other attended or unattended retail systems, and general retail industry knowledge.
Preferred: experience with plugin or extension architectures that third parties build against, and designing extension points that outlast their first consumer.
Preferred: skills with POS attached devices (scanners, scales, printers, payment terminals, cash recyclers) and duplex protocols such as WebSocket or STOMP, including retry, reconnect, and half-open connection handling.
Preferred: experience tracing a fault that lay in hardware, firmware, or a driver rather than in application code.
Preferred: cross-document work such as iframes, postMessage, origin and window-context reasoning, and storage scoping.
Preferred: working knowledge of Dojo, React, or AngularJS alongside Vue.js, or comparable experience keeping a superseded framework running in production.
Preferred: working knowledge of Docker and Spring Boot, plus Swagger and REST design.
Conditions
The company will not sponsor visas now or in the future, so you must be able to work in the United States without current or future sponsorship.
You must live locally to the Raleigh/Durham, NC area or the Bentonville, AR area.
This is a hybrid role, with in-person attendance at least 3 days a week.
Benefits
Competitive salary and a generous benefits package.
Group health coverage: medical, dental, and vision.
Employee Assistance Programs.
Pre-tax spending accounts.
401(k) plan with company match.
Company-provided life insurance.
Pet insurance.
Employee discounts.
Generous paid holidays, paid vacation, and sick or personal days.