Website:
buyacecard.com
Job details:
SENIOR FULL-STACK ENGINEER - ACECARD
Backend | Web | Mobile
Type: Full-time
Location: Remote-first (India). Periodic in-person syncs in Delhi NCR.
Experience: 0-3 years
Compensation: Competitive. Based on demonstrated experience.
Start: Immediate
ABOUT ACECARD
Acecard is a multi-tenant CRM and digital business-card platform. We sit at the intersection of three product surfaces under one codebase:
1) B2B Sales CRM - vendors get a hosted dashboard for their sales teams: lead capture, lifecycle stages, follow-ups, campaigns, analytics, payments, and CRM integrations (HubSpot, Zoho, Salesforce, Odoo).
2) D2C Digital Cards - individual professionals create rich, shareable digital cards with analytics and engagement tracking.
3) NFC Multi-Seat Company Cards - enterprises issue NFC-backed digital cards to entire teams with central admin and seat management.
A single backend powers all three. Vendors are scoped via product_type and dashboard_mode. Inputs come in from a web dashboard, a React Native mobile app (with voice and OCR lead capture), NFC taps, and machine-to-machine API keys. We move fast, ship to production directly from main via GitHub Actions, and run on AWS.
This role owns the engineering. End to end. Backend, web, and mobile.
WHAT YOU'LL OWN
You will be the senior engineer responsible for the entire Acecard technical surface:
- System architecture across backend, web dashboard, and mobile app - and the data model that links them.
- Code quality and review for every PR that lands on main.
- Production reliability - deploys, migrations, observability, on-call for incidents.
- Feature delivery - translating product requirements into shipped code across all three repos.
- Integration work - HubSpot, Zoho, Salesforce, Odoo, Google Calendar, payment gateways, push notifications, S3 media, NFC provisioning.
- API surface - JWT auth for human sessions, X-API-Key auth for machine clients, Swagger/OpenAPI documentation kept in sync with reality.
- Database evolution - schema migrations, indexing strategy, query performance, and data integrity across a multi-tenant Postgres.
- Mobile release pipeline - EAS builds, Play Store and TestFlight release management.
You are not a feature factory. You are the technical owner. If something in the stack is broken or fragile, it is your call to fix it.
THE STACK
Backend (new-backend)
- Language: Go 1.24
- Router: go-chi/chi v5
- Database: PostgreSQL via jackc/pgx v5 (no ORM - handwritten SQL with pgx pooling)
- Auth: golang-jwt/jwt v5 for human sessions, custom X-API-Key middleware for M2M (SHA-256 hashed, constant-time compare)
- Crypto: golang.org/x/crypto (bcrypt for passwords, AES-GCM for stored CRM tokens)
- WebSockets: gorilla/websocket
- Cloud: AWS SDK Go v2 (S3), media served through CloudFront at media.theacecard.co
- Docs: swaggo/swag + http-swagger
- Logging: log/slog (structured)
- Background jobs: Goroutine ticker loops (lead reminders, campaign reminders, payment cycles, meeting-end recap detection)
- Migrations: Sequential numbered SQL files
- Scale of codebase: ~30 domain packages (analytics, auth, calendar, campaign, lead, integration, payment, notification, push, recap, support, team, vendor, etc.)
Web Dashboard (new-frontend)
- Framework: React 19 + Vite 7 + TypeScript 5.9
- State: Redux Toolkit + react-redux
- Routing: React Router 7
- Styling: TailwindCSS 4 + Radix UI primitives in a shadcn-style component system
- Forms: Formik + Yup
- HTTP: Axios
- Charts: Recharts
- Rich text: Jodit-React
- Drag-and-drop: dnd-kit
- Misc: sonner toasts, lucide-react icons, dompurify, qrcode, react-international-phone
- Deploy: Vercel
Mobile (new-mobile)
- Framework: Expo SDK 54 + React Native 0.81
- Routing: expo-router 6 (file-based)
- State: Redux Toolkit + redux-persist
- Native modules: expo-camera (OCR), expo-audio + expo-av (voice capture), expo-location, expo-notifications, expo-secure-store, expo-web-browser (OAuth), expo-image-picker, expo-image-manipulator
- Navigation: React Navigation (bottom tabs, material top tabs, native stack)
- Animation: react-native-reanimated 4 + react-native-worklets
- Lists: @shopify/flash-list
- Deep linking: custom scheme acecard:// (OAuth callbacks, NFC tap intents)
- Build pipeline: EAS Build (Android + iOS)
- TypeScript: 5.9
Infrastructure
- Compute: AWS EC2 (ap-south-1) running the API under systemd
- CI/CD: GitHub Actions - push to main triggers migrations, go build, and a systemctl restart
- Storage: AWS S3 fronted by CloudFront
- Email: Zoho SMTP
- Region: ap-south-1 (Mumbai)
MUST-HAVE EXPERIENCE
You should have shipped production systems using most of these. We do not expect a perfect overlap, but the gaps you have should be fillable in days, not months.
- Go in production - at least 2 years writing service-side Go with Chi or a similar router, pgx (or database/sql) against Postgres, JWT auth, and middleware composition. You can read and write Go without an IDE holding your hand.
- React + TypeScript - at least 3 years on a non-trivial dashboard. Comfortable with Redux Toolkit, hooks, and modern React.
- React Native / Expo - you have shipped at least one app to the Play Store and App Store, dealt with EAS or bare-workflow builds, native module quirks, push notifications, and OAuth deep links.
- PostgreSQL - you can design schemas, write migrations, debug a slow query with EXPLAIN ANALYZE, and reason about indexes, foreign keys, and concurrent writes.
- REST API design - pagination, versioning, idempotency, auth, error contracts. Bonus if you have written or maintained an OpenAPI/Swagger spec.
- AWS basics - EC2, S3, IAM, CloudFront. You can SSH into a box and read systemd logs without panic.
- Git + GitHub Actions - you understand branching, code review, and CI/CD. You have written a workflow file, not just edited one.
- Multi-tenancy - you have built or maintained a system where one codebase serves many isolated tenants, and you understand the discipline that requires.
NICE TO HAVE
- HubSpot, Zoho, Salesforce, or Odoo integration experience (OAuth, webhooks, API rate-limit handling)
- Google Workspace APIs (Calendar, Gmail, Drive)
- NFC programming on Android/iOS or NFC tag provisioning
- WebSockets at scale
- Stripe / Razorpay / payment-gateway integration
- Speech-to-text or OCR pipelines (we use these for lead capture)
- AES-GCM, bcrypt, and general applied cryptography literacy
- Experience using Claude Code, Cursor, or other AI-assisted development tools - we lean on them heavily
WHAT SUCCESS LOOKS LIKE
First 30 Days
- Cloned, run, and shipped a small bug fix to production across all three repos.
- Read end-to-end through the lead lifecycle (capture -> stages -> close), the auth model (roles + per-user permissions), and the multi-tenant scoping.
- Mapped every cron-style background job and every cross-cutting concern (logging, error contracts, CORS, file uploads).
- Identified the three biggest pieces of technical debt and proposed a plan.
First 60 Days
- Owned a feature start to finish - schema, migration, API, web UI, mobile UI, tests, deploy.
- Set up or improved observability so we know when production is unhappy before a customer tells us.
- Tightened the release process - branch protection, review checklist, staged migrations.
First 90 Days
- You are the default reviewer on every PR. The team escalates architecture questions to you. You can answer "how does X work in Acecard?" for any X without grepping for it.
- Production deploys are boring. Migrations are safe. Tickets close in days not weeks.
HOW WE WORK
- Direct. No corporate fluff. We say what we mean.
- Ship daily. main is always deployable. Feature flags over long-lived branches.
- AI-assisted. The team uses Claude Code and Cursor heavily. If you treat AI tools as a crutch, this is the wrong job. If you use them as leverage, this is the right one.
- Bias toward writing. Decisions get documented. PR descriptions are non-trivial.
- Engineering is the product. This is not a role where engineering takes orders. You will have a direct line to product and founder decisions.
HOW TO APPLY
Send the following to shubhamrohatgi135@gmail.com (or via the LinkedIn application):
1) A short note (under 200 words) on the most technically interesting thing you have shipped in the last 12 months. What broke. What you learned.
2) Your GitHub profile, ideally with at least one repo where the README is yours and the commit history is real.
3) Your resume.
4) Optional but appreciated: a one-paragraph take on a Go service you wish was architected differently and why.
We read every application. Shortlisted candidates get a 45-minute screening call, followed by a paid take-home in your strongest of the three stacks (backend / web / mobile) and a final architecture deep-dive.
We do not do whiteboard algorithm trivia.
Acecard is a small, ambitious team. This role is for someone who wants ownership, not someone who wants instructions.
Click on Apply to know more.