Job Details
- Salary$138K-$173K per year
- Job TypeFull-time
- Company TypeIndustry Partner
- Job CategoryIt / Software
- Job WorkplaceOn-Site
- Job Workplace LocationChicago, IL, USA
Job Description
Description
Who we are looking for:
We are hiring a Senior Software Engineer in our Platform Communications team to define and build out AppFolio’s Voice infrastructure and features, in addition to existing channels such as Email, SMS and others. Our Voice features will be widely used to power customer-facing features, including heavy AI integration with our AI agents. AppFolio supports a significant part of the real estate market in the United States, and our communications platforms are used daily to support and engage with millions of property managers and tenants. The first need for our communications voice features will be AI integration to help automate critical workflows in property management. A close second is a deeper integration between features in AppFolio and our customers’ current VoIP phone systems.
We see a future where our Communications framework provides a unified, robust, and flexible communication methods in and outside of AppFolio powering a variety of applications, all enhancing the lives and businesses of property managers. This role is pivotal to the creation and adoption of such a system - ultimately unlocking tremendous potential for the real estate industry in the coming years.
Responsibilities:
- Build a deep understanding of our communications systems - enabling you and your team to build on top of and modify the existing architecture.
- Research and determine key architecture and design decisions to build a scalable, robust, yet simple Voice platform - this will involve some combination of leveraging our existing technology, refactoring existing systems, including off-the-shelf systems, or starting from scratch when it makes sense.
- Participate in customer research/discovery with Product to understand current problems, needs, and estimate technical feasibility of various potential solutions.
- Work in a truly agile fashion to turn a massive, unruly problem into thinly sliced deliverables and execute quickly against them while limiting work in progress.
- Hold a high bar of engineering excellence and always look for ways to raise it. Adopt our engineering best practices, provide and receive in-depth code reviews, and participate in healthy debate as a team. Evangelize your own expertise and experience among your teammates and the rest of the organization.
- Together with your team, you ensure the communication methods that our infrastructure supports are tested with appropriate unit and integration tests to ensure the uptime of our systems.
- Together with your team, your deliverables are always well-instrumented. Queries and dashboards are easily accessible and regularly used to drive decisions as well as measure progress.
- Enthusiastically participate in a high-performing, empowered team with high levels of mutual trust and respect. Along with the team, you will take ownership of your problem space - reflecting and growing from our failures and celebrating our successes.
- Design and implement systems responsible for high concurrency and scale.
- Identify gaps, deficiencies and inefficiencies in the system. Propose and implement solutions.
You know you're the right fit if…
- Experience with VoIP protocols such as SIP, WebRTC, RTP, etc
- Experience integrating with voice communication SaaS providers (e.g., Twilio, Sinch, Vonage etc.)
- Experience building features that integrate voice communication with the phone network as well as with web and mobile applications, preferably in an agile SaaS environment.
- Experience building real-time communication systems at scale.
- Experience working on platform teams or building platform services, whose customers are other internal teams.
- Proven experience working across all levels of the development stack.
- Proven experience with object-oriented languages (Python, Ruby, JS, Java, C#, etc.)
- Strong familiarity with REST APIs and web-based APIs
- Familiarity with public cloud, such as AWS, GCP, Azure
- Strong familiarity with Agile software development processes: Scrum or Kanban
- Creativity and proactivity - an ability to solve complex problems without a roadmap
- You love to learn about and use new tech, but understand the value of continuing to leverage existing technology when it gets the job done.
- You care about the long-term maintainability of the codebase and advocate for refactoring and code cleanliness.
- You can identify and resolve code-smells through sensible refactoring.
Additional Skills and Knowledge:
- Experience with SMS and email protocols as well as providers such at Twilio and Sendgrid.
- 5+ years of experience working in software engineering teams
- Comfortable working with remote team members
- Ability to think pragmatically and effectively balance business outcomes with technical goals
- Ability to establish strong working relationships with peers across other platform development teams
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