Full Stack Engineer
About the role
We're looking for a full stack engineer who is fluent in React/Typescript but comfortable working across the entire stack. This includes building on top of our Go backend as well as working directly with the Kubernetes and Helm APIs. Since Porter is a PaaS that abstracts the complexity of Kubernetes, deeply considered design/architectural decisions are the lifeblood of our platform. The best implementation is not always the most obvious one, so an appetite for rigorously evaluating the tradeoffs of different options is essential.
You will be expected to push critical code on a daily basis while also working on larger features that constantly expand the capabilities of the platform. As a full-time engineer joining a team that includes three technical founders, you will be involved in all feature discussions and will shape the trajectory of our product.
- Build and maintain new features on the Porter dashboard
- Develop our Go API to accommodate additional k8s/Helm behaviors
- Create applets and add-ons for popular technologies like MySQL, Redis, Kafka, RabbitMQ, etc.
- Improve the UI and organization of the dashboard (strong UI/UX background is a nice to have)
- Raise the standard for code quality and our engineering culture
Who we're looking for:
We value rate of learning above all else. Full stack experience and fluency with React/TypeScript is expected, but less familiarity with Go/Kubernetes is fine if you're a voracious and self-directed learner. Infrastructure management isn't rocket science, but it does involve thinking and working across multiple levels of abstraction at once. If the idea of wrangling that complexity is exciting and not daunting to you, we'd love to talk. As is the case with most early-stage startups, you should be comfortable with regularly shifting priorities and iterating at a very high (daily) velocity.
Some of the technical challenges we face:
- Abstracting Kubernetes - any PaaS spans a variety of use cases, so building a consistent and useful layer of abstraction requires constant awareness of the needs of many user profiles.
- Auto-Generated Frontend - each of our app/add-on templates uses a
form.yamlfile that programmatically generates a settings UI on the dashboard using a library of our own input primitives. Expanding and testing the functionality of these templates is non-trivial.
- Cloud Agnosticism - one of Porter's main benefits is that you get the same interface for managing services regardless of where you host. Our job is to reduce multi-cloud infrastructure complexity to a unified interface.
- Many Integrations - our philosophy is to never reinvent the wheel, so we leverage tools like GitHub Actions, existing container registries, and the APIs of various cloud providers. An issue with any one of these integrations interrupts functionality, so properly handling interactions with numerous services is crucial.
Sample projects you might work on:
- Build a dashboard that gives an infra-level overview of machines being managed by Porter and their current resource utilization
- Implement live email/Slack alerts for successful or failed deployments
- Develop a deployment pipeline builder that lets users seamlessly promote services across multiple clusters and environments (ex: dev -> staging -> prod)
- Create one-click deployable applets for popular technologies (e.g. RabbitMQ, Kafka, Cassandra, etc.)
- Web: React (styled-components), TypeScript
- Backend: Go, Kubernetes + Helm APIs, Postgres, Redis
- Infrastructure: AWS, GCP
Porter is open source. You can view our entire codebase here.
Our team is currently based in NYC, but we are open to remote hiring for those who can guarantee overlap with our core working hours (Monday through Friday, 9am-5pm ET). If you're in New York City, we're happy to discuss specific working arrangements.
Interested? Email your resume to jobs at getporter.dev and let us know why you would be a great fit for this role.
Why you should join Porter
Porter is a PaaS that startups can run in their own cloud. We let users link up their own AWS/GCP, point to the code they want to run, and then put the rest of the hosting process on autopilot (CI/CD, SSL, autoscaling, zero downtime deploys, infra monitoring, etc). This enables the fastest growing companies to ship quickly with minimal DevOps overhead. Crucially, we provide abstraction by default but offer control when desired: with Porter, users can always go under the hood to configure their underlying infrastructure when necessary.