Business

Business

Business

Our company structure

Our company structure

Our company structure

January 23, 2025

Subscribe to
our newsletter

Subscribe to
our newsletter

Appolica is a software development agency.

We work with startups and the way we build things is fundamentally different compared to traditional agencies.

Most of them operate like code factories - they develop features without knowing if anyone will ever use them. We build features that resonate with existing users. We focus on impact and we don’t care about the lines of code we’ve delivered, as they don’t equal value.

We function like a product company - we work in small, autonomous teams that can test ideas, learn from feedback, and iterate fast. In order to pull this off, we needed to (re)organise ourselves in a unique way.

Here’s our exact playbook and the core principles that guide us forward.

1. Build what matters

We don’t build products to satisfy founder egos or a CTO’s architectural dreams. We create things that end users genuinely need and would get value from.

That’s why we often start with simple, cost-effective solutions to validate whether a feature or idea will make an impact. If it doesn’t, we move on quickly.

2. Everyone is cross-functional

Delivering what matters means working on the most important tasks today - not in three months or whenever we have the “right” engineer available. In order to prioritize and act without delays, we are cross-functional by default.

Our engineers are flexible and can adapt to and deliver what’s needed (whether it’s mobile, web, or backend work). You can read more about how we define cross-functionality here.

3. Ship fast

Predicting user behavior is impossible - we don’t do it.

Instead, we test assumptions with experiments. We deliver features to users quickly and see how they respond.

The more we ship, the more we learn - we find out what users love, what solves their problems, and what doesn’t. Speed is critical because every release brings us closer to better solutions.

4. Decisions are made by doers

Decision-making bottlenecks slow everything down. People doing the work are the ones to make the call. This eliminates unnecessary waiting - no approvals, no delays because someone is out of office. If you’re executing, you decide.

5. Information is open by default

Making good decisions requires full context. That’s why we ensure transparency across all projects, customer insights, and even past mistakes. Everyone has access to the information they need—good or bad—so they can make informed choices.

6. Builders focus on what they love

People perform their best when they work on what they love. Those outside the core delivery teams are responsible for removing friction and enabling builders to focus on their craft.

We also invest in top-tier tools and create processes to streamline workflows, making work not just productive, but enjoyable.

Small, self-contained delivery teams

Our teams are autonomous. They are small “business units” of up to 10 people:

  • a tech lead

  • a product manager

  • up to 7 cross-functional engineers

  • an extra product manager who supports the team.

This structure is simple, and we’ve designed it like this to make sure we’re fast and we can take a product from 0 to done.

Additionally, each delivery team operates like a separate company. Here’s what this means:

  1. Teams choose projects. They get to pick which clients or products they want to work on. They can set their own prices, negotiate timelines and roadmaps, and decide if a project is the right fit for their skillset and interests.

  2. Teams allocate people. Who works on what is decided internally. If someone’s passionate about a specific domain/industry or wants to try something new technology-wise - that’s fine, no top-down mandates.

  3. Teams hire and fire. If a project needs specialized skills, the team recruits. If it’s not working out with a teammate, they make the tough calls.

  4. Teams set salaries and measure performance. The tech lead and the product manager handle performance reviews and compensation for all team members.

  5. Teams are responsible for business goals. Appolica’s executive team defines broader targets (like revenue or growth). Each team just needs to contribute to them - figuring out how is left up to them.

Three specialist teams that help everyone move faster

We also have three specialized teams who don’t sit inside delivery units. Instead, they act like expert resources, stepping in when needed to accelerate specific parts of a product’s lifecycle.

After some debate, we chose to keep them separate from our main delivery squads because it gives us more flexibility: each team can handle its workload independently and step in quickly if someone’s out. It also helps us shuffle people around without disrupting core delivery.

The main downside is that these teams lack full context on customer and product goals, so we need extra coordination. For now, we think the benefits outweigh the drawbacks (but we’ll keep reassessing).

Design

Design work can be unpredictable - some projects need a ton of it; others need hardly any. Our designers also handle internal tasks, like updating our website and creating marketing materials.

Keeping them together (rather than scattering them across delivery teams) gives them the flexibility to support each other, swap assignments, and maintain a consistent design vision. When a delivery team needs design help, they reach out to our design lead, and everything stays streamlined.

Low-code/no-code development

While our engineers do low-code and no-code development, we rely on a dedicated team of experts for rapid prototyping and idea testing. If a delivery team needs a quick proof of concept, they’ll do it themselves—but for bigger, more complex setups, they tap the low-code/no-code team to get results faster.

Quality assurance (QA)

Every delivery team is responsible for delivering high-quality products and test their work. But to back them up, our QA team steps in so they can simulate a real user scenario (just somebody who is going to test without a lot of context).

They do exploratory testing and check complicated scenarios and edge cases. This shared resource ensures the final product meets (and hopefully exceeds) customer expectations.

Non-executional roles

The purpose of our non-executional team is to enable our delivery teams to excel. We keep this group lean, with one person per operational function, each laser-focused on their role. Here's how we make it work:

HR

No endless paperwork and bureaucracy. We’ve automated most administrative tasks and reduced manual processes to the bare minimum. The focus is on creating a seamless environment where people feel good and thrive.

Recruitment

Our recruiter’s mission is critical: to find top talent and ensure every hire aligns with Appolica’s culture. Their hiring process mirrors the experience of working here, enabling informed decisions for both candidates and us.

Operations

We automate anything that’s repetitive, boring, or doesn’t require human creativity. This role exists to remove friction, freeing up the team to focus on what they love and what they’re great at.

Marketing

Marketing ensures our brand resonates with the right people: potential clients, founders and future team members. The goal is to deliver clear, compelling messages to the right audiences, turning them into collaborators, partners, and advocates.

Engineering manager

With tech as our largest department, we invest heavily in keeping it ahead of the curve. Alongside the CTO, the Engineering manager supports our internal tech leads, ensuring they’re equipped to guide delivery teams and stay on top of emerging innovations.

Founders

As founders, we’ve divided our responsibilities into three pillars:

  1. Identifying startup founders—whether for our venture studio or as clients.

  2. Understanding their products and finding the paths to success.

  3. Helping them execute their vision through the right technology.

In summary

We’re not the best fit for clients looking for a body-shop type of experience with dozens of devs cranking out code just for the sake of it.

We care about business impact, user satisfaction, and honest-to-goodness product love. By structuring ourselves in small, autonomous delivery teams, we can move at the pace of startups, bringing innovation to our clients and, most importantly, their customers.

After all, the only code that counts (for us) is the one that actually gets used.

Continue reading
Continue reading
Continue reading

The latest handpicked blog articles

The latest handpicked blog articles

The latest handpicked blog articles

Let's build your product together.

Ready to start your project? We're here to help.

Let's build your product together.

Ready to start your project? We're here to help.

Let's build your product together.

Ready to start your project? We're here to help.