Engineering Team at Dark

Our goal is to remove accidental complexity from the software development process. Dark is a holistic programming language, editor, and infrastructure. By putting the three together we prevent developers from needing to think about infrastructure and deployment, and give them the ability to work with real data and traces. We spend time building the platform, and lots of fun things on top of it.

Job Openings at Dark

Top Engineering Values

Each team is asked to select, explain, and rank their top 8 values in order of importance.
  • Actively Practices Inclusion

    We want to learn from every person who works at Dark.

    Whether it’s adding more women to the team (we’re currently evenly split) or people of different ages, ethnic backgrounds, parenting status, and abilities — diversity is extremely important to us. We want to learn from one another and believe our different backgrounds are of the utmost value. For example, one of our engineers creates new stem vocabulary for ASL.

    For us, inclusion means helping people get in the door and thrive once they’re here:

    • When candidates interview, we give them lots of ways to show us their best work: from the type of call they prefer (phone or video) to how they’d like to share code.
    • We cover 100% of Kaiser Platinum for employees and their dependents. You can have a PPO, too, and just pay the difference! We don’t want you to have to worry about going to the doctor.
    • At work, we encourage employees to share their preferences around working style. We each write a “how to work with me” document that highlights our regular hours, habits, and things we’re trying to improve. So everyone is able to contribute, we let people have time to think before jumping into conversations (it’s okay if you think out loud, too!)
    • We caption all of our videos, and openly share our captioning script for other teams to use. We want to be good citizens to the overall community.

    That’s just the start. We know that many issues around inclusion are systematic, and some are invisible if you don’t have firsthand experience.

    To combat that, we actively solicit feedback on our salary policy, benefits, office, team policies, and how we communicate. Everyone who works at Dark has a different background and set of interests. We’d love to hear your unique perspective, but we also understand that some things are private. When we get feedback on something we didn’t even know to ask about, we listen first, think, then respond.

  • Continuous Feedback

    Feedback is an integral part of how we get better.

    When we don’t hire a candidate, we do our best to give genuine feedback. That’s just the beginning. For candidates we do hire, we automatically set up 30-, 60-, and 90-day reviews once you join the company. These ensure we’re on track with expectations and make it easy for us to course correct if something is misaligned. The reviews always go both ways, too: we want to hear how Dark could be better for you.

    Our desire to improve our engineering team is expressed in all of our day-to-day practices. We do regular code reviews. On some projects we opt to pair program, so people can ramp up on new pieces of the codebase. During onboarding, we pair regularly. We also ask our newer employees to review complicated pull requests, so they can see and ask about architectural decisions. We give each other feedback on how we performed during meetings (in private, right after the meeting).

    We also think feedback is what helps our product get better. Every day, we get user feedback through our dedicated Slack channel. If we can, we fix issues as they come up. If not, we link to the message in a ticket and will tell the user when we’ve fixed it.

    For more personal feedback, we believe in giving constructive feedback privately, and complimentary feedback based on each person’s preference. Not everyone likes to be praised in a public manner. We also strive to give feedback immediately after something occurs, and to format it in a truthful, nonviolent way: “when you X, the story I tell myself is Y, and the impact is Z.”

    Once things are running smoothly, every engineer has a 1-1 with the CEO and CTO weekly. These meetings are a chance to provide and solicit additional feedback, and the agenda is driven by the employee.

  • Open Communication

    We aim to openly share what we’re doing across the board.

    Our engineers often talk about code and product, but we also talk about our performance as a team, hiring, and fundraising. We default to communicating in person and in public Slack channels. We err on the side of more channels, so individuals can mute or set their notification preferences to not be disturbed (but catch up when they want). We only use private Slack channels for sensitive information, like discussing a specific candidate during recruiting.

    We want everyone to feel comfortable voicing their opinions. We try to share agendas in advance so everyone will be able to prepare privately. At the beginning of each meeting, we often take the first few minutes for everyone to individually collect and record their thoughts before sharing. For example, during our retrospectives, each person is able to share their individual reflections first. Then, as a team, we decide what to dive into as a group.

  • Customer Comes First

    At Dark, users matter most. We encourage developers to visit our office and often take developers in residence.

    Dark is a programming language, editor, and infrastructure. We’re following a bottom-up strategy and care about developer experience before anything else. Getting large services running on Dark means developers need to love it. We’re our own customer, too: we use Dark to build parts of Dark. When we do monetize, it will be around the cost of infrastructure.

    As soon as our product was able to build a web service, we hired a customer as an EIR to work at Dark and give us feedback every single day. We built what we needed to keep his product up and make his experience better. We still encourage customers to visit the office, and often take developers in residence.

    For other developers building on top of Dark, we actively maintain a Slack community to answer questions, and volunteer to pair with developers as needed.

  • Start-to-Finish Ownership

    One of the best things about working at an early stage company is being able to see your work through from idea to completion!

    Since we’re a developer-facing product, team members balance Dark’s core vision, external developers’ needs, and their own perspective, often helping to define product requirements. We’ve had people take on everything from better architectural views, to adding user defined types and hosting static assets.

    Developers come up with a technical design, get feedback, and build with regular check-ins (which could include pairing, intermediate reviews, etc.). Owning your work means making sure it’s ready to go, writing some supporting information, and sometimes showing a customer before shipping. We don’t have a formal “focus group” process yet, so developers might ask in our user support channel, or reach out to specific individuals that have asked for the feature before.

    We try to move people around to different areas of the codebase, too. While we want everyone to have some familiarity across the codebase, everyone will also have their specialities.

  • Committed to Personal Growth

    Talk openly about your goals. We support you.

    At Dark, we have career switchers, people who are self-taught, and those looking to move into leadership roles. We’re committed to supporting all of those situations for our employees, and will do whatever we can to help you grow as an engineer.

    By actively practicing feedback and having a bias toward transparency, we do our best to align each individual’s personal and professional goals with the goals of the business. In 1-1s you’ll talk about your future goals and the skills/experiences you might need to get there. When we do more aggregate reviews (like the 30/60/90 or when asked), we provide specific insights and quotes from the rest of the team. As a collective, our team members have a wide variety of skills and experience, so one of the most valuable sources for growth is the person sitting next to you. Thus far, we’ve all become more well-rounded as we learn from each other and are able to get insight into other pieces of the company.

    We also:

    • Buy whatever books you need.
    • Purchase meetup tickets.
    • Pay for one professional development conference per year.
    • Invite industry guests and hire all-team workshops for specific areas (upcoming: Distributed Systems).
  • Bonded by Love for Product

    In many ways, Dark was started to solve our own problems.

    We wanted to be able to ship products without having to spend the majority of the time setting things up, or re-writing code we already had for other projects. We believe that the speed of developer iteration is the single most important factor in how quickly a technology company can move. We’re so passionate about this that in Dark, deploys take fifty milliseconds!

    We’re still developers building a product for developers. Everyone at Dark likes the idea of making engineering easier so more people can do it.


  • Actively Practices Inclusion
  • Continuous Feedback
  • Open Communication
  • Customer Comes First
  • Start-to-Finish Ownership
  • Committed to Personal Growth
  • Bonded by Love for Product

