Our technologists are responsible for more than just implementation. As part of the Experience Technology (XT) practice, you will bring knowledge of modern technologies and techniques to the discovery, planning, and design of products and experiences.
You’ll help creative designers to push boundaries and stay ahead of the curve, while raising awareness of choices that could impact accessibility, search engine optimization, and page performance. As a Senior Associate XT, you will be expected to be hands-on and also lead front-end development efforts of projects.
As a Senior Associate, Experience Technology, you are responsible for developing interactive web-based, mobile, and/or desktop applications using industry best practices to deliver high value and quality to our clients. The Interactive Developer works closely with Visual Designers and Back-end Application Developers to build highly efficient, user-friendly, interfaces.
You will evaluate and recommend appropriate usage of Rich-UI components and capabilities to enhance the user experience. You would also be responsible for leading key tracks/teams and mentoring team members in key interactive technologies. The Senior Associate, Experience Technology also manages clients and represents our expertise and thought leadership in interactive technologies and applications.
- Serve as a technical advisor and problem solver to clients, assisting them in optimizing their use of emerging and established technologies
- Architect and manage end-to-end delivery of full-scale web applications
- Work collaboratively in an Agile environment
- Build well-structured UI components that follow best practices
- Convert visual designs to working user interfaces
- Take feedback from users and implement interaction changes
- Guide test strategy, including unit, integration and acceptance testing
- Troubleshoot performance issues
- Strong understanding of data structures, algorithms, time/space complexity
- Working knowledge of design patterns
- Working knowledge of object-oriented and/or functional programming
- Experience with domain-driven design
- Experience with RESTful API design
- Experience with behavior-driven development or specification by example
- Ability to articulate a solution by applying the OOP principles
- GIT/SVN, etc.
- Understand the concept of event loops, single-threaded execution
- Understand the concept of UI virtualization
- Understand the technical details of how UI is rendered on-screen (i.e. how does browser render HTML?)
- Know the difference between immediate-mode and retained-mode of rendering
- Experience handling performance issues with rendering
- Experience profiling, debugging and troubleshooting CPU, memory and logic issues, preferably with Chrome DevTools
- Understand the difference between HTML 4.0 and HTML 5.0
- Have knowledge of what is new in HTML 5.0
- Browser differences
- Know the various kinds of selectors and their specificity
- Understand the new properties introduced in CSS3
- Understand CSS directives such as @import, @media, @font-face
- Understand responsive web design
- Understand how selectors are looked up, triggers for style recalculation
- Experience with proper structuring of CSS using techniques such as SMACSS, OOCSS or BEM
- Experience applying functional and object-oriented styles of programming
- Understand details of the prototype chain
- Working knowledge of libraries such as: Underscore or LoDash, jQuery
- Experience with MVC frameworks such as AngularJS, Backbone, Ember, Node.js, Three.js and React
- Experience with build tools such as Grunt, Gulp, SASS, Browserify, RequireJS
- Server-side JS
Ability to multitask under pressure and work independently with minimal supervision.
- Ability to prioritize when under pressure
6-10 years of development experience
Bachelors or Master’s degree in Computer Science (lack of a Computer Science degree may be substituted by equivalent professional experience.