Xebia is a trusted advisor in the modern era of digital transformation, serving hundreds of leading brands worldwide with end-to-end IT solutions. The company has experts specializing in technology consulting, software engineering, AI, digital products and platforms, data, cloud, intelligent automation, agile transformation, and industry digitization. In addition to providing high-quality digital consulting and state-of-the-art software development, Xebia has a host of standardized solutions that substantially reduce the time-to-market for businesses.
Xebia also offers a diverse portfolio of training courses to help support forward-thinking organizations as they look to upskill and educate their workforce to capitalize on the latest digital capabilities. The company has a strong presence across 16 countries with development centres across the US, Latin America, Western Europe, Poland, the Nordics, the Middle East, and Asia Pacific.
FullStack
For Strategic hiring API Design and Development, Knowledge of microservices , cloud services should be one of the required skills
Updated JD with the same
Required skills and Qualification:
- 5+ years of professional experience in full-stack development.
Frontend:
- React.js including state management (e.g., Redux, Context API).
- Typescript
- Apollo Client - manage and execute GraphQL queries, mutations, and subscriptions
- UI Libraries like Redux Toolkit, MobX,, Tanstack Query, Jotai etc...
Backend :
- Node.js and experience with server-side frameworks like Express.js
- GraphQL
- In-depth knowledge of GraphQL and experience in designing and implementing GraphQL APIs.
- Proficiency with Apollo Server to define your GraphQL schema, resolve queries and mutations, and manage data sources
- Database
- Worked with database SQL compliant ORM or builders like KnexJS, Drizzle ORM, TypeORM or Sequelize
- Experience with databases such as MongoDB, PostgreSQL, or MySQL.
- RESTful APIs
- Solid understanding of RESTful API design and development.
- Experience with testing frameworks like jest, Mocha or Cypress and practices .
- Knowledgeable in design and development of microservices and related concepts and patterns
- Familiarity with cloud services in AWS, or GCP.
- Experience with version control systems like Git.
- Understanding of potential security concerns and how to prevent common exploits.
- Strong problem-solving skills and the ability to work independently as well as in a team environment.
Good to have skills:
- Frontend
- Experience in creating custom Hooks in React
- Advanced concepts of React such as Refs & ForwardRefs\
- Creating reusable components from a base component library
- Configuring build tools like Vite or Webpack
- Worked with package managers like PNPM, Yarn or any others
- Backend:
- Leverage best security practices (OWASP compliance) to secure API
- JWT Authentication and Role-based access control (RBAC)
- Familiarity with modern DevOps practices, including CI/CD pipelines and containerization (Docker)
- Experience in nginx configuration
Soft Skills (required for Lead):
- Strong communication
- Involve in discussions about Product and Engineering and explain technical challenges to the stakeholders
- Support on epic planning for upcoming quarters and sprints
PRE-SCREENING QUESTIONS
Javascript
What is hoisting in javascript ?
Answer : Hoisting is a JavaScript mechanism where variables and function declarations are moved to the top of their containing scope during the compile phase. This means that variables declared with var and functions can be used before their declaration. However, variables declared with let and const are hoisted but not initialized.
Explain the difference between var, let, and const.
Answer : var is function-scoped and can be re-declared and updated. let is block-scoped and can be updated but not re-declared within the same scope. const is block-scoped, and cannot be updated or re-declared; it must be initialized during declaration.
What is event delegation in javascript and why it is useful?
Answer : Delegation of an event is the process where you delegate listening for events to a parent element. This allows you to listen for events that are fired on dynamically added elements or prevent the need for adding and removing event listeners when nodes are updated.
What are prototypes in JavaScript?
Answer : Prototypes are objects from which other objects inherit properties and methods. In JavaScript, every object has a prototype, which is a link to another object. This prototype chain enables inheritance, allowing objects to share methods and properties.
What are "higher-order functions" in JavaScript?
Answer : A higher-order function is a function that can take other functions as arguments or return them as output.
How would you optimize a JavaScript application for performance?
Answers : Techniques include minimizing DOM access, using efficient algorithms, reducing memory leaks, lazy loading resources, debouncing/throttling events, and using tools like Webpack for code splitting and minification.
Typescript
What are the advantages of using TypeScript over JavaScript?
Answer: TypeScript offers static typing, which helps catch errors early and improves code quality. It also provides enhanced tooling, such as autocompletion and refactoring support, and promotes better code maintainability.
Can you explain the concept of type inference in TypeScript?
Answer : Type inference is the process where TypeScript automatically determines the type of a variable based on its initial value. For example, if you assign a number to a variable, TypeScript infers its type as number.
Explain the concept of "type guards" in TypeScript and provide an example where they are useful ?
Answer: Type guards are mechanisms that help TypeScript narrow down the type of a variable within a specific scope, allowing for type-specific operations. They are used to ensure that the type of a variable is correctly identified before performing operations on it.
Types of Type Guards:
- typeof Guard: Checks the type of a primitive value.
- instanceof Guard: Checks if an object is an instance of a class.
- User-defined Guards: Functions that return a type predicate to assert a type.
What access modifiers are supported by TypeScript?
Answer: There are three types of access modifiers in TypeScript: public, private, and protected.
public: All properties and methods are public by default. Public members of a class are visible and accessible from any location.
protected: Protected properties are accessible from within the same class and its subclass. For example, a variable or method with the protected keyword will be accessible from anywhere within its class and within a different class that extends the class containing the variable or method.
private: Private properties are only accessible from within the class the property or method is defined.
To use any of these access modifiers, add the public, protected, or public (if omitted, TypeScript will default to public) in front of the property or method.
What is the difference between extends and implements in TypeScript?
Answer: When a class extends another class, the child class will inherit all the properties and methods of the class it extends. You can override any of the existing properties and methods of its parent and add new ones.
When a class implements another class or interface, the class has to implement all the methods and properties from the implemented class or interface. The implements keyword acts as a contract that the class has to follow, and TypeScript will make sure that the class is of the same shape as the class or interface it implements.
Node.js
Explain Non-blocking with context to Node.js
Answer: Node.js uses an event-driven, non-blocking I/O model. This means that operations like file reading, database queries, and HTTP requests are handled asynchronously. When an operation completes, a callback function is executed to handle the result.
What is the purpose of the package.json file in a Node.js project?
Answer : The package.json file contains metadata about the project, such as its name, version, dependencies, and scripts. It is used to manage project dependencies and configure various aspects of the project.
What is the difference between require and import in Node.js?
Answer: require is used to import modules in CommonJS, the module system used in Node.js before ES6. import is used in ES6 modules, which is now supported in Node.js. ES6 modules are static and require a different file extension (.mjs or adding "type": "module" in package.json), while CommonJS modules are dynamic.
How does Node.js handle asynchronous code execution?
Node.js handles asynchronous code using callbacks, Promises, and async/await. These methods allow non-blocking execution, where the main thread continues to run while asynchronous operations are executed in the background.
GraphQL
What is GraphQL and how does it differ from REST?
Answer: GraphQL is a query language and runtime for APIs that allows clients to request exactly the data they need in a single query. It differs from REST by using a single endpoint and allowing flexible, nested queries, whereas REST uses multiple endpoints and may require multiple requests to fetch related data.
What is a GraphQL schema, and what role does it play in a GraphQL API?
- Answer: A GraphQL schema defines the types of data that can be queried and the relationships between those types. It acts as a contract between the client and server, ensuring that queries and mutations are validated and that the structure of data is well-defined.
Can you explain what resolvers are in GraphQL and their role in handling queries?
- Answer: Resolvers are functions responsible for fetching or computing the data for a specific field in a GraphQL query. When a query is executed, the GraphQL server uses resolvers to resolve the data for each field requested. Resolvers connect the schema to the underlying data sources or business logic, providing the data requested by the client.
React
What is a component in React, and how do functional components differ from class components?
- Answer: A component in React is a reusable piece of UI that can be either a function (functional component) or a class (class component). Functional components are simpler and use hooks for state and lifecycle methods, while class components use methods like render and lifecycle methods such as componentDidMount.
What are React hooks, and can you name a few commonly used ones?
- Answer: React hooks are functions that allow functional components to use state and other React features. Common hooks include useState for managing state, useEffect for side effects, and useContext for accessing context values.
How does the virtual DOM work in React?
- Answer: The virtual DOM is an in-memory representation of the actual DOM. React uses it to efficiently update the UI by calculating the difference between the current virtual DOM and the new one and applying only the necessary changes to the real DOM.
Some useful links:
Xebia | Creating Digital Leaders.
https://www.linkedin.com/company/xebia/mycompany/
http://twitter.com/xebiaindia
https://www.instagram.com/life_at_xebia/
http://www.youtube.com/XebiaIndia
What We Do
We are a pioneering IT consultancy company, following 1 mission, 4 values, and 4 business principles.
WHO WE ARE
With over 20 years of experience, our global network of passionate technologists and pioneering craftsmen deliver cutting-edge technology and game-changing consulting to companies on the brink of transformation.
Founded in 2001, Xebia was the first Dutch organization to embrace the Agile way of working, with gurus like Jeff Sutherland. Since then, we have grown from a Java company into a full-service digital consulting company with 4500+ professionals working on a worldwide ambition.
We are organized in complementary chapters – teams with a tremendous amount of knowledge and experience within a particular field, such as Agile, DevOps, Data and AI, Cloud, Software Technology, Low Code, and Microsoft.
We help the world’s top 250 companies and category leaders overcome digital challenges, embrace innovation, adopt new technology, and implement new business models. In addition to high-quality consulting, we also provide offshoring and nearshoring services.
WHAT WE DO
★ Digital Strategy
★ DevOps and SRE
★ Agile
★ Data and AI
★ Cloud
★ Microsoft Solutions
★ Software Technology
★ Security
★ Low Code
★ Xebia Academy
HOW WE ARE ORGANIZED
Xebia has launched specific labels, like GoDataDriven, Binx, Xpirit, Qxperts, Stackstate, Instruqt, Xccelerated, and Xebia Academy Complementing our organic growth, other specialized companies join our successful journey and also operate within the Xebia network under their own brand name, like Appcino, coMakeIt, g-company, Oblivion, PGS Software, and SwissQ. Together we are Xebia.
With 17 offices in Atlanta, San Francisco, UK, Vietnam, Canada, Amsterdam, and Hilversum (the Netherlands), Belgium, Germany, Gurgaon, Jaipur, Hyderabad, Pune, Bangalore, Poland, Melbourne, Mexico, and Dubai.
✉️ [email protected]