Company Properties

  • B2B
  • B2C
  • Technical Founder(s)

Team Members

  • 1 CEO
  • 1 CTO (actively codes)
  • 1 Chief of Staff
  • 1 Designer-Engineer
  • 1 Engineering Manager
  • 4 Engineers

Vacation Policy

Currently we have unlimited vacation. Based on the feedback we’ve gotten from employees (see our Continuous Feedback section) we’re looking to move to a generous policy with set days. For now, we actively encourage each other to take vacation. We also give one “duvet day” per quarter, for when you wake up and think “I don’t want to get out from under my duvet.”

Tech Stack

Dark’s backend is written in a combination of OCaml, Rust, and Dark (that’s right, Dark is partially built in Dark!). We use Kubernetes and Postgres, running on top of Google Cloud.

Our frontend is also in OCaml – we don’t expect you to know OCaml before you join, and you typically learn it in the first few weeks. We compile the OCaml to JS using Bucklescript/ReasonML, and use a framework similar to Redux or Elm for managing state.

Interview Process

1. Introductory chat with our CEO, Ellen, or our Engineering Manager, Ian C, about your experiences and goals.

2. Technical chat about your experiences with a member of our engineering team.

3. Code review - we offer many options to allow you to show your best. That could mean solving challenge, another phone interview, sharing a repo, or sharing a previous interview homework.

4. Onsite interview that we treat as a one-day contract and try to make as close as possible to working at Dark. We pay a $500 stipend because we value your time and expertise.

5. Reference check.