Here at Shippo, we are the shipping layer of the internet and we consider ourselves to be one of the core building blocks of e-commerce.Our mission is to make merchants successful through world class shipping. With our products and solutions, we level the playing field by providing our customers with best-in-class solutions that otherwise wouldn’t be available to them. Through Shippo, e-commerce businesses, marketplaces, platforms and a variety of logistics infrastructure providers are able to connect to shipping carriers around the world from one API and dashboard. We provide our customers with the most competitive shipping rates, print labels, automated international documents, shipment tracking, facilitate the returns process and more. We are seeking a highly skilled Principal Software Engineer with expertise in decomposing monolithic applications within a complex environment. The ideal candidate will lead an ongoing effort to break down our application into smaller, more manageable services while implementing best practices for testing, observability, and enhancing the developer experience. This role is crucial in driving the modernization and optimization of our software architecture to align with industry standards and improve overall system performance.
Shipping & handling responsibilities:
- Lead the decomposition of a monolithic application into microservices or smaller components, optimizing for scalability and flexibility.
- Drive the adoption of best practices for testing, including unit testing, integration testing, and automated testing to ensure high code quality and reliability.
- Implement strategies for observability, monitoring, and logging to enable efficient troubleshooting, performance optimization, and proactive issue identification.
- Collaborate with cross-functional teams to enhance the developer experience through streamlined processes, development tools, and documentation.
- Up-skill and guide a team of engineers in software design principles, best practices, and modern architectures.
- Stay updated on industry trends, emerging technologies, and best practices to continuously improve the software development lifecycle.
Do you tick the boxes?
- 10+ years of experience in software development
- Experience in decomposing an existing application into service oriented architecture
- Extensive experience working in complex distributed architectures
- Strong proficiency in software design principles, architecture patterns, and system decomposition strategies
- Demonstrated expertise in testing methodologies, including test automation, test-driven development, and continuous integration/continuous deployment
- Deep understanding of observability tools, monitoring systems, and logging frameworks
- Excellent communication and collaboration skills to work effectively with diverse teams and stakeholders
- Proven track record of implementing best practices and driving software modernization initiatives
- Strong leadership skills with the ability to mentor team members and influence technical decisions
- BS or MS degree in Computer Science or equivalent experience.
Bonus:
- Prior experience working or interacting with shipping and/or postal carriers
- Experience integrating with APIs that use REST and/or gRPC protocols
- Experience with Django and/or FastAPI.
- Experience using Python and/or Golang in production at scale
- Interest and experience in performance tuning, concurrency, microservices, security, and data analytics
- Experience with messaging systems such as NSQ, Kafka, SQS and Celery
- Experience with DevOps tooling such as Docker, Terraform, Kubernetes, CircleCI, GitHub Actions, ArgoCD, New Relic, PagerDuty, etc
- Experience with AWS/Cloud services such as EC2, S3, DynamoDB, Lambda, Route 53, Cloud Formation, Cloudflare, IAM, etc.