contractors management

Working with contractors

Recently, we’re getting ready to engage with contractors to help us drive a major initiative forward.

Behind the scenes at work, here is a view that happens before contractors write any code.


It starts by figuring out what company you’ll be working with. 

Your company might already have a pre-vetted list of vendors, but we reached out internally for recommendations in our case. After meeting with a few representatives, we settled on a couple of companies we liked.

To decide on one of them, we created a weighted decision matrix. We rated both companies in pricing, availability, expertise, onboarding times, size, and a few other attributes essential to our decision-making criteria. 


It is time to make things official with a company in mind. 

On our end, we have legal counsel to help us draft the needed documents, but you can reach out to the vendor and ask them to send you the first draft instead.

You can expect two documents, a Master Service Agreement (MSA) and a Statement of Work (SOW).

Please think of the MSA as the contract allowing both companies to do business with each other, while the SOW will go into the specifics for each engagement you have with them.

As an example, the MSA could contain non-compete, non-solicitation, or security requirements applying to all contractors. On the other hand, the SOW will have working hours, deliverables, pay rates, and additional job-specific information.

It is common to have one MSA and one or more SOWs.

Selecting contractors

With all the legalities in place, it is time to start figuring out who’ll be doing work for you.

Whether it is a long-term engagement or work with a well-defined deliverable, you will need to determine the technology stack and the level of experience expected.

The vendor typically does some initial candidate vetting and will present a few options for you to select from.

It is on you to further develop a process to validate that candidates meet your expectations.

That means a quick engineering assignment that we then review internally.

Product engagement

With a team ready, they’ll need to know what they will be working on. This is where your product manager comes in.

Just like your team needs guidance on the product and an understanding of priorities, so will your contractors.

Engineering engagement

With good direction, your contractors will now be ready to start work, so we’ll need to get deeper into specifics.

Think about items such as level of access to your repositories, reviewing pull requests, CI/CD checks, release strategies, getting the code working locally.

In reality, this part doesn’t look much different from the engineering onboarding your employees might go through.


Engaging with contractors is an excellent way to augment your workforce and make further progress on your initiatives.

But to ensure a successful engagement, it helps to:

  • have a procurement process to land on a suitable partner
  • understand the standard legal contracts used
  • have a way to examine engineers for your required expertise
  • please provide them with the necessary support to seamlessly work on what is important to you.

Contractor icons created by juicy_fish – Flaticon

management Time management

My managerial framework

When I first started as a manager, I didn’t have a role model, classes, or even a good list of books to read and learn about management.

I made a lot of mistakes (sorry everyone that worked for me then) but I also learned a ton in the process.

Next, I’ll introduce a very simple framework that has helped me tremendously over my career

Keystone habits 

I first learned about keystone habits by reading the power of habit.

Since this is not a blog post about book summaries, I’ll leave you the homework of reading it on your own.

The key takeaway for me was that not only could I engage in life-changing habits, but that I could help my teams do great by introducing keystone habits

For example, introducing a test-first mindset has done wonders for my teams, while calendar blocks is another keystone habit that has significantly reduced interruptions for everyone I have worked with.

Team accountability over personal accountability 

I brought this from my military days, where every action we take can cost my partner’s life.

Since we are all accountable not only for our work but for each other’s, I celebrate team accomplishments over individual ones.

When mistakes happen, I look at them as opportunities to learn and improve on as a team, after all, nothing happens in a vacuum. That engineer you think introduced the bug was let down by a lot of people.

Starting with their fellow engineers for not picking up on the error or pairing more, the product team for not clarifying the requirements, the manager for not providing enough learning resources, infrastructure for not having a good way to deploy without releasing.

I could go on but the point is that holding the team accountable will yield much better results than any individual accountability system could.

Time management over working late 

After doing 12 hour days, working on weekends, skipping on vacation time, and not seeing any actual gains from it, I realized that time management was one of those keystone habits that I needed to introduce everywhere I went.

The premise is simple, work on time blocks and ruthlessly prioritize what goes into those time blocks.

Blocking time removes distractions, forces focus on the task at hand, and leads to a much happier life.

By the way, for a more detailed insight into avoiding distractions, take a look at “How to deal with interruptions

Constraints over abundance 

Having constraints in place spark creativity, set good boundaries, and help get the most out of your resources.

In project management, work in progress limits keep your team working at an optimal pace without fear of burnout.

Constraints in resources such as hardware and software help you get a better return on investment on them.

Concentrating on one task at a time yields much better results than having to constantly shift focus.

Time constraints foster a sense of urgency that comes very handy when feeling stuck, such as writing a blog post on your personal management framework

Overall, I have found that having constraints is extremely helpful to me and my team.

Simplicity over complexity 

This is usually easier said than done, especially when it comes to architecting new systems or defining a new process for a team.

The idea here is that simplicity is easy to replicate, easy to distribute, and easy to follow.

So when given an option to follow multiple paths, the easy one will always win in my book. 

Value the individual

Not to contradict my team accountability statement above, when it comes to interacting with my team, blanket approaches to specific situations don’t work very well.

What I am talking about here are things such as communication preferences, background, career goals, coding styles, pairing preferences, etc.

Learning and valuing the vast difference in character from all my team members is one of the best ways for me to show that I care about them and that I am fully vested in their success.


Introducing keystone habits, holding the team accountable, managing time, introducing constraints, keeping it simple, and valuing the individual is my simple recipe for managerial success.

what is yours?

Icons made by Eucalyp from www.flaticon.com