We are building a workspace for Marketing teams - Think Webflow for Marketing teams, Grafana for Marketing teams who operate on large data sets and need a clear intuitive interface to look at all their data.
Traditionally Marketing teams have always had to depend on a large BI team to provide them with the data they need to make decisions. Clarisights eliminates this by giving Marketing teams everything they need in one intuitive, collaborative reporting platform.
We work with large enterprise Marketing teams around the world like Delivery Hero - The world's largest food delivery co., HelloFresh the world's largest mealkits delivery co. etc.
Our platform is central to how business teams make decisions and you will work on the interface that these teams use. We are helping non technical business users get comfortable with data by giving them a platform they can use to drive.
What makes this role challenging? Think Google Docs, Slides and Sheets all combined in one platform. We have a collaborative text editor which is used by teams together and we built our table grid which is extremely powerful. Tables, being one of the heaviest and most used widgets we have, have records composed of metric data(averages, share percentages, comparison data), multiple creatives(images, videos, gifs), trends(charts inside each cell) and a lot more.
The huge amount of data points naturally increases the amount of DOM nodes and thus it becomes memory heavy and CPU intensive to run the app in the browser. One table can have 500 records that the users can scroll through at once. Now imagine having 10+ of such tables in one tab, and each report comprising of multiple tabs. And we also support features like drilldowns/breakdowns, column freezing, row freezing, in the tables all while ensuring a smooth user experience.
We decided to build it from scratch using React Virtualize since most table libraries did not give us the performance or features we need. We also extensively use charts to visualize data and as we are scaling, a lot of these components have to be rebuilt to handle the volume of data we process.
We are only getting started, we want to make our platform a lot more collaborative and immersive by giving teams ability to interact with charts by adding annotations and ability to tag team members and leave notes for them. This might seem a solved problem when you look at collaboration on Google Docs but it's an extremely tricky problem for us as we don't deal with static data the way you have it with Google Docs.
Unlike read only dashboards which do not allow edits after building, our platform is meant for collaboration within teams. Think of how shitty collaboration was for design teams before Figma.
We are looking for someone who obsesses over performance and is comfortable with profiling performance, can think of frontend architecture. We are also looking for a lead who can mentor the team on performance and scale.
While working with such complex interfaces, often times, performance and the tech becomes a bottleneck for the user experience we strive for. We are looking for someone who —
- Understands fundamentals of Application Design and has designed/architected applications from scratch.
- Has worked on large-scale applications, and setup/maintained its data pipelines (data flows from backend to frontend)
- Has architected efficient and reusable front-end systems that drive complex web applications
Preferable Qualifications
- 3+ years of JavaScript experience, including concepts like asynchronous programming, closures, types.
- HTML/CSS experience, including concepts like layout, specificity, cross browser compatibility, and accessibility
- Experience with browser APIs and optimizing frontend performance
- Previous experience with dashboard apps, charts framework, window virtualisation
- Has written Generators for project setup
- Comfortable with tech like Postgres, Docker, Rails
- Understands tooling like Webpack, Babel
Experience with React and Typescript is preferable but not necessary.
First 30 days, one will work on
- Understanding the data flow and familiarise oneself with the app components
- One feature/task like updating something that touches majority of the app — this is again aimed to get familiarity with the whole codebase in the quickest way
- Synchronising the data pipelines by adopting better serialisation protocols
- Creating avenues to improve app performance (by profiling and benchmarking)