Who We Are
Founded in 2013 and based in NYC, we’re a team of designers, engineers, and strategists who build digital products.
Our Playbook is an in-depth look at who we are and how we operate our business. We share our process and beliefs based on lessons learned from designing and developing 100+ web and mobile applications.
This is a living document. As our company grows, our Playbook will evolve.
Why We Build
Building is intoxicating. The opportunities to innovate and improve our tech-enabled world are limitless and immediately impactful. Yet, our founders’ early experience of building software for others was inefficient and frustrating.
Startups with inspiring entrepreneurs and genuinely great ideas were making poor decisions and failing miserably. Ones that did succeed after finding product market fit couldn't hire quickly enough to scale. Enterprise companies with talented employees were too inundated with processes and structural BS to actually make meaningful changes.
Our company was founded to fix these problems. Speed and quality of work are not mutually exclusive.
There’s a reason our company has steadily grown over the past seven years based on repeat and referral business alone - execution and authenticity. We only build solutions we believe in. Each client receives the leadership of our founders and complete transparency into our process. We thoughtfully challenge decisions to help you create not just a great product, but the right product.
We're also realistic. Contrary to popular belief, designing and developing successful software is not about secrets, hacks, or shortcuts. It's also not measured by hours of time invested. Rather, it’s measured by iterations. You can plan software projects all you want, but you need to actually build, launch, and learn from them.
Because of this, we have high expectations for our teams and also for our clients. We operate with a bias to action, continuous feedback, and an emotional investment in each client's success.
What We Do
Entrepreneurs and companies hire us to build digital products. To do that, many individual steps, skills, and deliverables need to align. Whether you’ve just founded a new startup or you’re leading a Fortune 1000 organization through a digital transformation, our team specializes in three types of work that we find to be common building blocks across all software initiatives.
- Discovery and Scoping - Diligent software planning through technology research and product validation in target markets.
- Design - Creating user-centric designs and brands with thoughtfully crafted UX and UI.
- Development - Inheriting software or building robust web and mobile applications from scratch through a well-tested process.
In addition to software products, we help build companies and teams. For many clients, we recruit engineers and designers, advise on strategic initiatives, and introduce teams to venture and institutional capital. We understand that all great products come from teams of people banding together and that human relationships drive these interactions and decisions.
How We Work
We’re headquartered in NYC but believe in hiring the best talent across the globe. We don’t “off-shore” our work to another company or act as the middleman between our clients and anyone else; we’re directly involved and responsible for the planning, execution, and success of every project we take on. We work remotely, though we enjoy working with our clients on-site when needed.
We do our best work with passionate, entrepreneurial, and open-minded people and companies. What matters most is your commitment to building a great product and adapting the process along the way.
We charge for our time by the week or month. We may also charge by the day on a retainer-basis if less work is needed. We don't bill hourly as tracking hours can get in the way of doing great work.
We create software for businesses and industries of all kinds. We’re comfortable working on projects that require security clearances and background checks all the way to working on projects that are open source and free to use.
Developing a great product is both a process-driven (checklists, peer-review, in-person collaboration) and a creative (my headphones are on...don't talk to me) endeavor.
For each of our projects, we assemble a team of designers, engineers, and product owners, unless clients hire us for a la carte services. We take pride in crafting an experienced team and assembling a product roadmap for every engagement. Although, we’re also happy to work alongside your own team’s engineers and designers in a staff augmentation model if you feel comfortable owning the product direction and project management. This format works well for clients that already have product market fit and are growing quickly.
While certain projects may be large with their goals, we like working on small teams within them. We believe in pair programming, where multiple engineers collaborate to write and review code together. We also like to pair on design, QA, and all other phases of the software development process. Given enough eyes, all bugs are shallow.
We value our meeting time together - both internally as a team and with our clients. We keep meetings structured and efficient but also allow for creative discussion and serendipitous ideas. Internally, we meet each day to review our client work. With clients, we meet weekly to review output and continuously iterate on feedback.
For each project, we work in Sprints. A Sprint is simply a way for teams to group work, set a deadline, and measure progress. Without them, tasks and goals tend to spill into one another, and it becomes difficult to assess where work begins and ends. Sprints are usually two weeks or slightly longer when working within enterprise companies and established startups.
For each of our client meetings, we review and demo our past work, discuss any blockers, and plan out the next Sprint to assign work. Depending on the type of project, our clients are often heavily involved in each Sprint and help lead and decide the priority of tasks each week.
We can’t emphasize enough how important it is to have our clients involved and participating in the feedback process every week. Our team’s value is not just the work we create, but also the habits we practice and teach.
Whether scoping, designing, or developing software, we're not dogmatic about the ways we can work together. We’re familiar with Agile, Kanban, Scrum, and other flavors of project management. We don’t only chase the latest programming languages or frameworks. We're conscious of what really matters when writing high quality software - tests, documentation, communication between design and development teams, and our clients.
We believe that transparency and communication are key to a great client relationship. We create a Slack channel, a shared project management board for tracking progress, and communicate daily with our clients about our work.
We especially value our "headphones on" time when working. Achieving flow state is important, and we empower our team with the time and flexibility to work without distractions.
Our Design Philosophy
We understand that great product experiences are rooted in design. No matter how fast, how clean, or how well-structured the code is, users won’t engage with a product that is not intuitive and memorable. Because of this, we design products with a refined and tested process.
We begin all creative design projects by ensuring we’ve identified the problems a product will solve and asking why this product, and why now? Exemplary clients come to us with some form of product validation demonstrating this, both with anecdotal and quantifiable evidence. We don’t like working off “hunches” as the barriers to test and prototype ideas are incredibly low. With many clients, we help build microsites and splash pages, surveys, and temporary product pages that can help teams understand if their idea has merit.
After understanding product market fit, we begin designing the product. If not already completed, we create brands, wireframes, and polished designs. How much or how little we invest in design depends on our client’s goals. Some clients are comfortable building prototypes without significant UI design or polish, while others prefer a fully designed product. Generally, proper design can amplify a product’s success by orders of magnitude. In some cases, it doesn’t (see CraigsList). It’s more important to first understand a problem and gain traction than it is to design a beautiful product.
We take pride in the detail of our work. For each application we build, we create Site Maps to identify all workflows and Information Architecture diagrams to establish an application’s vocabulary and hierarchy. We annotate our wireframes and high-fidelity designs for each action a user can take on each view. We remember to design for different views too, such as for error, empty, default, loading states, and transitions between views.
Our Development Philosophy
We take pride in the quality of software we create as well as the process by which we do it.
We begin most of our development work by starting at the data model layer. Only by understanding the relationship of data as objects within the application can we assemble an accurate hierarchy of information. From here, we balance both view layer and frontend code as we develop. Depending on the tools used (programming languages and frameworks) and the type of app architecture (e.g. monolith vs. microservices, Single Page vs. CRUD), we adjust our development style to fit the goals of each project. If building a simple marketing website using a CMS, we need a less robust software development process and a heavier emphasis on frontend implementation and polish. If engaging in a multi-month application build or legacy transformation, we’ll need to focus more on software process, the app architecture, and other technical considerations.
Software development is a balance of what needs to be done now? with what can be done later? This is a fine line to walk, and we’re experts at weighing the implications of these scoping decisions.
We encourage our clients and team to understand that software needs to not just be developed but also maintained. Good engineers know there is no such thing as “write once and it works forever.” Updated third party libraries can break code. Cloud-based services can crash. Critical bugs can even exist in common software programs for years before discovered and resolved (see Heartbleed). Maintaining software costs time, attention, and money. It’s just as important to refactor code as it is to develop revenue-driving features.
Our best clients are eager to learn about the design and development process, known as SDLC (Software Development Life Cycle). We take pride in teaching how it works to those who are unfamiliar. We love when we see clients continue our habits months and even years later, and we’re always happy to check-in and advise on new strategies, frameworks, and technologies.
We write tests for all our code. And all kinds of tests too - Unit Tests, Integration Tests, UAT, and others. Although, not all are necessary for certain projects sizes. If you’re building an MVP, you don’t need a full test-suite; you need to launch your product as soon as possible. But if developing within an established startup or enterprise company, no amount of tests can be enough.
The code we write is hosted using a mix of cloud providers, which is often specific to each project and each client.
We're meticulous about merging and deploying code. We use tools like Gitflow for branching, and we monitor test coverage before shipping anything to production.
How do you price your services?
We like to use a mix of Time and Materials and Value-Based pricing. We can also work on a fixed budget with our clients, though this is rare and best used for small scopes of work. If you'd like to learn more about ways to price software, you can read our thoughts here.
Do you accept equity in exchange for work?
We take equity in about one company a year, and it's usually a cash / equity split, never all equity. If taking equity, we usually ask for what most seed stage investors or accelerator programs take. We make bets primarily on founders rather than ideas.
Do you work on-site with clients?
We're happy to do this and actually encourage it, but only after we test working together first. Sometimes other companies can have toxic work environments and habits, and we want to protect our people and process to design and write high quality code.
How do you estimate software timelines?
We're proponents of using a mix of strategies including Evidence Based Scheduling (comparing your application to similar past projects) and minding the Cone of Uncertainty (carefully estimating software development time only after designs and technology research are completed).
Will you sign an NDA before meeting?
Like a VC firm, we don’t regularly sign NDAs given the number of people we meet and projects we build. However, certain projects require a level of confidentiality, and we’re willing to sign an agreement. These are usually for enterprise companies, government entities, or startups with serious amounts of IP. If you have just an idea or a prototype but with no users or traction, it doesn’t make sense to sign an NDA.
Do you take legal ownership of the software you write for us?
We don’t “own” any of the work we build for you. You do. That’s why you’re paying us. Be wary of development firms that try and sneak clauses and phrases into contracts that allow them to own the work and seek licenses from it.
How soon can you start?
For most clients, it takes 2-3 weeks after signing a contract and receiving a project deposit to kick off actual work together. During that phase, we’re reviewing any materials you’ve already created like user stories, wireframes, or product roadmaps or assessing the quality of inherited code.
Our Core Behaviors
In many companies, values are used to drive culture. We believe behaviors is a more appropriate word since values, if not acted on, are meaningless.
Be Kind. We think Andrew Bosworth best phrases what being kind actually means when he writes "Being kind isn’t the same as being nice. It isn’t about superficial praise. It doesn’t mean dulling your opinions. And it shouldn’t diminish the passion with which you present them. Being kind is fundamentally about taking responsibility for your impact on the people around you. It requires you to be mindful of their feelings and considerate of the way your presence affects them."
Be Transparent. Communication should be clear, frequent, and honest. Seek to understand before being understood - do your homework first before asking others for help or information.
Be Objective. We believe in creating an environment where open-mindedness is practiced daily. People are encouraged to express their opinions while being prepared to have them challenged by others.
Be Humble. No single team member makes or breaks the team. Being humble implies an understanding of your own strengths and weaknesses. Every mistake is either an opportunity to learn or to teach. Be patient with others and with yourself.
Get in Touch
If any of this resonates with you, reach out! Whether you’re a potential client and would like to work with us or an individual who wants to join our team, we’d love to hear from you.
We also partner with other agencies, Venture Capital firms, and Private Equity firms to drive our sales. For these types of teams, we provide technical evaluations for their portfolio companies, interview possible engineering candidates, and act as a technical sounding board for upcoming projects. In exchange, we seek referrals and introductions to new founders and companies.