Our Software Engineering Values

July 06, 2020

Michael Natkin

At Glowforge, we believe that communicating with kindness and transparency with potential future colleagues is vital to hiring amazing people. We document our health care plan, our diversity referral bonus, and our unusual way of doing job offers on our careers page so that candidates have as much information as possible.

In that same spirit, this article is devoted to a detailed look at the experience of being a software engineer at Glowforge. In other words, what we value on the engineering team, and how we put those values into practice. Along the way, I’ve shared quotes from a number of folks, both on the engineering team and from our coworkers throughout the company so that you can hear multiple perspectives.

See also part 2, How We Hire Software Engineers At Glowforge for lots of detail about our interview process, and the thinking behind it.

Aisha, Sr. Software Engineer

“Glowforge’s software team empowers engineers with autonomy to seek understanding around problems and their solutions, and a supportive environment to assess and choose technologies. My coworkers approach the development process together, with empathy and support. Our management inculcates open communication around engineering, product decisions, career development, and efforts to balance goals outside of work.“

COVID-19 Update – June 2020

I’m incredibly grateful that Glowforge is still thriving during the COVID crisis. I know of so many startups that have suffered enormous setbacks and have had to lay off large numbers of people. We’re fortunate that more people every day see the value of having a Glowforge at home, whether it is for a craft or hobby, teaching their kids, or starting a small business.

I’ve also been delighted at how effectively we transitioned to working from home, even as we are all thrown into worry for ourselves, families, friends, and the world.

Of course, this kind of collaboration has been relatively natural for the software team. We are all pretty accustomed to the tools of remote work. While we miss being together in person, we haven’t missed a beat in productivity or communication. Because every employee has access to a Glowforge in their home, we can continue to use and test our product. We’re more flexible on our common working hours to allow for the wide variety of family needs, and we’ve stepped up communication with additional Slack standups and weekly team goal pages.

Emily, Engineering Manager

“Communication is key. One thing we really try to make second nature on the Software team is to always keep communications open. Feeling blocked? Reach out for help! Unsure the desired user behavior? Talk to Product. Are things taking longer than expected? Reach out at stand up and be open about it and we can as a team decide if priority needs to change.“

It has been inspiring to see how our colleagues in other departments have adapted to these circumstances. Even teams that rely on specialized equipment and labs have figured out how to continue to take care of each other and our customers.

I’m convinced that a huge reason things are going well is that we have a culture of connection. That sense of knowing each other as whole people, not just coworkers, has helped us operate with empathy for each other in these strange times, and a strong sense of purpose. We know that our work means so much to each other’s livelihoods, to our customers, and – through projects like Ear Savers – the wider world.

Stu, Principal Engineer

“Glowforge is an excellent team of people who support each other personally and professionally every day.”

We continue to hire during the pandemic. It has been cool to see that we’re able – through the magic of Slack, Google Meet, etc. – to bring new people into the company, and quickly feel like we’ve been working together for years.

Why Software Matters

Me (interviewing with Glowforge)

“But aren’t you a hardware company?”

Software is the secret sauce that transforms an industrial factory tool into a magical box that gives you creative superpowers. A person with no experience with lasers and only the most basic computer skills can be printing their own designs in minutes. It is our software that abstracts away details like controlling motors, fans, and the laser itself, monitoring sensors for reliability, accounting for tiny differences in calibration between each Glowforge’s laser and cameras, preparing designs for cutting and planning optimal motion sequences, and applying advanced computer vision techniques for precision focus and alignment.

From the very start, we thought of our product as “software delivered via hardware”, and that’s why we invest so much in making our software outstanding.

Open The Pod Bay Door, Hal

The software team is currently 19 engineers, which we’ve structured into small, flexible teams that we call pods. The idea of a pod is that it includes everyone needed to ship a project with as few external dependencies as possible, so they can be laser-focused on developing and delivering results for our customers and our company.

(I’m sorry about the laser-focused pun in the preceding paragraph. But not that sorry, because sadly puns seem to be an excruciating part of our engineering culture.)

