Totally normal phase, you’re actually doing fine. If the workflow runs but feels messy, that usually means your logic is growing faster than your structure.
How most seniors think about it is top-down. First, be super clear what the final output should look like, then work backwards. Break the flow into small blocks (cleaning, logic, transforms, output) instead of solving everything in one chain.
For nulls and conditions, don’t “patch” issues later. Handle them early and explicitly so downstream tools stay simple. If you ever feel like you’re adding the same workaround twice, that’s a signal to rethink the logic.
Clean and scalable usually means boring and readable. If someone else can open your workflow and understand it in 30 seconds, you’re on the right track.