Your best strategy no doubt depends on who you are and who you want to be. Do you want to work on a wide range of projects, or stay focused on a niche, like embedded systems for hardware control, audio and music DSP, 3D graphics, games, web sites, ops and infrastructure, machine learning, algorithms for distributed systems, ...? You'll want to build a case for your capabilities and experience through a portfolio of school projects, open source contributions, demos, etc. In your niche area or programming language eco-system, there are likely to be slack channels, news groups, mailing lists, and blogs, so become a part of a community, helping when people ask questions, fixing bugs people care about, or blogging examples and common pitfalls.<p>Imagine you are working at a games company trying to hire a contractor to help with 3D audio programming. The ideal candidate is probably going to have a portfolio that includes 3D audio programming, or at least audio and DSP experience.<p>Personally, I'd focus on building valuable expertise in a community that includes the kinds of people and businesses for whom you would want to work. There is always demand for skilled engineers who deliver.