Any given pod might include some combination of firmware, cloud, frontend, computer vision, or other specialized skills. A pod always has a product manager and tech lead, and often has an engineering manager as well. Also, the pod may have stakeholders from other teams such as Growth, Finance, Hardware, or Customer Success.

Rita, Director of Customer Success

“We have team members working on internal tools with the same enthusiasm and commitment that is often reserved for customer-facing brand-new-technology. This team understands that delivering a great product includes frontend, back-end, and operations.”

A word about those product managers. At Glowforge, the Software and Product teams have a special relationship. Product is ultimately responsible for deciding what we build, integrating inputs from engineering prototypes, business models, market research, customer feedback, usage data, suggestions from other teams, and more. Engineering is ultimately responsible for deciding how we build it. These decisions happen through robust, iterative conversations that shape everyone’s thinking along all of the dimensions of features, quality, and time.

Dan, Product Manager

“The software team at Glowforge gets things done. They’re a group of people who always think about our customers, the product, the experience, and the problems we’re trying to solve. I love this because it helps us all learn from each other.“

Each pod has its OKRs, standups, weekly sprints with clear goals, bi-weekly blame-free retrospectives. We also have monthly all-software meetings, where we often do video visits with Glowforge customers and talk about engineering methodologies, new tools, and new learnings.

We re-evaluate the layout of our pods every quarter to make sure they align with the company objectives, and we sometimes add, remove, or adjust them to focus on the most important challenges we’re facing. Examples of areas that a pod might work on include our website and e-commerce, Glowforge Print and Glowforge Premium, Pro Passthrough, Ear Savers, our Google Cloud Platform and Kubernetes infrastructure, or our BigQuery data warehouse.

Stack It Up…

We don’t base our hiring decisions on an engineer’s prior experience with our exact stack. We know that you can learn new languages and libraries. That said, many engineers we talk to want to know what we use, so here are some of the highlights:

  • The firmware on the machine itself is written in C++ and runs on a Linux kernel.
  • Our cloud backend is a hub-and-spokes architecture, with Ruby on Rails as the hub. The spokes are nearly all stateless microservices, and are a heterogeneous mix of Rails, Python, Rust, and Node.
  • We use Google Cloud Platform for all of our cloud services. We take advantage of many of their specialized offerings including GPUs, storage tiers, BigQuery, Pub/Sub, and more.
  • We use Google Kubernetes Engine and Terraform to manage our infrastructure, as well as some recent forays into Google Cloud Functions
  • Glowforge.com and the Glowforge Print web app are developed using React, NextJS, and ES6 (and many dozens of NPM modules).
  • Our store is built on Shopify Plus and connects to Netsuite, Zendesk, and Klaviyo.
  • We use Segment to route and integrate data across all of our platforms
  • We use LaunchDarkly and Optimizely for internal and VIP testing, A/B tests, and controlling the delivery of new features.

We use modern software engineering practices, in a way that focuses on being pragmatic, not dogmatic. That includes CI/CD to staging with weekly production deploys, extensive use of submit-blocking linters, kind and thorough code reviews for all merges to master, mandatory unit tests, and increasingly, automated integration tests, and a careful approach to security.

We score an 11 out of 12 on the famous Joel Test. The one we miss is very intentional: we don’t always fix bugs before writing new code because we have a purposeful strategy of letting our customers tell us which bugs matter and which don’t. Our intuition is frequently wrong!

Rachael, Principal Engineer

“I really like fixing bugs. I also like putting together really big features and sometimes fixing a bug is the best thing for my personal morale. At Glowforge, we always encourage developers to fix small bugs, within reason to not take up too much time away from planned deliverables and with Product input. It makes the software more enjoyable to keep working on and makes it better for customers.”

… And Wrap It Up

Thank you for taking the time to learn more about what it is like to be a software engineer at Glowforge. We think it is a great place to have a massive impact, work with wonderful teammates, empower people to make precisely the things they want or need in their own homes or start businesses, and build an important and valuable company together. If you join us, you’ll have the opportunity to do some of the defining work of your career, and have a hell of a lot of fun in the process. If that sounds good, then we are excited to talk with you!

See also part 2, How We Hire Software Engineers At Glowforge.

You don't want to miss