Quick Summary
Senior Fullstack Drupal Developer
Headless Drupal | Backend Focus | React | Conversational English
About the Opportunity
We are looking for a Senior Fullstack Drupal Developer to work on the development and evolution of digital solutions built on a Headless Drupal architecture. In this model, Drupal will be used primarily as a platform for content management, business rules, data persistence, and service provision through APIs, while the digital experience will be implemented in a decoupled frontend application, preferably using React.
Although technical evaluation will focus more deeply on the backend layer, the professional must possess effective fullstack action capability, understanding and implementing the complete integration between Drupal, APIs, and frontend applications.
The ideal professional should combine technical depth, architectural vision, autonomy, curiosity, investigative capacity, and conversational English to work in an international environment.
Architecture Context
The solution uses a Headless Drupal approach, in which:
- Drupal acts as the CMS, data layer, content management, and backend of the solution;
- Business rules are implemented in custom modules and services;
- Content and features are made available via APIs;
- The user experience is developed in a decoupled frontend application;
- React is the main technological reference for the frontend layer;
- Backend and frontend have independent development and deployment lifecycles;
- Integration between layers must be secure, performant, observable, and scalable.
The professional must understand the impact of this architecture on authentication, authorization, cache, security, content modeling, API versioning, performance, and user experience.
Key Responsibilities
General Responsibilities
- Develop, evolve, and sustain digital solutions based on Headless Drupal;
- Act end-to-end in implementing features between backend and frontend;
- Participate in technical refinements, architecture definitions, and estimates;
- Transform functional requirements into scalable and sustainable technical solutions;
- Ensure code quality, security, performance, and maintainability;
- Investigate failures and perform root-cause analysis;
- Document APIs, components, settings, and technical decisions;
- Participate in technical meetings in Portuguese and English;
- Work collaboratively with architecture, product, quality, infrastructure, and other developers.
Expectations for Backend
Backend performance will focus on using Drupal as a decoupled platform and service provider.
Drupal Development
- Develop custom modules following Drupal best practices;
- Implement custom entities, avoiding inappropriate use of Nodes;
- Create fields, relationships, data structures, and validation rules;
- Develop services using Drupal's dependency injection system;
- Correctly use Events, Subscribers, Plugins, Services, and Hooks;
- Implement forms and administrative interfaces for solution management;
- Configure permissions, roles, and access controls;
- Develop administrative routines, commands, and automated processes;
- Apply object-oriented development standards in PHP.
API Development
- Design and implement custom REST APIs;
- Manually develop the core logic of endpoints without exclusive reliance on JSON:API;
- Create endpoints for querying, creating, updating, and processing data;
- Implement payload validation and consistent error handling;
- Define clear and documented API contracts;
- Apply API versioning;
- Implement pagination, filters, sorting, and search criteria;
- Ensure backward compatibility when required;
- Create Postman collections for documentation and testing;
- Document endpoints using OpenAPI or Swagger, when applicable.
Security
- Implement authentication and authorization between frontend and backend;
- Work with standards such as OAuth 2.0, JWT, or equivalent mechanisms;
- Implement access control by user, profile, and operation;
- Ensure protection against unauthorized access and data manipulation;
- Apply input validation and sanitization;
- Protect the application against common vulnerabilities;
- Properly configure CORS, security headers, and origin policies;
- Ensure sensitive data is not unduly exposed through APIs;
- Apply security recommendations from the Drupal ecosystem.
Performance and Scalability
- Design solutions prepared for high request volumes;
- Ensure integrity in concurrent operations;
- Avoid record duplication and race conditions;
- Use database transactions when necessary;
- Optimize queries and database access;
- Implement Drupal caching strategies;
- Work with Cache API, Cache Tags, Cache Contexts, and Cache Max-Age;
- Evaluate the use of queues and asynchronous processing;
- Reduce unnecessary load on Drupal;
- Analyze bottlenecks and propose performance improvements.
Observability and Operations
- Implement structured logging;
- Create mechanisms for request tracing;
- Support the definition of metrics and alerts;
- Facilitate error identification between frontend, API, and backend;
- Implement consistent exception handling;
- Use correlation IDs or equivalent mechanisms;
- Support failure diagnosis in integrated environments;
- Monitor API availability, latency, and error rates.
Backend Quality
- Write clear, modular, and testable code;
- Apply SOLID principles, Clean Code, and separation of concerns;
- Create unit, functional, and integration tests;
- Use PHPUnit and related tools;
- Participate in code reviews;
- Ensure adherence to Drupal development standards;
- Use static analysis and code quality tools;
- Maintain minimal documentation of technical flows and solutions.
Expectations for Frontend
The frontend layer will be responsible for consuming Drupal APIs and delivering the digital user experience.
React Development
- Develop applications using React;
- Create reusable, decoupled components;
- Work with functional components and React Hooks;
- Manage local and shared application state;
- Implement navigation and routing;
- Consume REST APIs;
- Handle loading, success, no-data, and error states;
- Implement forms and validations;
- Integrate frontend components with API contracts;
- Create responsive experiences for different screen resolutions;
- Maintain code organization, readability, and reusability.
Integration with Headless Drupal
- Consume content and data provided by Drupal;
- Correctly interpret content models provided by APIs;
- Implement authentication and session maintenance;
- Work with access tokens and credential renewal;
- Implement permission handling on the frontend;
- Work with URLs, slugs, aliases, and metadata provided by the CMS;
- Ensure proper handling of structured content;
- Implement secure rendering of rich content;
- Align frontend changes with the evolution of API contracts;
- Identify and diagnose integration issues between React and Drupal.
Quality and User Experience
- Develop functional, intuitive, and accessible interfaces;
- Apply semantic HTML;
- Work with CSS, Sass, CSS Modules, or equivalent solutions;
- Implement responsive layouts;
- Consider basic accessibility requirements;
- Correctly use ARIA attributes when necessary;
- Ensure proper keyboard navigation;
- Implement visual feedback for user actions;
- Avoid inconsistent behavior during loading and updates;
- Apply best practices for user experience, even without acting as a designer.
Frontend Performance
- Avoid unnecessary re-renders;
- Apply lazy loading and code splitting;
- Optimize component and resource loading;
- Use memoization when technically justified;
- Implement appropriate caching strategies;
- Optimize images and static assets;
- Monitor application performance metrics;
- Consider Core Web Vitals;
- Reduce the impact of excessive API calls;
- Implement debounce, throttle, or pagination when necessary.
Frontend Testing
- Create unit tests for components;
- Create integration tests;
- Test user interaction flows;
- Use tools such as Jest and React Testing Library;
- Use Cypress, Playwright, or equivalent tools for end-to-end testing;
- Create API mocks when necessary;
- Validate error, loading, and unavailability behaviors;
- Ensure critical components can be tested in isolation.
Required Technical Skills
Backend
- Solid experience with Drupal;
- Experience with custom module development;
- Advanced knowledge of object-oriented PHP;
- Knowledge of Drupal's internal APIs;
- Experience with custom entities;
- Experience with Services and Dependency Injection;
- Experience with relational databases;
- Knowledge of transactions and data integrity;
- Experience with custom REST APIs;
- Knowledge of authentication and authorization;
- Knowledge of web application security;
- Knowledge of caching and performance in Drupal;
- Experience with Composer;
- Experience with Git;
- Experience with Lando, Docker, or equivalent environment;
- Experience with Postman;
- Ability to create technical documentation.
Frontend
- Practical experience with React;
- Solid knowledge of modern JavaScript;
- Knowledge of TypeScript;
- Experience with React Hooks;
- Experience with componentization;
- Experience with consuming REST APIs;
- Knowledge of state management;
- Knowledge of HTML5 and CSS3;
- Experience with responsive design;
- Knowledge of accessibility;
- Experience with component testing;
- Ability to diagnose integration issues between frontend and backend.
Headless Architecture
- Consistent experience or knowledge in decoupled architectures;
- Understanding of the separation between CMS and experience layer;
- Knowledge of API contracts;
- Understanding of authentication in decoupled applications;
- Knowledge of CORS;
- Knowledge of distributed caching;
- Ability to analyze impacts of changes between backend and frontend;
- Understanding of observability in distributed architectures.
Language
- Conversational level English;
- Ability to participate in technical meetings;
- Ability to explain a solution or architectural decision;
- Ability to discuss problems, risks, and dependencies;
- Ability to understand technical documentation and requirements in English.
Differentials
- Experience with Drupal 10 or later versions;
- Experience with Next.js;
- Knowledge of Server-Side Rendering;
- Knowledge of Static Site Generation;
- Experience with GraphQL;
- Experience with JSON:API, even if not used as the main solution;
- Knowledge of Redux Toolkit, Zustand, or Context API;
- Experience with React Query or TanStack Query;
- Knowledge of Storybook;
- Experience with Design Systems;
- Knowledge of micro frontends;
- Experience with CDN and edge caching;
- Knowledge of Redis or Varnish;
- Experience with queues and messaging;
- Knowledge of cloud platforms;
- Experience with CI/CD;
- Experience with Docker;
- Knowledge of Kubernetes;
- Experience with observability tools;
- Experience in international environments;
- Experience in high-traffic applications.


