Selling yourself as a developer

Building a career in software development probably means you’ll work for several or many companies, either by necessity or because you want to improve your current position. To find those new positions, you have to sell your skills as a software developer. Selling ourselves is something most of us don’t feel comfortable with. It’s not just about “getting hired” or “finding a job”, you might achieve that by just contacting several recruiters. I’m sure they will have multiple open positions for you. You will have to go through some gruesome multi-stage interviews, with technical assignments and stressful on-the-spot problem solving. The offer you’ll get probably won’t be on your terms. But you’ll find a job quickly, if you’re not too picky.

But wouldn’t it be nice if opportunities come to you? That you’ve already convinced your future employer before even having talked with them? That you have multiple options lined up whenever you want to make the jump to new? Then read further to learn about my strategy for selling your skills.

Marketing your skills, using a passive sales pipeline

You need to set up a passive sales pipeline. Trust me, it’s not as boring as it sounds. Actually, it will solve many of the things you hate doing and bring interesting opportunities towards you. Interesting companies might discover you organically, companies you’d otherwise never would’ve known about. And trust me, there are many “hidden gem” companies out there working with interesting technologies and solving challenging problems.
On top of that, it might avoid many of those gruesome interview processes. Instead, you’ll have more friendly interviews which result in a discussion between equals. They will already have experienced your expertise before even having spoken with you, so they’ll only want to confirm their intuition about you, so that they can haul you in as quickly as possible.

Setting up a passive sales pipeline comes down to steadily exposing your craftsmanship in public with evergreen resources. Things you’ve worked on which remain available in public, which remain relevant to promote some aspect of your skills, and which indirectly might bring you into contact with others in the industry. It’s about providing value to your audience by showing what you do best, being a developer. Value, which will convert into opportunities.

You’ve probably noticed people with a public presence look more knowledgeable than their offline counterparts. They are more regularly recognized as the leaders within the field. This, of course, isn’t necessarily true. I’ve worked with many extraordinary developers without a public presence. They are doing their thing hidden within companies and have a reputation within a relatively local community. But those with a public presence have their knowledge and opinions out in the open, on open source projects, Twitter, newsletters and blog subscriptions. This makes them look more knowledgeable.

When you’re not in the position of building something that is publicly available, but are working on software for internal usage, then NDA’s (non-disclosure agreements) are your worst enemy. They’ll limit your ability to show what you’re capable of. Sadly, they’ve become the norm, and it’s something we’ll have to live with. So we need to find other ways to display our skills. So let’s dive in and see what these evergreen resources can be.

Contribute to open source

Contributing to open source is a great way to show your technical capabilities. But when you get more involved in a project, or even start your own project, it can also display a range of other skills.
I’ve been the co-founder of an open source project, GradleFx, and it involved:

  • code contributions
  • setting up and writing documentation
  • setting up and providing support
  • prioritizing the backlog
  • interacting with the community and other maintainers
  • promoting the project by giving public presentations

It’s an interesting learning experience. Plus, when you’re mostly working on internal projects, it’s probably the best way to have some of your production code available in public.

Try to work for companies which actively contribute to open source. You’ll build up a library of publicly available work, while adding value for your employer.

Your Digital Garden

A personal blog is a popular means for developers to share their experience with the world. It’s great for content that is highly technical, very relevant at the publishing date, and with an expiration date. The major downside is that it’s also high-maintenance, because you need to publish new articles constantly to keep your blog relevant. It’s the opposite of a passive pipeline.

That’s why I prefer a digital garden. A more organized collection of evergreen articles, with knowledge that remains relevant over the years. It’s where you gather your conceptual knowledge, knowledge which transfers across technologies. Articles which you rarely have to update, but which you update whenever you gain new insights. Every new article builds up this library of knowledge, no effort is wasted. Over time, you’ll have built up a passive marketing channel of your craftsmanship. Have a look at my articles section to get an idea about how my digital garden looks like, which I’m still building.

On your digital garden you can also write about your own setup, such as the hardware you use, your development setup and the technologies you use for your online presence. It’s another way to show off who you are as a developer. It’s more dynamic content than the conceptual knowledge mentioned earlier, but still quite easy to keep up-to-date.

All this might bring up your imposter syndrome. It’s normal. I experience it all the time. But it’s something you’ll have to get over. You need to understand that everyone’s experience is different, gained via different avenues, resulting in different opinions and lessons learned. What’s important is that you write based on your own experience and insights.
Also, you don’t need to be a senior developer to share your knowledge. There are people who’ve just begun learning to program. There are those in junior positions. And others in senior positions, trying to branch out. All these people are looking for information on how to improve. Your insights might impact them.

And you know what’s awesome about a digital garden? You can constantly update and improve it. Threat every article as a draft. When you’ve made a mistake, no worries, just update the article. Gained new insights which invalidate part of the article you wrote a year ago? No harm done, we all learn new things all the time, just improve the article. Nothing’s set in stone. The earlier you start, the earlier you harden that writing skill and learn to express yourself. Skills which will help you in other aspects of software development as well.

Use your digital garden to centralize your public presence. Display your knowledge, your open source work, and your testimonials.

Testimonials

