pietrorea's blog

“No Man Is an Island” or “Building Complex Systems at Sweetpea”

August 19, 2016

One of the first things I noticed after striking out on my own is how much my old employer did on my behalf.

I’m not talking about the obvious things like pay and benefits. Instead, I’m talking about the (sometimes invisible) support structure in mid-size to large companies.

Doing Everything

A job title usually comes with a well-defined area of responsibility. Software engineers focus on software engineering. Lawyers focus on legal matters. Accountants focus on accounting. As tired and overworked as you may have felt at your old job, you never had to do everything.

When you strike out on your own, the default state of the world is that you have to do everything.

If you don’t follow up on an invoice, you won’t get paid. The internet is down? Can’t yell at IT to fix it anymore. You have to get on your hands and knees and rewire your Ethernet connection.

“Corporate accounts payable, Nina speaking. JUST a moment.” - Nina, Office Space

As it turns out, Nina from Office Space had an important job. Nina and the rest of her colleagues (well, maybe not Milton) were providing crucial internal services to the organization so you could keep going to work every day.

The 3 Areas of An Effective Company: Core Competency, Front Office, Back Office

As I made the move to working for myself, I struggled to wrap my head around these different roles and how they worked together.

The more I thought about it, the more I came to think of them as three distinct areas: the core competency, the front office, and the back office.

1. Core Competency

The core competency differs between companies. It’s your secret sauce—the “it” factor that differentiates your company.

As you can probably tell, this division oversimplifies the world a bit. Sometimes the secret sauce is not a particular set of functions but rather the interplay between one or two functions, or even structural differences that have taken you years to build.

The core competencies for Sweetpea are engineering, design, product management, project management and QA.

2. Front Office

I see the front office as what moves the core competency forward. It includes sales, marketing, PR and business development.

In a software agency, you may have a stellar core team of software engineers and designers, but if no contracts are coming in, your team of all-stars will just be sitting around doing nothing.

Back Office

Ah, the back office. It’s sometimes so easy to write off these activities as “overhead” but they’re crucial to keeping you afloat. This includes HR, finance & accounting, legal, employee services and IT.

Not only are these important tasks, they are easy to do wrong. For example, I am perfectly comfortable doing many of the functions in the “Front Office” but I am not as comfortable with some of the back office tasks.

Why? Some of these functions—like legal and accounting (even IT, for non-technical business owners)—should be performed by trained professionals.

Building a Complex System

As I build the different areas for Sweetpea, at first I was intimidated by all the things I needed to assemble.

It may seem like my background as a software engineer is almost useless for many of these activities. However, I found there were plenty of lessons from software engineering that helped tremendously with the other areas of the business.

Isn’t a company just a complex system, embedded in even bigger complex systems (societies, legal systems, etc)?

I think so, which is good news for me, since I’ve been working on complex systems for years as a software engineer.

I understand things like throughput, reliability, failsafes and single points of failure. I know about modular design and interfaces that can talk to one another. Thinking about these concepts is second nature for an experienced software engineer.

As I’ve learned, business systems are very similar.

With this in mind, I now think of Sweetpea Mobile as an API fronting a complex system, and it’s not so scary anymore.

I’ve thought a lot about Sweetpea as an API. In particular, I’ve tried to create a well-defined API by being deliberate about my target audience and the services that I provide. I’m planning on writing more about that later.

Asking For Help

One of the main points of this post is that there is too much to do for one person.

So, what did I do about that? I had already been working with VA based in the Philippines for about eight years now. She helps me with bookkeeping and other administrative work.

Since there’s so much to do, I’m growing the team by bringing on a second part-time VA. She is based in Texas, so we’ll be able to work concurrently.

This is a move so that I can better balance ongoing client work and business development to move Sweetpea forward.


Pietro Rea
Written by Pietro Rea, a software developer, team lead and author living in northern Virginia.