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.
By continuing you agree to our Terms & Privacy Policy.