Hi, We’re AppFolio.
We’re innovators, changemakers, and collaborators. We’re a software company that is customer obsessed and creates products to make our customers’ lives easier. We’re revolutionizing the way people do business, and we want your ideas, your enthusiasm, and your passion to help us keep on innovating.
We love where we work, and you can, too. Most of our engineers in product development focus on our company’s customers and their needs. Some of us have internal customers as well: other engineers. This is one of those roles you’d be joining an engineering group responsible for crafting a software development experience that your fellow AppFolio engineers will love.
About our Group
The AppFolio Deployment Platform team designs, improves, and scales deployment tooling using cloud technologies. The platform engineering group helps product development teams with their infrastructure, service-design, architecture and deployment needs so that they can focus on solving customer problems. We deploy hundreds of code commits weekly. We build and manage the primary platform deployment tooling for our product development teams, simplifying and stabilizing the deployment experience, and lead the way to continuous deployment for all our product components.
Who we are looking for:
We are looking for a Sr Software Engineer that is passionate about deployment tooling at scale to join us on our journey to embrace and improve our DORA metric driven deployment process. Our ecosystem is composed of a diverse ecosystem of software including a large monolith deployed to ~20k unique instances and a healthy mix of other services written in go, python and Ruby. We support Lambdas, EKS and Containers as target platforms. The candidate will partner with Software Architects and other Software Engineers with broad experience to build this capability at AppFolio scale.
A successful candidate will have a bias for action, a broad understanding of industry tools, CICD, GitOps model and when to use them, and a positive can-do attitude.
Responsibilities:
Design, build, and maintain the deployment tooling used by all Appfolio engineering teams
Write and maintain deployment workflows that are both reliable, fault-tolerant and scale
Leverage agile practices to release small batches of value to customers continuously – test-driven development, pair programming, live code review, continuous integration, and continuous delivery
Actively review and mentor code from other engineers in the team and organization. We have a strong collaborative culture built upon transparency
Continually seek to improve and develop mastery of your domain. This includes seeking and giving feedback on a regular basis
Implement new features and optimize existing ones to drive maximum scalability, stability, and performance.
Work closely with, and incorporate feedback from other engineering team members, QA, product owners, and our APM customers.
You know you’re the right fit if…
Experience with modern cloud platforms e.g. AWS/Azure/GCP
Experience with AWS services e.g. Lambda, EC2, ECS, EKS, S3, RDS, DynamoDB
Experience with cloud tools and solutions e.g. terraform, cloudformation, IaaC
Experience with containers and orchestration e.g. docker, kubernetes, helm
Proficient in Python programming language or other high level programming languages like Ruby, Java or Go
Familiarity with CI/CD tools e.g. Bazel, GitHub Actions, CircleCI
Familiarity with GitOps Deployment model and tooling including ArgoCD, FluxCD, Git
Experience supporting hundreds of deployments per week
Experience with operational excellence and a deep understanding of metrics, alarms and dashboards
You love learning about new technologies but understand the value of using something old if it still does everything you need it to do
You care about the long-term maintainability of the codebase and will learn to advocate for refactoring and clean-ups where appropriate
You care about work-life balance and want your company to care about it, too; you'll put in the extra hour when needed but won't let it become a habit
Additional Skills and Knowledge:
Degree in Computer Science or related technical discipline preferred
Hands-on work/internship experience developing web-based applications, preferably in a SaaS environment
Creativity, ability to solve complex problems without a roadmap
Nice to Have:
Experience working across all levels of the development stack
Strong engineering background in building platform services and/or distributed systems at scale
Familiarity with Agile software development processes: Scrum or Kanban
Compensation & Benefits
The base salary that we reasonably expect to pay for this role is $138,400 - $173,000.
The actual base salary for this role will be determined by a variety of factors, including but not limited to the candidate’s skills, education, experience, etc.
Please note that base pay is one important aspect of a compelling Total Rewards package. The base pay range indicated here does not include any additional benefits or bonuses/commissions that you may be eligible for based on your role and/or employment type.
Regular full-time employees are eligible for benefits - see here.
#LI-SS2