There’s almost nothing better than a former manager/colleague/customer recommending your work. A written testimonial can be powerful. Companies use testimonials for their successful projects all the time. It’s a way for them to display their trustworthiness and skills, vouched for by someone who payed for their services. Your personal “business” shouldn’t be any different. You should also try using these to your advantage. It will make landing that next job so much easier.

When I talk about a written testimonial, I don’t mean a traditional letter of reference. A good recommendation should be short and snappy, something you can easily use on any of your channels (website, LinkedIn, resume, …).

A testimonial should praise your technical skills, social skills, and the results you provided.

Here’s one of my testimonials, as an example:

Yennick has extensive knowledge of Cloud & IoT. His no-nonsense approach and eye for detail provided quick and impactful results. -<name>, CEO of <company>

But how do you get a testimonial which includes all these requirements?
You know best which technical skills you want to have highlighted, and the results which would matter the most for a potential new employer. It would be silly to receive a testimonial for a technology that you actually don’t want to use anymore, or a result which is overly specific to your previous company. Therefore, try to suggest a testimonial you’ve written yourself, which they can either approve, or come up with their own if they prefer something else. It makes sure that the testimonial will highlight what you need, and they just have to say “yes” instead of having to think about the right words to recommend you.

Now, when should you ask for these testimonials? Well, there are many opportunities to ask for one:

  • completed your internship? Ask for a testimonial!
  • accomplished a project and moving on to something else? Ask for a testimonial from some of your colleagues!
  • becoming the victim of a company restructuring and getting laid off, but actually did a great job? Ask for a testimonial from your manager and colleagues!

Public speaking

This might seem like an active marketing channel, and it is, but it can also become a passive channel. A presentation can have multiple artifacts which you should try to get a hold of or be able to link to:

  • a slide deck
  • audio recording
  • video recording
  • maybe even an example application

These are all artifacts which you can use on your digital garden and other channels.

Marketing your skills, by just being nice and helpful

Your other “sales pipeline” is just you being you, by being nice, helpful and knowledgeable to people in your day-to-day relationships. This can go a long way in opening up future opportunities. Actually, having strong (professional) relationships probably opens up the most exclusive opportunities.

Making the sale, aka landing the job

With all this buildup, you now have multiple companies which are interested in your skills. So how to approach this next step, closing the sale?

Let’s start with setting the right mentality.
You should operate as a business, remember? You have services to offer.

You don’t ask for a job, you present your skills to a potential employer. When they hire you, these skills can help them succeed with their projects.

If you’ve done your marketing right, you should be at the other end of the bargaining table. You are not the one in need of a job, others need your skills to make their projects succeed. It’s all about getting into the right mindset to set you up for a successful negotiation.

You are probably better than you think you are

Do you have the feeling that you’re not really that good because you work with smart people? Then start evaluating your skills outside the company. Chances are you’re actually smarter than you think.
We always reflect our skills based on those around us. When you’ve upgraded yourself into more experienced teams, then you can easily get the idea that you’re not all that great. This can lead to underselling your skills, resulting in getting a worse deal than you otherwise would.

Now, be aware that the opposite can happen as well. If you’ve been at the same company for a long time, then you’ve gained a lot of historical knowledge specific to the projects and technologies used within that one company. You might’ve become the go-to person for all kinds of questions. This might cause you to overestimate your own skills, so be careful when you’re in this position.

Know the problems you can solve

Your value to a company comes from your ability to solve certain problems. Learn what makes you valuable for the company and emphasize that during the interview.
For example:

  • You are not just a front-end developer: you know how to build user interfaces that provide real-time insights into mission-critical data.
  • You are not just a data engineer: you know how to build data pipelines that can scale to millions of messages per second.
  • You are not just a security expert: you know what it takes to set up a proactive intrusion detection system.

Salary negotiation

If you’ve done any kind of salary negotiation, you probably have encountered this famous question.

HR person: Can you give us an indication of your current salary?

If you answer that one, I guarantee you’ll get a low-ball offer. They’ll anchor their offer to your previous salary and your negotiation position is pretty much out the window. It’s really hard to recover from this one, unless you have an offer from another company. So at all costs, DO NOT ANSWER THIS QUESTION!
These companies constantly hire for new positions, they probably even have a salary matrix. They should know the baseline value that your position would bring to the company. Therefore, your previous salary doesn’t mean much, because your skill-set might be worth more to this new company. So instead of providing your previous salary, have them make an offer. You might be in for a wonderful surprise! It’s how I’ve made the biggest jumps in salary, and it will probably work for you as well.

Not always does an initial offer turn out favorably. In that case, if you really want the job for other reasons than just salary, you can start anchoring your counteroffer to your previous salary.

Summary

Selling your skills is an ongoing process, which requires you to invest some time into. But it will result in more interesting jobs, a wider network of interesting people and more varied experiences.

Actionable career advice,
in your inbox

Advance your career as a software engineer by regularly receiving my 15+ years of experience in your email inbox.

new advice & strategies to advance your career 🎓

exclusive content, not available on the site 🚀

updates on existing articles, with new insights! 💫

product updates and special offers 💥

    Unsubscribe at any time.