ApexChat

east_bay, remote, sf, silicon_valley
251 - 500 Employees
26 - 50 Engineers
Private Funding
Private

ApexChat is a leading provider of messaging software and service to over 10,000 businesses.

Active Roles

Why join us?

  • ApexChat is a leading provider of messaging software and service to over 10,000 businesses.

  • We are profitable, growing nicely and are in a hot space

  • Our mission is to become a leading messaging platform for local businesses


Engineering at ApexChat

Engineering team and processes

Our engineering team works on 2 week sprints. Each sprint has a backlog review, daily standups for each sub-team (sub-teams are typically 3-4 people with their own objectives) and weekly demo/review meetings to make sure everything is on track and to demo new functionality/new learnings. Developers work with the product team to define requirements and UI/UX before implementation.

Our team is distributed across the world, with teams in Karachi, Pakistan; Toronto, Ontario, Canada; Vancouver, BC, Canada; and San Francisco.

Pull requests are required to merge changes. We are in the process of enabling feature-branch builds so builds can be tested, reviewed, and validated before merge to our core branch. We use Codacy to ensure code quality, as well as requiring at least 3 reviewers to sign off on any given pull request. Pull requests automatically deploy to our test environment, and we have a full git-flow process for managing releases. We currently utilize Octopus for deployments. Our new infrastructure will be fully infrastructure-as-code, and will auto-deploy features as they pass test automation.

Technical Challenges

Unlike many business applications, everything we do happens in real-time. That means any lag, performance issues, connectivity problems, etc, are all instantly noticeable. This, combined with a 24x7 operation, means we have to focus on high uptime/reliability/performance at all times. Any downtime directly results in an impact to the bottom line. Creating systems that have built-in fallbacks, high performing data structures and algorithms (we recently had to switch from a live query to rebuilding a dynamic distributed queue system) and very high throughput (we typically handle 20k requests/min) while maintaining cost controls is a challenging and rewarding effort.

Projects you might work on
  • Continued work on our Chat bot product

    We needed to add the capability for the end visitors to a website to interact with a bot that would walk through typical scenarios with them. This meant implementing a mechanism to build a workflow that not only the user could interact with, but based on the user responses could take actions (like place phone calls, send emails, trigger CRM actions, etc). It also had to be able to display these questions in a manner suitable for both mobile and desktop, on any platform available, for thousands of websites. Quite a challenge, and lots of fun. We had UI/UX work, backend integration work, administrative capabilities to manage the workflow steps and actions, and a whole performance analysis to boot.

  • Mobile app

    We have recently built out a full mobile app experience for our platform to increase engagement for the customers using our platform. This includes push notifications for incoming chats, with incoming video calls to follow soon, along with chat history, lead summaries, etc. This currently provides an end-to-end chat platform for visitors on a website to connect to a sales/service rep at a company, and will soon provide an end-to-end communication platform that will allow website visitors to speak live directly from their browser with a sales rep for the company, with nothing but a mouse click. We've been fortunate to spend the proper amount of time building a truly refreshing UI design, rather than a cookie-cutter app that looks like every other app out there, and one that provides truly useful functionality. We have a UX designer creating mockups and workflows, a dedicated mobile team (including both an iOS and Android developer, although we have shared code), dedicated QA and a product owner to ensure what we deliver is ultimately successful.

  • Performance tuning

    We recently hit some bottlenecks in the platform due to growth in the company. In order to resolve those bottlenecks, we had to do some performance tuning. This involved a number of different and interesting challenges. First, we had to add additional instrumentation. While we were tracking performance in general, we needed to get further into the details of some API calls. We then spent a lot of time going through those various bottlenecks, piece by piece, eliminating different areas that were performing poorly. In some cases, that meant changing how caching worked, in other cases, adding database memory and changing from querying dynamically to building a cached copy of the data we needed using an event-driven system. We spent much time digging through low level code, writing load test scripts, unit tests, and integration tests to prove where there might be challenges and eliminating them. We're not done, but we've made huge strides, and the ApexChat leadership has given the engineering team the green light to spend the time and energy to fix things the right way

  • Move the entire platform to AWS.

  • New products and features connected to the current messaging flows that we currently offer to customers. These include software and solutions related lead generation, lead qualification, customer communication, marketing, and vertical specific solutions.

Tech stack
ASP.NET
SQL Server
AWS
Vue.js
S3
PGSQL
ReactJS
Microservices
ExtJS
Cloudfront
SNS/SQS

Working at ApexChat

Entrepreneurial, collaborative culture

Perks & benefits
  • 401(k) Contribution
  • Work from Home
  • Team Activities
  • Health Insurance

External Links

Interested in this company?
Skip straight to final-round interviews by applying through Triplebyte.

Apply