Frontend Engineer
- Auckland, New Zealand or anywhere remote in NZ
- Full time
- Engineering
Permanent role: Starting as soon as a candidate is available.
Location: Based in our office on Karangahape Road in Auckland, New Zealand; with some days of the week optionally remote. We are also supportive of fully remote members in New Zealand.
Salary: Around NZ$110,000 - $130,000 depending on skills and experience + Employee Share Option Scheme participation + Benefits.
About Narrative:
Narrative is one of NZ’s fastest growing software as a service (SaaS) companies with global customers. Narrative builds products to serve the 5 million professional photographers worldwide, working to significantly reduce their processing time and to support their daily workflow with AI powered tools. We’re backed by some of the best VC’s worldwide, with some of NZ's best people working together to solve this.
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.
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 all parents) and extended sick leave to support our team to get through the many things life can throw your way.
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, and advocating for better testing techniques.
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.
We're looking for someone who:
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 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.
Narrative is committed to building AI software that works for people from all genders, ethnicities, racial and religious backgrounds. We want our team to reflect this focus. Research shows that white men apply to jobs when they meet an average of 60% of the criteria, while women and other underrepresented individuals tend to only apply when they check every box. So, if you really love the idea of working for Narrative, and think you have what it takes, please apply, even if you do not tick every box in the job description.
If this sounds like you, please apply with a cover letter and CV here.