Senior Full-Stack Engineer — Node.js / Next.js / PostgreSQL — SaaS & Payment Platform
Budget: $45.0 - $60.0
HOURLY / FULL_TIME
⭐ 0.00 (0)
Egypt
next.js, postgresql, docker, kubernetes, api-development, api-integration, amazon-ec2, node.js
Bevorzugte Qualifikationen
- Erfahrung: Experte
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.
Auf Upwork öffnen
AI proposal draft
Generate a short cover letter for this job. Edit before sending.
Sign in to generate an AI proposal draft.
Anmelden