Notes on running a Technical Consultancy

Corey Simmonds and Alex Mitchell, who do technical consulting with 0260 Solutions, generously gave a friend and me an hour of their time to discuss the business and technical aspects of running 0260. I've prepared notes from our conversation with their insights in the following areas: cash on hand, working with people, becoming "T" shaped, choosing tools, and working with clients.

Conversation Notes

  • Cash on Hand: First, you need startup capital, or money to live on while establishing reputation in business. Don't start a business and quit your job all at once, start on the side while still having a day job and build up a network and name, as well as capital. Doing business is very expensive, especially business insurance, contract review (1,000-1,500 dollars per contract in legal fees), and employee expenses add up. Not only are these expenses substantial, they generally occur weeks or months before associated revenues.

  • Working with People: When choosing a business partner, it's important to know the person well so that you know their meta-processes. A meta-process is like the second derivitive of a function, it's the magnitude and direction of change of change in a person. Everyone is constantly changing, and it's okay or even advantageous to align yourself with someone at a different position or velocity than you if you can match each others' accelerations.

    • In a partnership, you divide work between the two people by capability and capacity. At each growth point in your company, evaluate that division to make sure you're working effectively.

    • If your team is small and you know them well, it's easy to contextualize the work to the person. Form teams that you can rely on and come to know well, but always build in buffers to your estimates of their timelines.

  • Becoming "T" Shaped: As both an engineer and a business person, you want to identify your areas of broad knowledge and your areas of deep knowledge. Work to cultivate both the breadth and depth of your knowledge as appropriate by figuring out what areas are relevant to but outside of your knowledge and developing opportunities to work in those areas. If you're passionate about something, bring it into your world and skills and communicate your passion for it. Clients pay for competence (you can do the work) and passion (you want to do the work, you won't give up on the job).

  • Choosing Tools: The earlier you are in your consulting journey, the better it is to deliver to clients using tools you're familiar with. Don't use new tech or processes in production for their own sake, but reserve time to experiment with them for your own growth as determined by your own interest.

    • When thinking about programming languages and frameworks, architecture, and hosting, move to production using tools that you would be able to fix bugs in at 3 A.M. if a client calls because the site is down and they don't know why.

    • Larger companies more often self-host, but don't self-host unless you have to. A SaaS and low-maintenence hosting provider budget (e.g. Netlify over AWS S3, SaaS Jenkins over self-hosted Jenkins) will for most teams and small to midsize companies free up developer time to focus on areas where the company uniquely creates value, more than justifying the cost of such tools.

    • Cloud providers are similar but not identical. Google Cloud has a second mover's advantage in quality of life features but most things can be built on any platform, as demonstrated by Alex's experience with projects migrating services from one platform to another.

    • Both microservices and monolith architectures have their uses. Smaller teams and projects probably want monoliths. Microservices require substantial architectural consideration from both a technical standpoint and a business standpoint (who is responsible for what)?

    • Clients may ask you to work with tools you are not familiar with. Freely disclose the limits of your knowledge to them, and they may still want you to take the project, but perhaps with modified scope or terms. Use these as learning opportunities and rely on your "T" abilities to use the unfamiliar tools effectively.

  • Working with Clients: Finding clients is difficult at first but gets easier once you have a reputation established. It's better to operate in a specific area or niche than offer generalized services. For example, 0260 Solutions focuses on analytics tools and prototyping or building out applications for a client base of late seed or A-round startups looking to accelerate their product development. Once you have an operation going, time doing successful work in a network leads to trust leads to inbound opportunities.

    • In client communication, better information is better than more information. Have confidence in concise communication.

    • It's a privilege to be able to say no to potential clients, and one that early-stage businesses and businesses without good cash reserves may not have. Avoid working with clients who don't know what they want and won't listen to the advice they're paying for. Avoid working for clients whose needs don't align philosophically with the kinds of problems you started your business to solve. Refuse to work for clients on moral grounds whenever necessary. By doing so, you improve your success rate by only agreeing to work on projects where you can legitimately deliver value and progress your company.

    • Clients sometimes ask for help when they need direction. Small scope (one to two week) needfinding assessments are a great way for both you and your client to limit risk and explore the client's needs. You lend your technical ability (at your full rate, pro-rated) for a shorter period of time than a normal engagement to work together to develop an understanding of what the client actually needs, and then either agree to do the work or provide recommendations for how the client could get the work done elsewhere.