Senior Python Engineer (Dev Experience)
Engineering Remote (Europe) Remote (Portugal) Remote (Ukraine) Remote (Poland)
PandaDoc is seeking a Senior Python Engineer to join our Infrastructure Platform Track.
At PandaDoc, we have product teams concentrating on shipping new features and a purely technical track focusing on platform engineering. The Platform teams create the technology that enables PandaDoc to learn quickly and scale easily, enabling rapid growth in our users and our business around the globe.
This role is based on the Dev Experience team, which is focused on enabling product teams to streamline development and delivery processes. Join us and help to amplify productivity, quality, and innovation across PandaDoc.
In this role, you will:
- Build software, frameworks, and tools required for reliable operations of PandaDoc services:
- Design and improve how PandaDoc services communicate using gRPC (and service meshes), Temporal.io, and Kafka by providing libraries and guidance for engineers.
- Work closely with Kubernetes. We run on top of AWS EKS. We have five main clusters with more than 200 services in each of different sizes, written mainly in Python (~70%) and Java.
- Improve how PandaDoc services are deployed (including machinery for canary and blue-green deployments) and monitored across all our clusters.
- Improve our observability as both a developer/maintainer of systems/frameworks and a mentor to our product development teams.
- Collaborate with other engineers on the team and cross-functionally to foster solid engineering principles and represent our engineering values.
- Be a change agent by recommending and introducing best practices for all PandaDoc engineers.
- Be an innovation advocate for the technical growth of PandaDoc.
- Share knowledge by writing documentation and holding talks and workshops.
Our stack:
- Service-oriented architecture, but be prepared to deal with legacy code and monolithic services based on the Django framework.
- Two main stacks: Python and Java:
- Python services are primarily written using AsyncIO frameworks and libraries, but we also have Django-based services and a lot of Celery workloads;
- Java services based on Spring Boot with custom extensions, Java 11, and Gradle as a build tool;
- AWS and K8S are used extensively for provisioning and deploying workloads.
- The main cross-service communication transports:
- NATS is our main RPC transport, but we’re migrating to gRPC to eliminate the single point of failure with NATS.
- Kafka and Debezium for even-based operations.
- RabbitMQ is a transport for Celery, but we look forward to migrating to Temporal.io.
- Grafana stack for monitoring, alerting, and distributed tracing
About you:
- At least 5+ years of development experience with Python.
- Care about quality; you know what shipping high-quality code means.
- Strong understanding and experience in AsyncIO.
- Experience with the Django framework.
- Experience with any relational databases (SQL queries, migrations, optimization);
- Experience with message queues (e.g., RabbitMQ, NATS, Kafka).
- Experience with Amazon Web Services and Kubernetes.
- Hands-on experience in developing a service-oriented architecture.
- Hands-on experience with CI/CD (e.g., GitLab, Jenkins).
- It is good to have experience with the Grafana LGTM stack and OpenTelemetry.
- It is good to have open-source contributions and experience.
- It is good to have basic knowledge of Golang.
- English: intermediate+ (verbal and written).
Company Overview:
PandaDoc empowers more than 50,000 growing organizations to thrive by taking the work out of document workflow. PandaDoc provides an all-in-one document workflow automation platform that helps fast-scaling teams accelerate the ability to create, manage, and sign digital documents including proposals, quotes, contracts, and more. For more information, please visit https://www.pandadoc.com.
Company Culture:
We're known for our work-life balance, kind co-workers, & creative virtual team-bonding events. And although our Pandas are located across the globe, we stay connected with the help of technology and ensure that everyone on our team feels, well, like a team.
Pandas work best when they're happy. We retain our talent by upholding our values of integrity & transparency and selling a product that changes the lives of our customers.
Check out our LinkedIn to learn more.
Benefits:
- An honest, open culture that emphasizes feedback and promotes professional and personal development;
- An opportunity to work remotely— our team is distributed worldwide, from Warsaw to Lisbon, from Florida to California. However, we have offices in Lisbon, Warsaw, and Kyiv and you’re welcomed to work from them and meet with other pandas in person;
- 6 self-care days;
- A competitive salary;
- And much more!
PandaDoc is an Equal Opportunity Employer. We are committed to equal treatment of all employees without regard to race, national origin, religion, gender, age, sexual orientation, veteran status, physical or mental disability, or other basis protected by law.
EXTERNAL RECRUITERS
Approval Requirement
The use of external recruiters/staffing agencies requires prior approval from our HR Team. The HR Team at PandaDoc requests that external recruiters/staffing agencies not to contact PandaDoc employees directly in an attempt to present candidates. Complying with this request will be a factor in determining future professional relationships with PandaDoc.