Full stack engineer (with front-end bias)

A group of people standing in a garden
Contract type: Full-time, Permanent
Location: Queen Square, Bristol
Ideal start date: ASAP

About Candide

We are an ambitious, international start-up enabling people to progress their passion for plants and nature through the application of technology.
We openly put our people first and we’re proud to be building a team that genuinely loves working and learning together. We know how important culture is, so have a read to see if you think we might be a good fit.

About The Garden Visiting Team

We are building a platform for gardens to help them become digital businesses. We help gardens establish their online presence, drive visits and revenue, and use the Candide app to enhance the visitor’s experience in the garden. We provide ticketing and admissions software tailored to the garden industry.

The role

You will be working in one of our agile teams as a full stack developer, but with a focus on the front-end. You will help us devise, design, prototype and deliver innovative features in our React Native mobile application, NextJS website and Garden Admin Portal.
You will be working in a cross-functional team made up of engineers, designers, product managers, digital marketing specialists and salespeople. You will have access to our existing technology stack (including various ML capabilities such as Plant ID) to build the next generation of garden visitation features. Think Plant ID, AR, guided tours, etc.
As a full-stack engineer you will be contributing all the way up and down the stack, but often pairing with people with complementary skills. Your front-end expertise will ensure the user experience is slick and engaging, and you will work with designers to achieve the best possible results.

Our technology

Our entire stack is written in TypeScript. The front-end apps use React and React Native, backed by a GraphQL API. We have a growing number of microservices written in Node.js communicating through RESTful APIs and Google PubSub, running on Kubernetes in Google Cloud Platform. We use PostgreSQL by default and other databases (e.g. ElasticSearch and Redis) where relevant. As much as possible, our infrastructure is defined using Terraform.
We use CircleCI for continuous integration and deployment, deploying to our development environment on successful push, and to production several times a day using our Slack bot (The Robotanist).
We aim for a functional style of programming with a focus on continuous testing, integration and delivery, while working hard to avoid knowledge silos and reduce dependencies.
We like types and tests to help us produce working and maintainable code, making use of immutability and pure functions where practical. Our focus on continuous integration and continuous delivery allows us to rapidly iterate, deploying new versions of our microservices many times each day.
Our robust testing and monitoring allow for stress-free deployments and to discover, debug and fix problems in production. We use Elasticsearch and Kibana for logs, Prometheus and Grafana for metrics, Jaeger for distributed tracing, and Apollo Engine for our GraphQL API. We have automated smoke tests that run against production in addition to the tests which run in CI.

Our ideal candidate

We’re looking for enthusiasm, a passion for learning and a desire to work in an agile, collaborative environment. We want you to be excited about shipping a product that delights plant and nature lovers around the world!
We want to hear from you if you have a desire to grow into a role with the company comprising some of the skills and technologies listed below.
We encourage you to apply if you have any experience or interest in the below. Our current engineers do not all know everything on this list!
  • Cross-platform and functional programming experience, using React and/or React Native
  • Component-based styling, especially use and design of component libraries, and flexbox (all React Native styling uses flexbox)
  • JavaScript knowledge, especially using React, TypeScript and Node.js
  • Experience designing, implementing and running large web applications
  • Experience with SQL databases
  • Familiarity with microservices, Kubernetes, and a DevOps culture
  • Appreciation for automated testing, CI and CD
  • Experience with iOS/Android and React Native
  • Any experience with machine learning (either using or building)
  • A Bachelors or Masters degree in Computer Science, Engineering or a related field with a strong math component
Remember, the above is not a list of hard requirements - you’re absolutely NOT expected to know all of this!

Team culture

We work in cross-functional teams to turn business goals into product features. Great communication (weekly tech reviews and deeper fortnightly retrospectives) means there is an inherent no-blame culture.
Our collaborative and inclusive structure encourages everyone to share ideas on how we can improve our processes, technology and product. Every team member enjoys autonomy and is exposed to working on the full stack, but specialises where they have a particular area of interest. We also run a monthly hack day where everyone can experiment with technical or product ideas.
Our staff are involved in many local meetups, including CodeHub hack nights, South West Mobile, Bristech, Bristol JS, Bristol SRE, Bristol Cloud Native & DevOps, Cloud Native Wales, Bristol Machine Learning, and ProductTank Bristol. Come and say hello!

What you’ll get from us

  • 25 days holiday (plus bank holidays), because the rest of your life is important too
  • An extra paid day off to spend among plants
  • Regular team socials
  • An amazing plant-filled office in Queen Square
  • Free fruit in the office (when safe)
  • Your choice of equipment
  • Pre-paid training budget for whatever you need to do your job more effectively
  • Grant of SARs (Stock Appreciation Rights) after two years of employment
  • Enhanced shared parental leave
  • Flexible working hours (core hours 10 am - 4 pm)

Everyone is welcome

Get in touch if you have any questions – we’re a friendly bunch :)

Application process

A successful application typically involves:
  • A short phone interview
  • A small take-home assignment (no more than 2 hours expected)
  • An on-site interview with a few developers
  • An interview with our CEO
Our interviews are informal, we like to have a chat about what excites you, interesting projects you’ve worked on, and what you can bring to the team. We won’t test you on arcane JavaScript features or make you code on a whiteboard (but we do like diagrams and scribbles!).

How to apply

Please email your CV and any other supporting information to recruit@candidegardening.com.
Recruitment agencies, please read this (TLDR: don't send us candidates unless you're on our preferred supplier list. Any candidates you do send will be treated as a gift).

Be the first to download the app

Help us build a place where community meets knowledge. Try it out and let us know what you think.
Download on the App StoreGet it on Google Play