Job Description
As a Senior Experience Technologist, you’ll be working as part of an agile team with other passionate, driven, and talented people, creating innovative solutions for our clients. Your primary responsibilities will include developing interactive web based, mobile, and/or desktop applications using Sapient as well as industry best practices to deliver high value and quality to Sapient clients.
Our environment and culture foster growth and present exciting opportunities to hone your skills in the industries that we support, and in business problem solving. You will be responsible for software from idea to code to test to operations. You will make an impact on our clients directly through your work, and will see your ideas become reality. You will build your technical skills, expand your collaborative methods, and grow your leadership talent.
Qualifications
Your Skills and Experience
Excellent hands-on knowledge of HTML5, CSS3, JavaScript, CSS Modules / CSS in JS
Hands-on experience with Functional Programming (FP)
Hands-on experience working with Object Oriented JavaScript (OOJS), JavaScript - and practical uses in building complex interactive experiences, primarily with ECMAScript 2015+. You should be up-to-date with new specifications (different stages), and also, using transpilers like Babel to use features from all stages
Good understanding of creational and structural design patterns in JavaScript
Experience working with Single Page Applications (SPA) with universal rendering capabilities and or Microfrontends.
Solid understanding of React.js, its core principles - lifecycle methods, virtual DOM etc. and at least 6 – 12 months hands-on experience with the same
Understanding of one-way data flow and the Flux architecture.
Experience of implementing Security features in frontend applications, which includes adding the right security headers, CSP policies, protection against XSS click jacking etc.
Understanding of stateful (container) vs stateless (presentational) components and how to break down the application page into components,
React Hooks, Suspense, Memo etc.
Core understanding of how React’s state management works out of the box. Understanding of different libraries available to better manage application state like Redux/MobX. Difference in the way each library works (pure functions vs observables etc.) and the workflows as well as best practices
Different middleware implementations available for async actions in Redux like redux-thunk, redux-saga, redux-observable etc. Hands-on experience with at least one
Understanding of different CSS architectures that go hand-in-hand with React.js application development. Pros and cons of component-level CSS vs global and where to apply each
Thorough understanding of Webpack bundler. Experience with configuring Webpack from scratch is a plus. Experience with Rollup, Parcel is a plus.
Hands-on experience with building Progressive Web Apps (PWAs) on any framework.
Hands-on experience with Frontend Performance Optimization – especially in a React application with respect to resource loading strategy, CPU/Memory profiling on the browser.
Hands-on experience with test-driven development using Jest or equivalent. Familiar with snapshot testing, code coverage. Experience working with utilities like Enzyme.
Experience using fluid grids, and building responsive/adaptive websites using Bootstrap etc.
Hands-on experience working with server-side JavaScript frameworks like Express, Koa, Hapi etc. (based on Node.js) for server side rendering and building APIs
Good understanding of REST APIs and Microservices. Should have understanding of how resources are organized and how application should align based on the same. You are expected to have understanding of how CRUD operations map to HTTP methods for a well-designed service.
API Contract design. Domain Models
Logically understands relational databases like MySQL and non-relational databases like MongoDB, Firebase or Redis.
Hands-on experience with GraphQL is a big plus.
Knowledge of Kuberneters configurations, Cloud technologies, Web & Application server setup is a plus
Hands-on experience working with frontend build systems and automating the same using any task runner.
Understanding of hybrid vs native mobile apps. Experience with implementation of mobile/hybrid frameworks/libraries like React Native, Ionic, Flutter is a plus.
Understanding of SEO and accessibility and making it part of the development workflow
Moderate to Strong graphics manipulation/optimization skills using Photoshop is a plus.
Excellent verbal and writen skills for effective communication. Any demonstrated ability with blogs, speaking at conferences/meetups is a plus.
Set yourself apart with
Technical end-to-end design for stories by collaborating with business analyst/product owner, technical architect and clients
Implement stories end-to-end, which includes Frontend, Backends for Frontend (BFF), Caching and also service orchestration in some cases) using best engineering practices like test driven development, SOLID principles and consideration of non-functional requirements like performance, scalability, security or cloud readiness (as applicable) at story level
Automated testing at unit, module and integration level as needed using tools relevant for platform (e.g. Jasmine, Jest, Karma, Webdriver.io etc.)
Focus on quality by implementing best practices like logging, calling out technical debt, meeting KPIs using code quality tools like SonarQube, ESLint (customize and sync with Sonar), Stylelint/Sasslint and so on.
Hands-on with automating redundant work, like common component structure, both in terms of scaffolding as well as using the right design patterns / creating abstractions.
Mentor junior engineers in helping review code, guiding on technical decisions
Hands-on with devops pipeline and able to tweak/change build/deployment pipeline as needed in context of a module (e.g. Jenkins / Travis / Now.sh / Gitlab)