Porter
⏩
Website:

@

Full-Stack Engineer

🌍 New York, NY πŸ“… 06/05/2023

Apply

Job Description

View the Porter GitHub repo

** _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.

** _You Will
_**

* 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.yaml file 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.)

** _Tech Stack
_**

* 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:
https://github.com/porter-dev/porter.

_We are a fully in-person team located in NYC, and we require that you come
into the office everyday.

_ Interested? Email your resume to jobs at porter.run and let us know why you
would be a great fit for this role.