Sr. Developer - Venture Backed - Super cool
The Koji platform consists of several services that work together to present our users with a unified development/deployment pipeline. Generally, consumer frontends are written in React/ES6, and backends in Typescript (Express for REST APIs and native websockets for RTC). We use Redis as a message broker and Postgres as a persistent datastore. Our infrastructure is (mostly) on AWS.
The most visually-prominent consumer product is the Koji IDE, a web-based editor that connects to a remote development server and enables full-stack development from any device with a browser. The remote development server uses Docker to create a per-project environment that runs both the editor server (file writes, PTY operations, OT-based real-time collaboration, Git operations, etc.) and the processes/servers required for the user to develop their project (backend servers, frontend dev servers, test runners, etc).
Because Koji projects are staged in the cloud during development, the web editor’s live preview can be opened on any internet-connected device (without the need for ngrok, mobile device proxies, etc.). The editor provides some additional tools for easily testing backend routes and manipulating PTYs.
Koji projects are backend by Git repositories. By default, new projects use a Git remote hosted by Koji’s Git server, but projects can also use repositories hosted by third-parties as their remotes. The Koji deploy pipeline uses Git hooks to trigger new builds (build steps are defined by a JSON file within the project) and shows build progress, logs, and notifications inside the web editor. Projects can deploy static bundles or dynamic services that are compiled, containerized, and deployed using Google’s Cloud Run.
Once a project is deployed, it can be accessed by an auto-generated subdomain. From within the editor, users can also register a custom subdomain on one of our root domains (e.g., myproject.withkoji.com), or register a custom domain name and configure DNS to point that domain to our CDN. We take care of HTTPS provisioning, deployment, and renewal automatically with Let’s Encrypt, and all projects are accelerated with our CDN partner, Fastly.
The CDN that serves deployed projects can also inject plugins at runtime based on path/pattern matching, which lets users easily enable features like Open Graph tags (something that is typically difficult to do on client-side SPAs without SSR or services like Prerender) or integrate things like Google Analytics. The web editor also renders server access logs for deployed projects, giving users an easy way to understand traffic and growth without the need for any third-party analytics/tracking tools.
We are looking for a senior engineer who enjoys shipping products, understanding and designing systems at a high level, and anticipating future challenges while designing and operating within near-term constraints.
Low-level specialization is a less important consideration for this role. Our ideal candidate is someone with a big appetite, who enjoys exploring and processing big ideas with far-reaching considerations, and who has the drive and ambition to execute on solutions to those problems with an appropriate attention to detail and love of craft. We are a small team, and we are looking for someone we can trust to make big decisions, shape the direction of their role, and ultimately shape the direction of the platform.
Visit our company page to find a high level overview of our current technical architecture. Experience/familiarity with the technologies we are using is a plus, but is secondary to the more general sensibilities and experience that define the requirements of this role.
If this description sounds like a fit in any form, and the vision of the platform appeals to you, let’s get to know each other.Apply now