Senirop S.A
November 2022 - present
Develop and maintain production backend applications using Ruby on Rails, working across models, controllers, services, repositories, database migrations, RESTful APIs, and integrations with frontend applications. Design and implement backend solutions using a Controller-Service-Repository architecture, promoting separation of concerns, maintainability, and testability across applications. Work with PostgreSQL and MongoDB databases, developing data models, migrations, queries, and integrations according to application requirements. Develop and configure cron jobs and scheduled processes to automate recurring application tasks and backend workflows. Design and integrate RESTful APIs and external services, coordinating backend functionality with React and React Native frontend applications. Implement automated backend testing using RSpec, covering application logic and API functionality while supporting code quality and regression prevention. Led the implementation of a Donations feature for the Tapinto platform, integrating Braintree for payment processing and developing the associated frontend flows, validation, backend integration, transaction handling, and payment status management. Designed and implemented a custom content package system for Tapinto, developing the backend and frontend functionality required to create and manage structured content packages and support the platform's publishing and monetization capabilities. Led frontend development for a new CRM platform built with React and TypeScript, using TanStack Query, TanStack Router, and Ant Design. Applied Hexagonal Architecture and Atomic Design principles, using the Facade Pattern to abstract external component libraries and establish a scalable frontend architecture. Delivered major performance improvements for the PIE for Providers project by optimizing data fetching, rendering logic, and state management in the Dashboard and Attendance views, reducing load times from nearly 2 minutes to approximately 4 seconds. Collaborate closely with frontend, backend, product, and design teams to define technical solutions, integrate application layers, resolve technical blockers, and deliver features end-to-end. Contribute to technical planning and architectural decisions, evaluating implementation approaches and breaking requirements into manageable development tasks. Manage frequent production releases, with a main release cycle every Thursday and complementary releases and hotfixes throughout the week. Troubleshoot production issues, diagnose runtime failures, and deliver fixes with minimal disruption. Communicate technical progress, implementation challenges, and production issues with team members and stakeholders throughout the development lifecycle. Use Cursor and project-specific Cursor Rules to accelerate development while enforcing project architecture, business logic, coding standards, and reusable implementation patterns. Review and validate AI-generated code before integration.