I’m a hardware engineer with > 10 years experience and a few promotions under my belt. What’s worked for me is reframe the question as personal branding rather than self promotion.
What image do I want to project to my peers and managers? Hardworking, gets the job done and more, delivers results, problem solver, someone who not only identifies inefficiencies but also comes up with a solution, team player, keeps up with industry trends. My actions and words come together to create my brand.
I keep an eye on my resume and make sure I work on interesting projects.
I suppose this advice makes sense when you have a job. Self promotion is different when you are looking for a job. I’ve gotten jobs through my connections who have seen my work, but I know more aggressive techniques are needed to get a job without connections.
Also, I don’t work in Silicon Valley so perhaps more direct self promotion techniques are needed there.