All roles
Maritime AI

Junior Product Engineer

Full-timeJunior · 1–3 yearsRemote

Build the TypeScript and Postgres coordination layer that connects vessel teams, suppliers and forwarders in a fully remote maritime AI team.

Backend-leaning, product-minded. You’ll build the coordination layer that keeps ships running—connecting vessel teams, suppliers and forwarders, and the emails, agents and parsers that hold it all together.

  • Employment: Full-time
  • Location: Fully remote
  • Level: Junior · 1–3 years
  • Focus: Backend, product-leaning
  • Core stack: TypeScript, Postgres, AWS

What this team does

An operating system for running ships

This is a maritime platform for technical ship management. Running a fleet means holding together maintenance, procurement, supply chain and logistics across systems that do not talk to each other—ERPs, planned maintenance systems, procurement platforms, forwarder portals—and an enormous amount of email in the gaps. The team is building the layer that unifies all of it and putting AI agents on coordination work still being done by hand.

A vessel may need a spare part, triggering a long and fragile chain across purchase orders, supplier and forwarder quotes, bookings, road/sea/air legs, and documents such as bills of lading, air waybills, packing lists and proofs of delivery. The platform replaces inbox-driven coordination with shared structured state, transactional email sent at the right moment, and LLM agents that read replies and write results back without manual retyping.

The stack

  • Language: TypeScript end to end, Node 22
  • API: tRPC 11 with superjson; Zod for validation
  • Data: Postgres, Drizzle ORM, drizzle-kit migrations
  • Frontend: Next.js 15, React 19, TanStack Query
  • AI: Anthropic SDK, Claude Agent SDK, Langfuse tracing
  • Infrastructure: AWS (S3, SES, Cognito, ECS), Terraform, Vercel
  • Testing: Vitest—unit tests plus an integration suite against real Postgres
  • Tooling: pnpm workspaces, Turborepo, ESLint, Prettier, GitHub Actions

What we’re looking for

  • One to three years writing backend code that real users depend on. Titles matter less than having shipped something and then lived with it.
  • Fluent TypeScript and SQL you write yourself rather than hope an ORM generates. You should be comfortable reading a schema and an EXPLAIN plan.
  • You write tests while building, not as a chore afterwards.
  • You ask why. An under-specified ticket makes you uncomfortable enough to resolve it before writing code.
  • You write clearly: PR descriptions, specs and messages that someone three time zones away can act on without booking a call.
  • You are comfortable in a codebase you do not fully understand yet and would rather read the existing implementation than invent a parallel one beside it.

How Harper Works

  • Sign up and talk to Harper.

    Tell Harper about the work you've done and the kind of environment you'd like to work in next.

  • Show interest in a role you like.

    Harper will review the role and assess how well it fits you, using information the company has shared privately with Harper.

  • Harper connects you with the company.

    If it looks like a good fit, Harper may recommend you to the company first or ask whether you'd like to move forward with the role, depending on your settings. If you say yes, Harper helps make the connection right away.

  • Keep the door open while you work.

    Harper keeps looking for opportunities that match what you want and suggests new connections. You don't have to be actively job searching. You can consider each company's proposal before deciding whether to move forward, and Harper will help you through the process.

  • FAQ

    Are these real job opportunities?

    Yes. These are roles companies have asked Harper to help with, and Harper is in direct contact with them.

    Am I applying directly here?

    No. Harper uses information the company has shared privately to assess how well the role fits you. If it looks like a good fit, Harper may recommend you to the company first or ask whether you'd like to move forward with the role first. If you accept, Harper helps make the connection right away. For now, tell Harper which role interests you. Harper will review it first and prepare what it needs to introduce you well.

    How is this different from applying directly to the company?

    You're more likely to reach a meeting, and Harper helps you through the process.

    Will my information be shared with the company?

    You can choose between two approaches. With Exceptional only, Harper shows you a strong opportunity first and shares your profile with the company only after you accept and allow profile sharing. With Open to matches, Harper may introduce your profile to a company first when there's a strong fit. This can lead to more opportunities, and you can review the company's proposal before deciding whether to move forward.

    What if I'm not looking to move right now?

    That's fine. Tell Harper you're not planning a move right now. You can look at a proposal you like and decide then.

    Does a person review my profile along the way?

    Harper Agent reviews the fit first. Before an introduction to a company, a Harper team member gives the connection a final check. Your profile is shared with the company according to your settings and consent.

    Put your career
    on Autopilot.

    Harper finds your next job and helps you land it

    Meet your Agent
    Takes less than 3 minutes to sync your context. 100% encrypted.