An Introduction To Galley's Engineering Approach
February 11, 2022
Currently, about 40% of food goes to landfills in the US, resulting in lost revenue in the billions and harmful environmental impacts. The food industry is in desperate need of a tech revolution and that’s why we built Galley.
Galley is a back-of-house commercial and non-commercial kitchen SaaS that manages ingredients, purchase orders, recipes, menus, and food production to help food organizations become more efficient, reduce food waste, and increase scalability. We help food businesses answer questions like, “what does it cost to make this recipe?” And, “how much food do I need to order across all menus and locations for the next week?”.“
The real power is the unit system we have. It’s essentially a user-defined Unit graph, where you can build nodes and edges in order to communicate within a recipe catalog. There are numerous ways that recipes and ingredients are measured, and it’s a lot easier for users when they can reference a recipe by “red scoop” or “blue scoop” without having to do mental math.”
Each engineer at Galley is a component of the larger dish, contributing their own distinct flavor profile, texture enhancement, or aesthetic touch. We sat each team member down for a quick interview to discover what they love about building the dish we call Galley, and why they believe it tastes so damn good.
Six Values Of Our Ethos
At Galley, our recipe for success is built on the core principle that our engineers are craftsmen that take pride in doing things right the first time, not just a team of developers or coders. Craftsmanship requires a dedication to mentorship and reflection on each day’s work. To fit our culture and work ethic, we establish ‘mob programming’ and daily retro’s to tighten the feedback loops required to grow the mechanical confidence and skill necessary to become a craftsman.
“Benji had mentioned craftsmanship… It was something that both caught me completely off guard and resonated with me. When I was a welder, before becoming an engineer, it was about Craftsmanship. I always took my time to do things right the first time”
Each employee is given the book Work Clean by Dan Charnas, an exposé on the French concept of ‘mise en place’, which helps create efficient systems both at work and in daily life. Our employees learn, everyday, from the best chefs and customers, striving to replicate the ‘work clean’ philosophy in our engineering environment.
“When people around you care that work is completed in a clean, methodical, and principle-driven way, features tend to come out of our oven well, customers don’t send features back, and you can start to get a sense of what our culture of 'working clean' embodies... and what mise-en-place looks like in Galley.”
Another core principle is a debt-free, bug-free approach to engineering. When our engineers discover a tech debt, they gather everyone’s attention and work to find fixes. We see Galley as living software that must be maintained, so it’s essential that every bug is given the attention it deserves, rather than creating a sea bugs.
“The philosophy of the engineering team is a debt-free and bug-free approach, where we are really conscious of tech debt and spend time to pay it down, which creates a big emphasis on quality engineering practice while building a quality product.”
We are also strong believers in Test Driven Development (TDD). TDD enables solid test coverage so that bugs can be traced back to missing test cases. It’s also a great spark for inspiration on how to tackle problems. We write purposeful code that fulfills our expectations by starting with what we expect to happen.
“Writing enough of a test to know when the next bit of code you write is written correctly.”
Galley is beloved for its methodically-planned design—both for the user and in our back-end. We create clear implementation plans that detail the work from start to finish. This guides our team’s success with small steps that, over time, generate the big picture using as little code as possible.
“It’s great to come into an organization that makes methodical decisions about how we implement features. We make decisions intentionally, and hopefully we make them in a way that allows us to evolve certain parts of Galley by prioritizing single responsibility, high cohesion, low coupling, and clear interfaces.”
While we are expert planners—a large part of our “working clean” philosophy—it’s important that we’re able to change pace and pivot when needed. We use The Agile Manifesto as a guiding principle in order to be so flexible, which includes:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
“I love the Agile Manifesto, particularly the people-first focus. At some level, everything we are writing and everything we do is about people. The technical problems we solve make it easy to forget about that, so it’s nice to keep that at the forefront.”
By focusing on empowering small, self-organized teams to work off these values, we’re able to create an engineering culture where people excel in engineering processes, organizational efficiency, and autonomy.
Where Our Team Comes From
We know that great software engineers come from many different backgrounds, and we are always seeking craftsmen and women that are dedicated to the craft of engineering.
“Our team has very diverse backgrounds: computer science, biochemistry, sous chef, journeyman welder, fitness professional, and mining engineer. We also have a wide range of experience levels, from 3-4 months to 35 years.”
“The mine I was working at needed software. My boss got us three Macs, including one with a whole 4mb of RAM, which was amazing at that time, and we started writing software.”
“I was a loner in a small town reading PHP books and Visual-Basic. I had a general curiosity of how it all works. I wasn’t even into games—I wanted to know how they made those buttons and context menus.”
“I had my 60 pages of psych textbook that I had to read and memorize, but engineering students were just drawing shapes for AutoCAD class. I saw their homework and I was like, ‘Man... I would kill for their homework right now’. So, I was like... ‘Cool. I’ll be an engineer instead.”
“I think I was maybe 10 years old when I saw the movie ‘Hackers’. It’s a mid 90’s Angelina Jolie flick about computer hackers, and they had a world-breaking virus on a floppy drive, and you know, they were running around town trying to keep the floppy disk out of the wrong hands. I thought, ‘What about it is so powerful? What can it do? What impact can these letters and symbols have that is so dangerous?’”
Tech Stack And Tools
As craftsmen, we know that great tools and a clever tech stack can make us efficient and precise. Graphql is a game-changing technology that lowers the cost of ownership, speeds up development, and offers a level of flexibility that leads to a more long-term and sustainable software.
“Our idea is to use cutting edge technology with structure and open minds, paring outdated packages, implementing the latest features with React, GraphQL, and TypeScript, testing at all levels of the pyramid with Jest and Cypress, and finally unifying it all with CI/CD.”
“I talked to Benji about our care for quality code, for automation, and for working in a CI/CD environment. The way he talked about running the team was not about the money, and it was not about having the smartest people or working super fast. He said, ‘we want to work slowly, with smart people, and invest in the people so we can develop quality.’”
We trust our self-organizing teams to make great decisions in mobs, write exceptional code, and take responsibility when things go wrong. This approach helps us empower individuals to do their best, while also working within the context of a high-performing team.
“We don’t have Ops, or DevOps—it’s all on us. We are responsible and accountable for how the system is functioning.”
As the agile manifesto calls out, “individuals and interactions over processes and tools, and working software over comprehensive documentation.” Our stack, our tools… they’re all designed to make the lives easier for humans—both customers and future team members.
“Code should be readable by human beings. If it’s not written with good variable names, good method names, and good cohesion, then it is going to be harder for people that join the team in the future.”
What The Future Holds
The future runs on data, and we’ve been entrusted by our customers to be curators of the crown jewels of their organization—recipes—and present the data in a way that’s practical, insightful, and helpful for making sustainable, profitable business decisions.
“Ultimately we see a connected kitchen, revolutionized by integrated data, that redefines how businesses can manage their complex pipelines, from procuring raw ingredients to serving them as finished goods.”
“We see our engineering team ushering in a bright future and a new paradigm for kitchens all over the world..”
Exciting years are ahead. Galley’s use cases and data insights are growing and evolving to solve more complex and diverse challenges, and so is our engineering organization.
“Everyday we are getting a larger and larger dataset of high fidelity information. We are really excited to be able to leverage that data and feed that back into our system.”
“Galley is just in its infancy, but there is still so much room to grow... We have a lot of cool challenges to solve including leveraging machine learning, which is cool and super exciting. I’m more interested in the problems we are solving and the things that we are building that don’t exist. ”
“Galley is different—the community, the vibe. Everyone gets work done and cares about the product, everyone has a sense of pride with what they do, and there is a vibe about that place that’s warm, welcoming, and it feels like family… we are all in this together.”
We’re thrilled to publish our challenges and solutions on the Galley Engineering blog in hopes of contributing to and enhancing the engineering community around the world. We invite you to follow along.Photo Credit: Photo by Clément H on Unsplash
What’s a Rich Text element?
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.