Our Playbook is an in-depth look at our beliefs on software, our business, and how we operate as a company.
Our Playbook is a living document. As our company grows, our Playbook will change.
There are hundreds of thousands of companies that rely on software but do not necessarily sell software as a product or service. These tech-enabled businesses may not require full time engineering teams to operate and grow.
There are also thousands of companies where software is the actual product, and these businesses can scale quickly once finding product market fit. They often can't hire fast enough, and need additional design and development resources as they scale.
Whether your company is tech enabled business or you're busy starting the next Unicorn, there is immense value in working with a group of specialists like us that can help fill the gaps as you grow.
We help companies and entrepreneurs by specializing in three kinds of work.
1. Designing software through User Experiences and User Interfaces.
2. Reading and discussing software through discovery sessions and software audits.
3. Building software by writing and testing code.
We also help our clients launch their product, recruit designers and developers, and advise on future projects and initiatives. We consider ourselves your company's direct technical extension.
We're headquartered in NYC and are remote friendly. We work in our office and occasionally on-site with our clients. We like working with smart, entrepreneurial, and open-minded people and companies. You could be a very small organization, in fact, just yourself, or you could be a Fortune 100 company. What matters is how passionately you care about building a good software product.
We charge for our time by the week or month. With clients working with us on a retainer, we charge by the day. We don't work hourly.
We like working in teams. Our ideal team per project is 1 Software Architect, 1 Project Manager, and 1-2 designers or developers. We believe in pairing programming too. We like to pair on design, development, QA and all other phases of writing software.
We value our "headphones on" time. We work from home 1 day a week to ensure we have this time to do our best work without distractions.
We also value our meeting time together, and keep our meetings efficient. We meet each day internally to review our client work, and meet with our clients once every week or two weeks for an official Sprint meeting to demo work.
We are transparent with our communication. We create a Slack channel with each client, a shared project management board for writing user stories and discussing designs, and communicate daily about our work. We value communicating in writing and in public channels to remove friction and overhead with our team and clients.
We are often pitched equity in exchange for our 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 over ideas.
We are often asked to work on-site with our 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 bad habits, and we want to make sure we protect our people and process so we can design and write high quality code.
We're asked frequently about how we price our 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 on small scopes of work.
We have a refined process for writing software. We're not dogmatic about certain styles or practices like Agile or Kanban, or even types of programming languages or frameworks. We're conscious of what really matters when writing high quality software like tests, documentation, and communication between our team and our clients.
Developing great software is both a creative and process driven endeavor.
We encourage our clients and team to understand that software needs to be maintained. Good engineers know that there’s no such thing as “write once and repeat forever”. Updated third party libraries can break code. Cloud based services can crash. Bugs can even exist in common software programs for decades until they're discovered and resolved. Therefore, maintaining software costs time, attention, and money. It’s just as important to refactor code as it is to develop revenue driving features.
We write tests for all our code. And all kinds of tests too. Unit Tests, Integration Tests, and UAT.
We meet frequently to discuss all the software we design and develop. We've found meeting every week or two weeks with our clients is the ideal amount.
We prefer to meet face to face or over a Video call. We send out notes after each meeting documenting what was discussed. Tuesdays or Thursdays are the ideal days to meet, never Mondays or Fridays.
Our best clients are the one's that come to every Sprint and actively participate. Ideally, our clients become the project manager.
We use a mix of cloud providers to host the code we write, 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 monitor test coverage before shipping anything to production.
We're versed in multiple programming languages and frameworks, and are indifferent to any particular stack. We have our favorites, but are happy to work with specific tools if requested by our clients. We’ve worked with cutting edge technology as well as code that’s 10+ years old.
Below are our core values. We hold each other to these standards, and encourage our clients and partners to do so too.
We believe in being kind to each other. Kindness is not just being pleasant. 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 be mindful of their feelings and considerate of the way your presence affects them." - Andrew Bosworth
We believe in clear and frequent communication, with a conscious effort to do your homework before asking others for help or information - seek to understand before being understood. Being transparent implies honest communication, whether good or bad news is discussed.
Be Creatively Resourceful
We believe in creating an environment where creative resourcefulness is the standard - where open mindedness is practiced daily and people are encouraged to express their opinions while being prepared to have them challenged by others.
We believe in being humble when teaching, in understanding your mistakes and those of others, and when interacting with others outside of Lightmatter. Being humble implies an understanding of your own strengths and weaknesses, and that no single team member makes or breaks the team.
We partner with other consultancies, Venture Capital firms, Private Equity firms, and established startups and businesses to drive our sales. For these partners, we provide architectural evaluations for their portfolio companies and development help, interview potential candidates, and act as a technical sounding board. In exchange we seek referrals and introductions to new clients, founders, and companies. If you are interested in becoming an official partner, email us at firstname.lastname@example.org.