← Обяви

Senior Full-Stack Engineer — Node.js / Next.js / PostgreSQL — SaaS & Payment Platform

Бюджет: $45.0 - $60.0 HOURLY / FULL_TIME ⭐ 0.00 (0) Egypt

next.js, postgresql, docker, kubernetes, api-development, api-integration, amazon-ec2, node.js

Предпочитана квалификация

  • Опит: Експерт
e or basic CRUD application. We are building the foundation for multiple SaaS and desktop/web applications, so we need an experienced Full-Stack Engineer who understands how to build maintainable, secure, scalable backend systems and modern web applications. The engineer will work directly on the sofacare.io platform and help us continue developing the system from its current architecture. We already have an existing codebase and architecture. This is not a greenfield project where you start from scratch. You will need to understand the existing architecture, database structure, authentication flow, API design, and business logic before making changes. Technology Stack Our primary stack includes: Frontend Next.js React TypeScript Tailwind CSS Next.js App Router Server Components / Client Components REST API integration Backend Node.js TypeScript Next.js server-side architecture REST APIs Authentication and authorization API security Webhooks Background/automated processes where required Database PostgreSQL / SQL Prisma ORM Database schema design Relationships Transactions Indexing Query optimization Migrations Infrastructure / Supporting Technologies Redis Rate limiting Session management JWT API keys Webhooks Payment APIs Git Linux Environment/configuration management Experience with Docker, CI/CD, cloud infrastructure, monitoring, and production deployments is a strong plus. What We Are Building sofacare.io will provide a central platform for managing multiple software products and their customers. The platform includes functionality such as: User registration and authentication Login/session management User accounts Software/product management Software licenses Subscription plans Lifetime purchases Credits Usage limits License validation API access Payment providers Products and prices Payment transactions Webhooks Orders Payment provider configuration Admin dashboard Permissions System settings API authentication Security controls Activity/logging Localization SaaS/business logic The platform will eventually support multiple software products that communicate with SofaCare through APIs. For example, an external desktop or web application should be able to communicate with SofaCare to: Register/login a user Verify the user's account Check the user's software license Check the user's subscription/plan Check usage limits Consume credits where applicable Validate access to specific features Communicate securely with SofaCare APIs Payment Architecture One important part of the platform is a multi-provider payment architecture. We want to avoid building the entire application around one payment provider. The architecture is intended to support providers such as: Stripe Paddle PayPal Additional providers in the future The engineer should be comfortable working with payment APIs and understanding concepts such as: Products Prices Customers Checkout Subscriptions One-time payments Lifetime purchases Recurring payments Payment status Refunds Webhooks Webhook verification Idempotency API versions Provider-specific differences Payment failures Transaction records The goal is to have a clean internal abstraction so that application code can work with a common payment interface rather than being tightly coupled to one provider. For example, the architecture should allow concepts similar to: provider.products.create() provider.products.update() provider.prices.create() while each payment provider handles its own API implementation internally. Strong experience designing integrations/abstractions like this is highly valuable. Authentication & Security Security is extremely important because SofaCare will be responsible for licensing, payments, and API access. You should have real-world experience with: Secure authentication Sessions Cookies JWT API keys Authorization Role-based permissions Password hashing CSRF considerations Rate limiting Input validation SQL injection prevention Secure API design Webhook signature verification Secret management Access control Secure error handling Logging without exposing sensitive information You should understand the difference between authentication and authorization and know how to protect both frontend routes and backend/API endpoints. Database Responsibilities You should be comfortable designing and maintaining relational databases. You will work with entities such as: Users Software Licenses Plans Subscriptions Orders Payments Products Prices Payment providers Settings Permissions API credentials Usage/credits Activity records We need someone who understands database architecture, not just how to create tables. You should be comfortable with: PostgreSQL Prisma Relations Foreign keys Unique constraints Indexes Transactions Migrations Data integrity Query optimization Pagination Filtering Sorting Reporting queries What You Will Do Your responsibilities will include: Developing new SofaCare.io features Maintaining and improving existing functionality Building backend APIs Developing Next.js pages and components Designing database schemas Writing Prisma queries Implementing authentication and authorization Building payment integrations Implementing webhook processing Developing license-management functionality Building subscription/business logic Improving API architecture Reviewing existing code Fixing bugs Improving security Improving performance Writing reusable services and components Creating clean and maintainable TypeScript code Testing important business logic Working with Git and branches Participating in technical discussions about architecture What We Expect From You We are looking for an engineer who can understand the system and make architectural decisions, not someone who simply waits for very detailed instructions. You should be able to receive a requirement such as: "We need to support another payment provider without changing the application-level payment logic." and understand the architectural implications, propose an approach, implement it, and explain the trade-offs. You should be comfortable reading an existing codebase and understanding: How authentication works How requests move through the application How APIs are structured How database models relate to each other How business logic is separated How permissions are enforced How payment providers are abstracted How errors are handled How configuration is managed Required Skills Must Have Strong Node.js experience Strong TypeScript experience Strong Next.js experience Strong React experience Strong PostgreSQL experience Strong Prisma experience REST API development Authentication/authorization Database design Git/GitHub Experience working with existing production codebases Strong understanding of backend architecture Strong understanding of security Very Important SaaS development experience Payment integration experience Stripe or Paddle experience Webhook development Subscription systems License/entitlement systems API architecture Redis Rate limiting Production debugging Nice to Have PayPal experience Docker CI/CD Linux server administration Cloud deployment Automated testing Playwright Jest Monitoring/logging Experience building developer APIs Experience building SaaS infrastructure platforms Code Quality Expectations We care about the quality of the architecture. We do not want a solution that simply "works" today but becomes difficult to maintain six months later. Code should be: Clean Typed Modular Reusable Testable Secure Easy to understand Properly structured Avoid unnecessary duplication and avoid putting large amounts of business logic directly inside React components or route handlers when it belongs in a service/domain layer. We expect appropriate separation between: UI API Business logic Database access External integrations Configuration Authentication Authorization Working With the Existing Architecture Before implementing major features, you will be expected to understand the existing architecture. We have already made architectural decisions and have an existing database/application structure. Therefore, we are specifically looking for someone who can: Read existing code Understand existing patterns Identify problems Suggest improvements when necessary Follow established conventions where appropriate Avoid unnecessary rewrites Make changes without breaking existing functionality We are not looking for someone who immediately wants to rewrite the entire project because they personally prefer a different framework or architecture. Communication You should be able to communicate technical decisions clearly. You don't need perfect English, but you must be able to: Explain what you are doing Ask useful technical questions Discuss architecture Explain problems Report progress Understand technical requirements We prefer engineers who communicate clearly rather than simply sending: "Done." Development Process We prefer working in small, reviewable steps. Typical workflow: Understand the requirement Review the existing implementation Identify affected components Propose the implementation when necessary Implement the change Test it Check for regressions Commit the changes Provide a short explanation of what was changed For larger features, we expect the work to be divided into logical stages rather than one huge implementation. Important: This Is a Long-Term Project We are looking for someone interested in becoming a reliable engineering partner for the platform. There will be ongoing development after the initial tasks. The project will continue expanding into: More payment providers More SaaS features More licensing functionality More APIs More software products More automation More integrations More reporting More administration functionality If you are looking for a quick one-week CRUD project, this probably isn't the right project for you. If you enjoy building real SaaS infrastructure and backend systems, we would like to hear from you. How to Apply Please do not send a generic proposal. Start your proposal with: "SofaCare" Then answer these questions: How many years of professional experience do you have with Node.js and TypeScript? How much experience do you have with Next.js? How much experience do you have with PostgreSQL and Prisma? Have you built a SaaS platform before? Please provide an example. Have you implemented Stripe, Paddle, PayPal, or another payment provider? Have you implemented subscription billing and webhooks? Have you worked with license/entitlement systems? Describe one backend architecture you designed or significantly improved. Provide 1–3 examples of relevant projects you personally developed. What part of this project do you think would be the most technically challenging, and why? Please provide GitHub, portfolio, or live project links where possible. We are particularly interested in seeing real applications you have built, especially SaaS platforms, payment systems, APIs, dashboards, or other backend-heavy applications. Please Do Not Apply If You only have basic tutorial-level Next.js experience You have never worked with backend systems You cannot work with PostgreSQL You have little/no TypeScript experience You only build frontend pages You rely heavily on copying generated code without understanding it You are uncomfortable working with an existing codebase You cannot explain your architectural decisions You are looking only for a quick/simple CRUD project We value engineering ability, architecture, security, and long-term maintainability more than simply knowing a long list of technologies. Project Goal Our goal is to build SofaCare.io into a reliable platform that can serve as the payment, licensing, subscription, and software-management infrastructure for multiple applications. We want an engineer who can grow with the project and help us build it properly from both a technical and architectural perspective.
Отвори в Upwork

AI proposal draft

Generate a short cover letter for this job. Edit before sending.

Sign in to generate an AI proposal draft.

Вход