Job Description
Aha! engineering is a mid-sized, fully remote team that is highly productive. We are centered around North American time zones so we can collaborate during the workday.
- We help each other grow: We each bring unique skills to the table and want our teammates to feel valued from the start. Our onboarding program exposes new hires to the codebase and lets them contribute right away.
- We move quickly: We ship code multiple times a day. We believe in getting valuable features in front of customers and iteratively improving as we learn what works and what does not.
- We value product over process: We want the team to have the time and focus on solving complex challenges. We minimize the overhead by setting clear goals and avoiding heavyweight processes and excessive meetings.
- We share knowledge freely: We share our learnings with each other and with the developer community. Our engineering blog demonstrates how we tackle interesting challenges at Aha!
- We enjoy: We like what we do. And we want you to love your team and your job too. Learn more about The Responsive Method , our company values , and the generous benefits we offer.
Our technology
Our web application is a single-instance, multi-tenant Ruby on Rails monolith supported by Postgres (database), Redis (background jobs), and memcached (Rails caching). We also run a Node.js webserver to support collaborative editing and real-time updates. Our application is hosted on Amazon Web Services and architected with ECS for reproducibility and scalability.
We Use React For Rich Client-side Experiences On The Front End. Some Of The Features We Have Built With React Include
- Our fully collaborative text editor : Supports multiple cursors and simultaneous editing by any number of users. We pride ourselves in the underlying technology .
- Our presentation editor : Allows users to create presentations with slide themes, shapes, text, and embedded Aha! reports that update live so the presentation is always current.
- Our Gantt chart : Supports scaling and scrolling to change the timeline, drag-and-drop, and quick actions to create records or sort the bars.
We embrace new technologies that help us deliver a lovable product, but we also remain cognizant of the maintenance overhead that a new library or platform brings. We solve the problems in front of us, rather than prematurely optimizing to address issues that may never materialize.