We’re hiring!

Yellow Lotus EliseWe’re a Seattle-based team looking for an experienced software developer. This is a paid contract position with possible opportunity for continued work.


  • Strong knowledge of C++
  • Familiarity with Qt version 4
  • Experience producing attractive visualization products that are intuitive to use
  • Comfort collaborating, as well as comfort with minimal oversight

Note: Developer will use own equipment and work space. If you’re looking for crazy startup perks like a fancy pancake maker, we’ll have to ship you one.

If you’re interested, please send us a note at hiring@offcamberdata.com

Please include some sort of portfolio work, or maybe a link to your profile on Stack Overflow or github.

We know that often you can’t share your past work, and not everyone has the time to be active on a site like Stack Overflow. If that’s your situation, please send us a solution to this simple programming problem:

You have a linked list of buffers. Every element in the linked list is defined like this:

struct Buffer {
    Buffer* pNext;    // points to the next buffer in the chain, or NULL if this is the last one
    char* pBuffer;    // points to the raw data to be copied to or from
    size_t length;    // the length of the buffer at pBuffer

Write a function that can copy the data in one linked list of buffers into another linked list of buffers, without changing the structure of the buffers. Both the source and the target buffers are already allocated for you. They do not all have the same size. In fact, some may have a size of 0, and in particular, the source and target buffers may not be the same length, so the data will be split differently. There are some common error cases that may be encountered, and they should be handled in some predictable manner.

Please write a function signature and the function that performs the copy. It does not have to be a complete running program.