Your question is Code Review Feedback. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
Dropbox's file sync client breaks large files into content-addressed chunks so identical chunks are only ever uploaded once. The function below is a new engineer's first pass at the chunk upload path, and it's up for code review before it ships.
import hashlib
uploaded_hashes = set()
def upload_chunk(file_path, storage_client):
f = open(file_path, "rb")
data = f.read()
chunk_hash = hashlib.md5(data).hexdigest()
if chunk_hash not in uploaded_hashes:
storage_client.upload(chunk_hash, data)
uploaded_hashes.add(chunk_hash)
return chunk_hash
upload_chunk is called once per chunk file, from many worker threads in the same sync process, and this same client runs as multiple parallel processes across a user's machines. Review this code and give feedback: what would go wrong in production, and how would you address it?