Firstly, What are we trying to achieve at Flick?
We’re trying to make Instagram simple again. There’s no doubt that Instagram is now the world’s most powerful marketing tool. Unlike most other marketing avenues, Instagram is almost entirely image-driven. For this reason, the most success that came from Instagram was birthed out of creating uniquely engaging visuals. With the exponential rise of the number of businesses on Instagram, putting out high-quality content is not enough, you now need to efficiently manage a complex and multifaceted Instagram strategy. This includes hashtags, content, planning, scheduling, captions, stories, IGTV, reels.. etc. We see the effects of Instagram marketing burnout from subpar tools and practices, so we decided to build something better. Flick is currently the most loved organic Instagram growth and analytics product. We aim to implement Instagram post scheduling so our users can manage their whole Instagram strategy on Flick.
Technical requirements
Strong experience across our backend and frontend:
- React (Next.js)
- GraphQL (Apollo)
- NodeJS
- Typescript
- E2E testing (e.g. Cypress)
Professional experience with Amazon Web Services
Find out more about our stack here.
What you'll do
- Implement brand new features. We're working on implementing a new area of our product: Instagram Post Scheduling. You'll co-own this this feature with our CTO.
- Co-own the product and work self-directed. We're a small team of individual contributors. Everybody has autonomy and responsibility. You will work with others on new features from ideation to release, through to maintenance. For example, you might build an analytics dashboard for Instagram stories. You may work on a backend system to integrate with the Instagram API to efficiently store large amounts of Instagram data, to be used to serve insights to our users.
- Improve our current features. You'll help improve performance and reliability, or polish existing features. For example, you might improve the user experience of our existing hashtag search, allowing for pagination through related hashtags.
- We're a small startup. Wear many hats. We're all generalists. You might add a new feature to our Next.js app, set up infrastructure components, or write a blog post about how we built a new feature.
- Form the backbone of our engineering department. Contribute to technical and architectural decision-making. Drive meaningful process improvement and ensure the implementation plans are deployed and followed.
- Deploy, monitor, and optimize your code in Vercel and AWS.
- Improve the reliability and deployability of Flick. Extend Github Actions CI/CD to automate new tasks which involve building and maintaining unit and mostly integration and e2e tests.
What makes you a great fit
You're highly productive while writing quality code.
We release updates every 1-2 weeks. You can break down big projects into small deliverables. You care about the outcome and take a pragmatic approach to deliver it. You know when you want a code review or need to write tests. You're also comfortable asking for help when you get stuck.
Thoughtful software craftsmanship and problem solving
You leave the Flick codebase in a better place than when you found it. Your code is a pleasure for your teammates to read. It should be easily understood, and simple to build upon.
You should love the art of engineering software. A practiced understanding of ideas in Uncle Bob and Martin Fowler's books is a huge plus.
Deploy engineering best practices through the SDLC to ensure engineering output is top quality and your technical debt is kept to a minimum. An understanding of best practices in scalable frontend and backend architecture.
You care about the code our writing and it's maintainability. You take a balanced approach to engineering, embracing pragmatism over perfection in your work.
A passion for shipping and iterating on high quality interfaces
You can work closely with our design & product teams to build and maintain Flick's magical user interfaces for our diverse range of customers (IG native 20-year-olds to 55-year-old marketing moms).
You're product-minded. You have a sense of great user experience and feel when something is off. You work with continuous deployment and preview environments to get constant feedback and you have monitoring and analytics in place to quickly act when something unexpected happens. You're eager to optimize UI responsiveness and dig deep when there is a need to resolve a tricky issue. You treat the products you build as an extension of you and proactively iterate on them.
Comfortable working in a scaling startup
You have a track record of working on great web applications. You've experienced the technical challenges of rapid growth in a (preferably B2C) SaaS company. You've seen software projects succeed and fail and bring in proven concepts to ship software from day one.
Bonus points that will make you an even better fit!
- Familiarity with aspects of our tech stack: React Native, Next.js, Elasticsearch, Redis queues (Bull), Elastic Beanstalk, Apollo Client & Server, TypeGraphQL, Typegoose (Mongoose), Cypress, Jest, Storybook
- Experience using a style-in-props methodology. E.g. theme-ui, tailwindcss, xstyled, Chakra-UI (we use a custom fork of Chakra UI for Flicks design system).
- Experienced being in a team that was building big data products. Those which involve storing large amounts of analytics data, from which you build features for users.
- You're able to partner with Product Management to break down large, complex projects into smaller tasks with rapid iterative milestones and clear outcomes, to produce a predictable product and engineering roadmaps.
- You take ownership and feel responsible for the product as a whole. You don’t mind getting your hands dirty and work with legacy code.
- An understanding of architecting solutions around observability, scalability, reliability, security, etc.
Our stack - only the best tech
- TypeScript Nx monorepo frontend: React, Apollo Client, Recoil, Next.js, a custom fork of ChakraUI, Cypress, Storybook, Chromatic UI snapshot testing, etc.
- TypeScript Nx monorepo backend: Apollo Server with TypeGraphQL and Typegoose.
- TypeScript React Native mobile app: RN, a custom UI library similar to ChakraUI and Apollo client.
- Infrastructure: Amazon SQS, MongoDB Atlas, Amazon Neptune, Elasticsearch, BigQuery, Redis, and more.
- Modern work tools for everything. Notion for roadmap and tasks, GitHub as source control, Sentry for error reporting, Datadog for monitoring, Logz.io for logging, Segment and Amplitude for analytics, Slack and Loom for internal communication, Figma for pixels, Notion as a knowledge base, and a few others. As a team, we enjoy using Bear, Hey, and more awesome apps.
Benefits
- Competitive salary
- Family leave
- Home office setup budget
- Self-development fund
- Vacation
- Remote work
Application process
Our process aims to ensure that both sides get a feel of what it's like to work together day-to-day. Our process is as follows:
- Getting to know your values and experience. We'll reach out asking you to share with us what excites you about this role at Flick.
- An intro call with Andreas. Both parties get to know each other. You learn more about the team, codebase, and Flick. At this point, you can ask us any questions that you might have.
- Coding task. We'll send you a task that is similar to something that you'd pick up on our Notion roadmap. You'll be invited to chat about the task one of our Slack channels you will get a sense of what it’s like to collaborate with the team.
- A zoom call to chat about your task. In this stage, you'll have a quick zoom call with the three founders. You'll have an opportunity to get to know us and show your work. Andreas will ask some role-specific questions to better understand how you work.