We have thousands of photographers using our products and we’re growing. This is a unique opportunity to join our team and build industry-leading AI products.
About the Role:
You’ll be working on Narrative’s engineering team helping to develop our product Narrative Select. You’ll join the team with a strong focus on frontend development.
Frontend development at Narrative is a little different. You won’t be just implementing nifty pieces of UI and UX day in, day out. You will be responsible for our Electron app, writing NodeJS code that has access to the underlying OS. Select operates in a multi-process environment whether that be NodeJS processes, web workers, or Rust processes. This comes with its own set of considerations and concerns.
You’ll be dealing with problems not faced by traditional web apps. We are competing against native apps written in C++ using classic web technologies; a tall order for sure. You’ll reach for cutting-edge tools such as WebGL, WebAssembly, WebGPU to help us succeed.
You’ll be working closely with Rust and AI engineers to deliver polished end-to-end features for Select. Given the nature of our product, we are a very performance-centric team. We’re always looking for new opportunities to make our product faster and to squeeze every last piece of performance out of the technologies we use.
You will also be relentlessly product-focused. You will take a keen interest in how our users are using the product, how they wish it was better, using hard quantitative and qualitative data to inform concrete product-driven decisions. You understand that everything is a tradeoff, and there are simply not enough hours in the day to do everything. To that end, you are constantly focusing on the most important issues for the product.
In order to succeed in this role, you will need to be curious. We want people who will bring a fresh perspective, questioning how things are done and experimenting with new approaches and technologies. You will hold a very senior role within our engineering team, helping to form a vision for the architecture of our app, preaching best practices, advocating for better testing techniques, and helping to mentor and level up junior developers.
This is a rare opportunity to have influence and impact on a world-class product in an early stage and help make it a success.
About our technology:
Narrative Select is an Electron app built using Web technologies such as React and Typescript. We use Canvas2D for image rendering and transformations. Select’s brain is a speedy wee daemon called Maxwell written in Rust. Maxwell does all the heavy lifting for Select, including image processing and ML analysis.
You might work on:
• Building polished UI and seamless UX.
• Collaborating with your team and coming up with elegant solutions for hard problems.
• Squeezing every drop of performance out of web technologies with tools such as WebGL and WebAssembly.
• Experimenting with more performant ways to decode and prepare images.
• Helping your colleagues level up by reviewing code, mentoring and implementing best practices with the applications team
• Working with other team members to define requirements and API's for new Select features.
• Evolving and contributing to our testing strategy to give us all assurance that Select is solid.
• Helping streamline our deployment and testing workflow by extending CI/CD infrastructure.
• Working with our product team to deeply understand the customers needs and the best way to deliver features and improvements.
• Collaborate towards the establishment of detailed guidelines and standards for product development processes based on industry best practices and your experience.
We're looking for someone who:
• Has many years of experience and has been around the block. Writing elegant and tested code is second nature to you.
• You’re not tied to any specific part of the stack. You’re happy to jump in where you’re needed and level up when required. We’re after a problem solver as opposed to [Insert specific part of the stack here] Developers.
• Has professional experience with modern web technologies such as Typescript, React, Node, Vue, Redux, Redux Saga, and TailwindCSS.
• You know what it means to lead, and have experience with this (big or small). You build confidence, technical skills, and motivation in all team members regardless of their role in the company.
Nice to have:
• Experience with Electron.
• Experience in dealing with image data.
• A keen interest in photography.
We're committed to building products for professional photographers who work with people from all genders, ethnicities, racial and religious backgrounds. We think it’s important that our team reflects the same diverse audience. We're actively working to grow a diverse team and offer: flexible and remote working options, 1 month paid parental leave in addition to government leave, 30 hours a week for 6 months on full pay following return from parental leave (for both birthing and non-birthing parents) and extended sick leave to support our team to get through the many things life can throw your way.