Sign In

Marco Slot

Software Imagineer

Marco Slot is a highly accomplished software engineer known for his work in building Citus, an extension for PostgreSQL that transforms it into a high performance distributed database.

His educational background includes a Bachelor of Science (BS) in Computer Science from Vrije Universiteit Amsterdam, a Doctor of Philosophy (PhD) in Computer Science from Trinity College, Dublin, and a Master of Science (MS) in Parallel and Distributed Computer Systems, achieved cum laude at Vrije Universiteit Amsterdam.

With a wealth of experience in the industry, Marco has held key roles such as Principal Software Engineer at Microsoft, Principal Engineer at Citus Data, Founder at Trosc, Postdoc at Trinity College Dublin, Software Development Engineer at Amazon, Software Development Engineer Intern at Amazon, and Teaching Assistant at Vrije Universiteit Amsterdam.

Highlights

Aug 5 · linkedin

One of the things I try to do as an engineering leader is to break down large, complex projects into a tree of individually useful subprojects that each result in something shippable, and have enough merit on their own to be a priority.

Creating trees of "small" improvements has many benefits:

  1. lets you focus on a small number of well-scoped tasks
  2. forces you to polish early on which reduces hidden technical debt
  3. gives you feedback on what you're building early, while you still have most of the context
  4. allows you to adjust your course in between subprojects based on new insights without losing progress
  5. creates a framework for engineering decisions and code reviews: bias for shipping but prepare for the future (keeping things simple hits both)
  6. keeps the organization engaged through a combination of frequent tangible progress and long-term vision

Of course, it's easier said than done. You need to find subprojects that balance the needs of the target customer, upcoming technical challenges, organizational priorities, the capacity of your team(s), and maintains steady progress towards long-term goals. You'll also need to obsess over keeping the wheel spinning.

Subprojects should be no more than ~3 months. After that the chance of good outcomes goes down considerably. Too much hidden technical debt is accumulated, things take much longer than expected, the organization loses interest, the team loses focus, and the end result is no longer in line with company priorities.

A lot of the time, delivering a big feature through three subsequent 3-month projects is going to be faster and much more likely to succeed than trying to do one 6-month project.

I get most excited when I see the opportunity for building a customer-facing feature that can simultaneously serve as infrastructure for other features on our road map. They are easy to prioritize, move the needle on the product, and reduce the complexity of the next subproject. If you can build a series of those you can achieve incredible velocity.

tl;dr release early, release often, but deliberately.

#softwareengineering #programming

Marco Slot
Add to my network

Location

Haarlem, North Holland, Netherlands