Mid Software Developer (React, Node.js, TypeScript) (In Office) – CPT
ENVIRONMENT:
An Investment company is seeking a Mid-level Software Developer to join their team in Durbanville, Cape Town.
The Mid-level Software Developer is responsible for designing, building, and maintaining features across the full technology stack of our web platform. The role works across the React/TypeScript frontend, the Node.js/Express backend, and the PostgreSQL database layer, taking ownership of features from specification through to production deployment. Having grown beyond junior responsibilities, this role is expected to deliver production-ready features independently, contribute to technical decisions, handle deployments through our CI/CD pipeline, and integrate the platform with third-party services such as PayFast and transactional email providers.
DUTIES:
-
Translate product specifications and designs into working, production-ready features across the full stack.
-
Build and maintain frontend interfaces using React 18, Vite, TailwindCSS, and shadcn/ui (Radix UI), ensuring accessibility and responsive behaviour.
-
Develop backend REST API endpoints using Node.js and Express, following established conventions for authentication, validation, and error handling.
-
Implement client-side state management using TanStack Query and form handling with React Hook Form and Zod validation.
-
Design and maintain PostgreSQL 16 schemas, write efficient SQL queries using the pg. (node-postgres) driver, and manage database migrations.
-
Implement data models that balance performance, integrity, and future extensibility.
-
Ensure backend security through proper use of Helmet, express-rate-limit, and Better Auth session-based authentication (HTTP Only cookies).
-
Convert UI/UX designs into pixel-accurate, accessible interfaces using TailwindCSS and Radix UI component primitives.
-
Implement client-side routing with React Router v6 and add polish through Framer Motion animations where appropriate.
-
Integrate map functionality using Leaflet and maintain a consistent visual language through the Lucide React icon library.
-
Build and maintain integrations with PayFast for payment processing, including handling of ITN (Instant Transaction Notification) callbacks and reconciliation.
-
Implement transactional email flows using NodeMailer (e.g. password reset, account notifications).
-
Integrate additional third-party APIs as required, ensuring secure credential management and graceful error handling.
-
Handle file and image uploads via Multer, including validation, storage management, and persistence through named Docker volumes.
-
Manage container orchestration using Docker Compose and ensure local and staging environments mirror production.
-
Configure and maintain Caddy as a reverse proxy, including automatic HTTPS provisioning.
-
Maintain and improve the CI/CD pipeline using self-hosted GitHub Actions, including staging deploys triggered on push to main.
-
Monitor Better Auth cloud dashboard (dash and sentinel plugins) and respond to authentication-related signals.
-
Diagnose and resolve bugs reported by users, internal stakeholders, or surfaced through monitoring.
-
Refactor and improve existing code to reduce technical debt and improve maintainability.
-
Write clear commit messages, meaningful pull request descriptions, and inline documentation where logic is non-obvious.
-
Ensure security best practices are applied across the stack (input validation, secure cookies, rate limiting, dependency updates).
REQUIREMENTS:
-
Minimum 2 years of professional software development experience.
-
Demonstrated experience building and maintaining production web applications across the full stack.
-
Proven track record of shipping features from specification through to deployment.
-
Experience working in a Git-based collaborative development environment.
-
Self-motivated learner who keeps up with developments in the JavaScript / React / Node.js ecosystem.
-
Reliable, accountable, and proactive in flagging blockers or risks early.
-
React 18 with hooks and modern functional component patterns.
-
Vite as a build tool, including environment configuration.
-
React Router v6 for client-side routing.
-
TanStack Query for server-state management and caching strategies.
-
React Hook Form with Zod schemas for type-safe form validation.
-
Framer Motion for UI animations.
-
Leaflet for map-based interfaces.
-
Node.js with Express framework — routing, middleware, and REST API design.
-
PostgreSQL 16 and SQL fluency, including the pg. (node-postgres) driver.
-
Better Auth (and @better-auth/infra) for session-based authentication using HTTP Only cookies.
-
Multer for file and image upload handling.
-
NodeMailer for transactional email delivery.
-
HTTP security via Helmet and rate limiting via express-rate-limit.
-
PayFast payment integration, including signature validation and ITN handling.
-
Strong proficiency in JavaScript / TypeScript.
-
Git workflows — feature branches, pull requests, code reviews.
-
Understanding of REST API design principles and HTTP fundamentals.
ATTRIBUTES:
-
Strong problem-solving ability and attention to detail.
-
Ability to work independently and take ownership of features end-to-end.
-
Clear written and verbal communication, particularly when discussing technical trade-offs.
-
Collaborative mindset — willing to give and receive constructive code review feedback.