Another important thing is to remove interruption you control. I only check email once per day, reject or "forgot" to attend meetings I deem not important. I gave up on some social aspects like small talk or water cooler chats. I would interrupt people if they get sidetracked too much.
I am doing very good as IC but I would never get promoted in current role.
In my opinion the biggest productivity killers in dev project:
1. Special/overhyped architecture
2. homemade tools and anachronism
3. in house frameworks
4. Lack of testing
5. Red tape and compliance* Turn off notifications on Slack, e-mail, etc., and only check those things periodically throughout the day. If you're cruising on some new feature, don't switch over to Outlook. Keep cruising.
* Don't be afraid to say "sorry, I'm in the middle of working on this thing -- I will follow up with you later." You are the only protector of your time. Everyone else will steal as much as you allow them to steal.
* Wear headphones. People are less likely to interrupt when you wear them.