Engineering

UI Engineer (AngularJS)

Role Summary

This position will help ensure commerce applications are on the cutting edge and become a benchmark our competitors will strive to emulate.

This engineering position will be primarily responsible for crafting highly available, fault-tolerant digital interfaces using a modern JavaScript technology stack.  This critical role must work across multiple platforms, systems, and departments in an agile environment. Strong communication skills will be needed for this position to integrate solutions across other engineering teams within and outside the organization, as well as work with business stakeholders.

This position works in a cross-functional agile team and requires a leader who can use his or her leadership skills to drive cross-functional technology solutions that meet the demands of the business. This position works closely with product owners, business stakeholders, creatives, and scrum masters.

This position will work in a Angular and associated technologies (i.e., NgRx) codebase. All work done is expected to be covered by automated unit tests, so this position should have a strong understanding of automated testing and test-driven development. This position uses mobile-first design patterns and progressive web application development.

Understanding deployment, code management, and cloud infrastructure is necessary, as this position will involve cloud-based delivery and deployment of new code and existing applications. A background in computer science principles is helpful, as this position will be responsible for development on both the client side (JavaScript) and the server side (.NET).

Essential Tasks

Time SpentEssential Tasks
65%Write high-quality, test-covered JavaScript using Angular-associated frameworks, i.e. RxJS, etc.Demonstrate technical excellence in software development, with expertise in single page applications (SPA), statically generated pages, server-rendered pages, web applications, and knowledge of modern design paradigms such as unidirectional data flows, pure functions, and component-based interface architecture.Excellent grasp of HTML and HTML-like languages and applying CSS using CSS pre-compilers like Sass and CSS Modules to implement layout and design.Familiarity with mobile-first, user experience, and design.Provide technical consulting, technical mentorship, and demonstrating advanced technical expertise in JavaScript, single page applications, client-side performance, data systems and structures, client-side debugging and development tools, and Research and implement new functionality, enhancements, and bug fixes.
25%Experience working in .NET with understanding of its concepts, best practices, and conventionsBe a customer advocate – think of the customer in all requirements and projectsWork with other members of the development team, product owners, business stakeholders, and creative to define functional, experience, and technical requirementsBe a key contributor in the estimation process allowing the team to provide high-quality estimates
10%Assist end users in resolving and identifying system issues by providing application knowledge and technical expertiseRecommend appropriate solutions, including risk analysis and work estimatesRecommend system enhancements, patches, or upgrades necessary to support system stability and performance

Requirements

Essential

  • Education: Four-year degree in Computer Science or an equivalent combination of coursework and job experience
  • 4-7+ years’ experience working with UI and Mobile development teams – preferably in an Agile development environment writing highly available, functional software and applications.
  • Displays excellent communication skills with both technical and non-technical personnel.
  • Helps scope engagement by providing detailed development time estimates and participating in the scrum process (e.g., refinement, standups, etc.).
  • Ability to performance tune, debug, and troubleshoot medium to large-scale client-side web applications.
  • Experience working on single-page applications using JavaScript and CSS pre-compilers.
  • Familiar and comfortable with automated testing development, writing unit cases, and achieving 100% code coverage.
  • Develop web applications using mobile-first responsive design.
  • Ability to work in a very fast-paced environment while managing multiple responsibilities.
  • Ability and willingness to learn new technologies.
  • Performs development tasks with little supervision and is self-motivated and self-directed.
  • Expert knowledge of HTML, CSS, JavaScript, and modern client-side development using APIs, HTTP requests, and JSON data structures.
  • Single Page Application (SPA) experience (Angular, Vue) with experience and preference for React-associated libraries and frameworks.
  • Experience with JavaScript pre-compilers (e.g., WebPack, Vite, TypeScript) and CSS pre-compilers (e.g., Sass and CSS Modules).
  • Angular Developer Should be familiar with: 
  • Testing: Jazmine, Karma or Jest 
  • Observables and Reactive programing (Rx would be appreciated) 
  • State Apps Controller like NgRx, Akita, NgXs 
  • Design Patterns like, Dependency Injection,  Singleton, Factory, Observable, Decorator, 
  • Ionic
  • Material Design Pattern 
  • Experience with modern JavaScript development, leveraging ES6 and ES6 design patterns.
  • Conceptual understanding of Content Delivery Networks (CDN) and Caching and their utility in offloading traffic and improving site performance.

Preferred

  • Knowledge of the retail industry
  • Experience writing unit tests in Jest.
  • Experience working with progressive web applications.
  • Experience and understanding of cloud-based infrastructure, deployment, and code management.
  • Experience working with NodeJS, ExpressJS, Apollo Server, and GraphQL
  • Experience working with Sass and CSS Modules.
  • Experience working with the pre-compilers WebPack and Rollup.
  • Experience in source code management, using Git and Gitflow.
  • Experience in using and knowledge of Web services and APIs.
  • Familiar with application performance monitoring, both client-side and server-side.
  • Ability to set up their development environment.