The contractor who posted that question is not an idiot. The real issue is that their data tools trained them to think in one mode, data structures and algorithms, when a more natural solution existed in a dataframe. That gap is not a personal failing. It is a symptom of working with tools that force you to translate your problem into their language before you can solve it.
Look at the problem again. You have user IDs, timestamps, and a windowed count. In a spreadsheet or a dataframe, that is a rolling aggregation: sort by user and time, then check if any three actions fall within a ten-unit span. The contractor's instinct to reach for a DSA approach is understandable because traditional spreadsheets handle row-level operations poorly at scale. But a dataframe handles it natively. The disconnect comes from years of assuming that your tool cannot do what you need, so you pre-process the data into a form it can digest. That assumption is the limit.
What this story reveals is that the boundary between "data work" and "engineering work" is artificial. The contractor has ten years of experience and never saw data recorded as tuples because their environment shielded them from raw, unshaped data. That is not a critique of the contractor. It is a critique of tools that abstract away the messy reality of data until you encounter a format you do not recognize. The best tools do not ask you to choose between a Python loop and a dataframe. They let you start with the dataframe and reach for the loop only when the problem genuinely requires it.
The practical takeaway is straightforward. If a simple question about user actions within a time window feels like a gotcha, your toolchain is adding friction, not removing it. You should not have to feel like an idiot for encountering a tuple. You should be able to load that list, apply a rolling count, and get your answer in seconds. That is the standard we should expect from modern data tools, not because tuples are common, but because the question itself is common. The tool should meet you where you are, not the other way around.