There are just a handful of software agencies which I took inspiration from for my own business, and Tighten was certainly one of those. A technically focused agency that also cares about humans, Tighten has worked with some well-known clients and are leaders in their chosen technology space - all this while having a relatively small team. When thinking of other voices I'd like to feature on Dev to Agency, Tighten was the first one that popped into my head.
Matt Stauffer is the co-founder and Technical Director at Tighten, and in this interview I have been lucky enough to pick-his-brain on all things agency related, and hopefully tease out some nuggets of insight that will be helpful for you on your journey.
Can you introduce yourself to the Dev to Agency readers?
Sure! I’m Matt Stauffer, partner and technical director of Tighten, an agency where we build custom web applications using Laravel, Vue, React, and other web-based technologies. I’m also an author, an online teacher, and I speak on podcasts, YouTube, and at conferences. I live in Atlanta, GA with my two kids and our dog and, when there’s not a global pandemic, like to bike and work with wood in my free time.
What was your experience before Tighten?
I started freelance web development in high school (my first paid client was in 2002), taking small projects for friends and community members. At times I worked full time in tech, starting out as an intern at a video production company during summers in high school and later interning as the sole web developer at a .NET shop. But even when I wasn’t working in tech full time, I was still taking on small freelance projects.
After college I kept up my freelance work but my primary job was a non-technical role at a non-profit, where I worked for five years. After five years, I moved to Chicago and decided to go back into full-time programming, so I tried to pick up enough clients to freelance full time.
How did Tighten start?
In Chicago I worked from a co-working space, and I made it my goal to meet every person there. I’d been working from that space for months and had met everyone except one guy who worked in a closed office all the time. One day I was staying late teaching an old friend about HTML5Boilerplate, and that one person I hadn’t met opened his office door and started heading out. He stopped by my desk and said something like, “Sorry to interrupt, but are you looking for work? I’m trying to hire someone to work in exactly the technologies you’re talking about here for a project.”
"He was a programmer tired of keeping up with the latest technology who longed to run a business, and I was a programmer tired of trying to get new business who just wanted to dig deep into technology"
We worked together on that project and then many more, and when I had to move away from Chicago for family reasons, that guy - Dan, now my business partner - proposed we start a company together. So, we did. At first, it was just the two of us; he was a programmer tired of keeping up with the latest technology who longed to run a business, and I was a programmer tired of trying to get new business who just wanted to dig deep into technology.
How do you think yourself (and co-partner Dan) both being software developers influences the company?
One of our founding ideas behind how we want to run the company has always been “We want to build a company we would want to work for.” Much of what guides this is just humanity - care for people’s personal lives and family. But some of it also comes specifically from our experiences as programmers. For example, many programmers have experienced the miserable expectation to deliver work at a pace that was promised by some non-technical salesperson. That doesn’t happen at Tighten, not just because Dan and I are technical, but more importantly because it’s a key goal for us not to reproduce that dynamic.
Can you remember how Tighten found its first clients, and what was your strategy to find them?
Since Dan and I had both been freelancing for over a decade, our first clients were all our existing clients and networks. We relied heavily on word of mouth from our existing networks and client base as we slowly grew the company.
What challenges did Tighten face in the early years, and how did you deal with them?
We faced a lot of challenges, but I think the hardest had to do with interpersonal issues. Dan and I are both naturally conflict avoidant, and within our first few years we had to fire an employee who was endangering our biggest contract and managed to completely miscommunicate client expectations on a fixed-bid project.
The end result was me working 60-80 hour weeks for a few months. Not fun, but we survived it"
This was a miserable experience. Firing someone is not fun, so we endured the problem much longer than we would’ve wanted to, and at first didn’t confront it as directly as we should’ve. It took growth and perseverance to both eventually take the right step, but also to do so feeling like we had given a fair chance for the employee to improve before firing them. And when we realized how out of sync our expectations were with our client’s expectations, we had to decide whether we could afford to be stubborn or whether we had to cave to the client’s expectations. In this circumstance, we realized that it had been our fault in poor communication, so the end result was me working 60-80 hour weeks for a few months. Not fun, but we survived it.
Did Tighten pivot at all over the years? (e.g. change focus)
We’ve always been a consultancy. The only big focus shift we’ve made is from a shop that is scared to embrace a particular tech stack (“we just make web apps, using whatever tech stack makes the most sense”) to one that recognizes that we can both work broadly across tech stacks and attach ourselves to the technologies we enjoy the most. Now, we’re known as a Laravel shop, although we are also proficient and reputable with React and Vue and a few other technologies.
What do you think sets Tighten apart from other agencies?
Tighten, first and foremost, cares about people. Dan and I care first about our families and each other, but very immediately after that come our employees and their families. We create policies and practices that honour the individual, that respect the importance of family and mental health, and that encourages honesty, integrity, self-care, and personal and professional growth.
But we also care deeply about our clients and customers. Our most common way of working is with a team or a founder who doesn't just need an application or tool built - they also need to learn or to have their teams learn. We work closely with founders or team leads to help them better understand what they need and how best to deliver it, and also work with their teams to help them level up.
"We trust our employees; they trust us; we trust our clients; they trust us"
And, as Dan is quick to point out, all of this relies on trust. We trust our employees; they trust us; we trust our clients; they trust us. We don’t have processes that rely on narrow scopes and supervision and legalism; our process and relationships are based on openness, trust, communication, and shared goals.
And, very importantly, none of this is viable unless we have the absolute best people and help them grow. So, in all this, we work to hire brilliant people with incredible capacity for learning and teaching and growing and problem-solving. Whether or not they know our tech stack, every person who joins our team, from apprentice to lead, possesses those characteristics, so we can confidently say that, when we ask for clients to trust us, it’s not a decision they’ll regret.
What practices does Tighten follow to ensure technical quality?
We give our programmers 20% time on Fridays to work on internal and open source projects and continue their education. We share our learnings in Slack and Slab, and in monthly lunch and learns. We assign two devs at a time to a project and everyone is assigned only to one project at a time. We encourage pair programming and require all code to have been seen by two programmers, whether via pair programming or code review. We write automated tests for most of our code. And we often write and build new standards and specs for any easily-standardized quality controls.
What are 3 things you would tell a developer who is thinking of starting their own software agency?
"Don’t start a programming business because you love programming; do it because you have some reason to want to start a business"
1️⃣ Don’t do it. But, if you read that and you’re still planning on it, I warned you.
I always tell people who love doing a thing: the worst way to continue in that direction is to start a business doing that thing. Why? Because you’re now tasked with running a business and you’ll eventually hire people to do the thing you love. If your greatest joy is in making websites, starting a business is the worst thing you could do, and the easiest way you could limit your time available to code. Don’t start a programming business because you love programming; do it because you have some reason to want to start a business.
2️⃣ Don’t do it alone.
I would’ve lost my mind years ago without Dan, and Tighten wouldn’t be at all what it is today without him. Running a business alone is lonely. I’ve talked to friends who do it and they don’t recommend it.
3️⃣ Pay for an accountant and a lawyer on day one.
Never try to handle that stuff on your own.
I hope you enjoyed this interview with Matt. If you did, please hit the Subscribe Now button below for more insights on how to start and run a software development agency.
If you have any thoughts, feedback, or questions, feel free to reach out to me on Twitter @chrisrickard