Download as pdf or txt
Download as pdf or txt
You are on page 1of 38

How to Market Yourself as a Software Developer

Trust Onyekwere

© 2020 Trust Onyekwere


Introduction

The upsetting cry of an 8-month-old baby often draws the attention of


its mother. Causing her to search for the cause, clearly drifting her
attention and keeping it focused on the poor baby.

In comparison, a loud bang often steals our attention, causing us to give


up what we're doing to check out its cause.

Software developers need to create such a bang that drives attention to


them and what they have to offer.

But the question remains. How?

They want to make more money, they want to be known, or perhaps get
a job opportunity or a promotion at work.

Many software developers make a few big mistakes that often draws
them back from achieving their tech career dream. By far, the biggest of
these mistakes is to underestimate the significance of the most
important of them all; MARKETING.

You could be the world's most talented software developer, but if no


one knows you exist. it won’t matter much. Unless you learn how to
market the skills you have, you will never reach your full potential.

In this book, I have taken my time to focus on two important parts, each
concentrating on a different aspect of your life as a software developer
focused on pushing you out of the traditional developer status and
unlocking potential that transcends that of ordinary developers of
software.

Dig in!
Section 1

Specialization is Essential

This section deals with the following:

⚫ Why is picking a specialty is important?


⚫ Kinds of specialties for software developers
⚫ How to pick your specialty
Chapter 1
What kind of Software Developer are
you?

My journey in tech started as a software (Android) developer and just


like many newbies I made a few career mistakes. One of these mistakes
is not knowing what kind of software developer I was.

Although I first practiced HTML and CSS which is the typical starting
point for web developers ( Software developers who build for the web), I
didn’t quite understand the need to stick to one career path and this
had me going over to writing Java within 2 months of writing HTML
alongside a little of JavaScript.

As if that wasn’t enough, I switched to Python 6 weeks later and


eventually went back to Java after 8 weeks of python. As you can
imagine I was going in loops without making significant progress for
many months.
One of the major reasons for this was the urge to do everything at
once. The Internet portrays a very exciting and enticing image of
different programming languages.

Today, Python is the best programming tool, the next day Java is the
future and before you’re done sneezing, C# is taking over the world. It
can be easy to get carried away by what you see online and begin
trying out everything at once which was true in my case.

I now know better. I now understand that for a newbie to make an


impact fast and become relevant in the industry, he needs to pick a
career path and stick to it.

This means that wanna-be software developers need to pick a niche, an


area of specialization that suits them, and master it.

To better understand the need for a niche and why every software
developer especially at the early stage needs to specialize, take a look at
this scenario.

Assume you have a painful toothache that needs the urgent attention of
a doctor. In your search for a doctor you come across:

⚫ ABC Clinic
⚫ BCA HealthCare
⚫ Dr. Dental Care
Who would you select?

If you are like me—and most people—you are likely to choose Dr.
Dental Care. Why? Because he specializes. He is specific.

It doesn't mean he is the best. ABC Clinic may have a better way of
treating than Dr. Dental Care. But, because he has chosen to specialize,
he will get a lot more from the business.

Now, Dr. Dental Care may not get as much general medical business,
but as long as the dental market is big enough, he will get a majority of
that business and be able to charge higher rates for his services.

In a small pond, he's going to be a big fish and that's just what you
should try to be. In a small pond, always endeavour to be a big fish, not
a small fish in a big pond.

Have you observed that doctors have different specialties and usually,
from the beginning make this specialty known? There are Specialists like
Ophthalmologists, Dentists, Paediatricians, etc.

You wouldn't want your toothache to be treated by an ophthalmologist,


would you? You're going to go to the dentist, of course, so
specialization is very vital.
A medical doctor doesn't come out of medical school and decides that
she just want to be a "doctor”, but sadly that's just what most software
developers do when it comes to their career.

Most software developers fear specialization. Do you remember the


famous saying "Jack of all trades, Master of none"? That's what many
are trying to do, choosing something too big, getting stuck, being easily
frustrated, and not going forward in their careers.

As they don't realize the extreme value of being a specialist, they try too
hard to be generalists and do everything. I once did that and I can tell
you that it can be overwhelming and frustrating. Do not make the same
mistakes.

Just to make sure we are on the same page here, let me stress the main
point of the idea around choosing a specialization. The main point to
take to heart here is that you need to stand out by selecting a niche
from which you can become an authority.

Let’s go back to my story, imagine if I had chosen to stick to Python


and practiced overtime on that particular area, I’d easily be seen as an
expert at the fundamentals of the language and can stand out as an
authority quickly than if I had chosen to do everything (Java, Python,
HTML, CSS, and JavaScript) at once.

You may have other skills and abilities, but as a specialist in multiple
areas, it is difficult to stand out and be seen. If your first niche or
specialization area doesn't work, you can also switch or extend your
niche later.

The most important thing is to pick and start doing a particular thing.

Why is Finding a Niche is Important?

Often times I meet software developers who don't have a specialization


area. Many will define their specialization by what programming
language they use.

You usually hear "I am a Python developer," or "I am a Java developer".


Although those descriptions are not wrong, it just doesn't say anything
about the kind of software development work you can do.

Nothing is said by a programming language about what kind of


developer you are and what you can do. It just shows what tool you use
to do your work.
It can be difficult to pick a niche in an industry with so many exciting
fields and many times developers are sceptical to specialize in one area
of software development because they are afraid that they will be
pigeon-holed into one specialty and will be excluded from many jobs
and opportunities.

While it's true that specialization will close you off some opportunities, it
will open you up much more than you would otherwise have had.

Think about the medical situation again. If you became a doctor and
had no specialization, technically every person seeking a doctor or
medical attention could be your client.

But the problem is that very few people would want to hire a doctor
who is a generalist. Most potential clients would seek to hire a specialist
in whatever problem they are seeking a solution for.

A diabetic patient is very much likely to visit a doctor who has been
treating Diabetes for over 20 years than a doctor who treats everything.

Although choosing an area of specialization will provide you with a


smaller pool of potential employers and clients, you will be much more
attractive and valuable to them.

So long as your niche is big enough and it's not overcrowded, you'll
find a job or get a client much better than you would if you just call
yourself a software developer.

Make sense? Cool!


Chapter 2
Picking Your Niche

How do you find a suitable niche? Is there a technique for selecting an


area of specialization? Do we have “ä calling” in tech?

While discussing this particular with some friends the last question
above was asked and it raised a very interesting debate.

Well, there is no fixed rule or technique in choosing a niche in software


development but in this chapter, I highlight a few guidelines and
methods I have used and understood from my experience in the tech
industry.

There are many specialization areas for software developers. There are
language specialties, platform specialties, specialties in methodologies,
and specific technologies or frameworks.

However, one of the first things you should figure out is what kind of
software development you want to do. This can be difficult to figure out
but the following questions can help:

⚫ Do you want to work on the frontend of applications, creating and


programming user interfaces and designs (i.e. what users see, UI)?
⚫ Do you want to work on the middleware of applications,
implementing business rules and logic?
⚫ Do you want to work on the backend of an application, working
with databases, designing, and creating APIs?

Those questions above can be a starting point for picking a good niche.
You can even select all three and become a full-stack developer, but in
that situation, you should probably specialize in a specific stack of
technologies that are related. For example, a full-stack web developer
could be specialized in website development using JavaScript for both
the frontend (Vue, Angular, or React) and the backend (NodeJS).

You can also specialize in areas such as the designing and building for
embedded systems, where you work closely with hardware devices and
build software that powers these devices.

Another possible area of expertise is mobile development. There is a


huge demand for iOS or Android developers who are experienced in
writing mobile apps. You can decide to build for both operating systems
or select to build for only Android or iOS.

Some software developers are deeply focused on becoming experts in a


specific platform or framework and that’s highly commendable. An
example is those who specialize in building mobile apps with Flutter or
React Native only, and those who design and build websites with just
WordPress.

Picking a Niche

It took me over 4 months to finally understand and agree on an area to


focus on. Picking a niche often seems like a daunting challenge to
choose a specialty.

Here are a few questions to help you choose:

⚫ Is there a particular type of work that no one wants to do or


needs skilled people? Become the individual who is an expert in
this field, and you're going to have a lot of opportunities.

An example of this is AI and Data Science. Many are yet to


understand and dive into the AI space. You can easily become an
authority in this field since not many developers or newbies are
familiar with it.
⚫ What kind of topics are mostly discussed at conferences, meetups,
workshops, and user groups? The more frequent and famous a
topic is, the more likely it is to become a sort after skill you have
to learn and master.

⚫ What kind of questions do you answer the most, either for co-
workers, friends, and online groups? Whatever your answer is, you
most likely have a passion for it and highly will become very good
at it if you focus on it.

Whatever niche you choose, make sure that you become a master of it.

It is good to note that my thoughts above doesn’t mean that I don't


think you should have a wide range of skills as well.

It's awesome to be a well-rounded and flexible developer. It feels good


if you can use various tools, applications, and many different
programming languages.

It can make you a much more valuable developer than someone who
knows only one particular technology or language of programming.

Nevertheless, selling yourself as a jack-of-all-trades is very difficult.

Finding a developer who can do anything on the team is great, but


rarely do companies or clients set out to find that kind of person.

Have you noticed that companies seeking to hire web developers often
ask for a frontend developer or backend developer and rarely ask for
full stack developers? This is because they understand the power of
picking a niche.

So, the point here is, even though you may be great with all kinds of
different technologies and learn 10 different programming languages,
choosing something unique will still be better— even if it varies from
time to time.

Learn as much as you can and become as flexible as you can, but you
must also have a specialty that makes you so unique.

In summary, start with specialization and branch out later.


Section 2

Marketing Yourself

The following is discussed in this section:

⚫ Why market yourself


⚫ How to market yourself
⚫ Marketing with a blog
Chapter 3

Why Market Yourself?

Now we have selected a niche and, on our way, to becoming an

authority and an expert, now it’s time to market and showcase our

expertise to the world.

Why should software developers market themselves?

I often wondered that same question for a long but the answer is now

clear.

At some point in a developer’s career, he would’ve reached a level of

expertise that's on par with many of the top developers.

When you reach that point, it can get very hard to move forward

because you're mixed in with the rest of the pack and you're competing

against all other amazing software developers with similar skills.

Why will a potential client or employer select you from the many other

software developers with similar abilities and skills? The answer is


Marketing!

You can stand out from the crowd by learning how to market yourself,

earn a much higher income, and have a lot more opportunities.

The better you are at marketing, the greater your skills will be

magnified. That's why you must learn this important skill as a software

developer.

What does marketing yourself mean?

Marketing is basically connecting people who want that product or

service. So, marketing yourself just means linking people who want what

you've got to offer with you.

The best and recommended way of selling yourself effectively in a way

that makes others want to work with you is to do it in a way that gives

importance or value to them.

You need to decide how you want to be viewed by others, what should

come to their minds when your name is mentioned.

To market yourself well, you need to portray and promote an image to


people who are interested in hearing what you have to say, hiring you,

or buying a product or service from you.

How do you promote this image effectively?

How to Market Yourself

Marketing yourself starts with creating a personal brand— something

you embody or represent. You can't be all things to everyone, so you

need to make conscious efforts and choices about what you want to be

and how you want to show that picture to the world.

Do you want to be the Java guy who builds Android apps? or the

Python queen who builds chatbots?

Once you are clear about what brand you want to promote, the

message you want to convey, and how you want to be seen, you need a

way to share that message and let everyone know.

You can use many different mediums to get your message out there:

public speaking at events and conferences, blogging, podcasting,

screen-casting, etc.

But one of the most common mediums that I recommend to software


developers is a blog. It's the one place you control the message

absolutely, and you're not at the mercy of anyone or platform.

It’s not easy to create a bang that gets attention using any of the

mediums mentioned earlier. Success isn’t something that’s achieved

overnight—at least not a long-lasting success. But any developer can do

it, and if you’re willing to do the work, it can be easy to achieve.

Each blog post you write over time contributes to your marketing efforts

and your brand awareness. This aids you to become an expert in your

field and create greater and better career opportunities.

Note, the key tool you will use to achieve this and get people to follow

you and hear what you have to say is to value to them — to provide

them with answers to their problems.

In the coming chapters, we will discuss more on why blogs are most

effective and how to get the best out of a blog. Although I’d focus more

on blogs, the technique can be applied to podcasting, screen-casting,

and public speaking as well.


Chapter 4

Why are Blogs so effective?

You can only meet a few people in person, so you need a new and
better way to market yourself and network with a much larger audience.
A blog is a cheap, valuable, and easy way to get your name out there.

Sometime in 2018, I started blogging about android development, and


over 70,000 persons have read and engaged with a particular article I
wrote on pinch and zoom in android.

When you search for “how to add graph in android app” you will find
my article as one of the top search results in Google. This is just a little
example of results that can be gotten from blogging intentionally.

A good blog can draw hundreds or even thousands of visitors a day,


which can give you several opportunities ranging from job offers to jobs
consulting or even selling a product to an audience.
It can difficult to assess the abilities of software developers from their
curriculum vitae and a brief interview, so many employers have a hard
time knowing whether or not someone is a fit candidate for a job.

Yet imagine what happens if a software developer has an up-to-date


blog. This blog may contain vital developer information, including code
samples, reviews, and in-depth technical analysis of various software
development aspects. You can easily tell more about a software
developer from reading their blog and online content.

Think of prominent developers such as Ire Aderinokun, Antonio Leiva, or


Adora Nwodo—they all have blogs.

If you're a freelancer or you're interested in freelancing, you'll find that a


good blog will lead many customers your way rather than you having to
go out and dig for them. Clients who come to you directly will be much
more willing to pay a higher rate and will recruit you for a job with less
convincing.

If you have a steady stream of visitors to your blog, you can build a
product around their interests and convert that traffic directly into
customers which can also be a stream of income.
Another advantage of starting a blog is the development of your
communication skills. It's a tough but useful ability to organize your
thoughts and put them into writing.

Writing especially technical writing regularly helps improve the capacity.


You will also regularly update your skills and stay up-to-date in your
area of expertise if you blog regularly and according to a schedule.

Are you convinced you need a blog? Good. Then your next question
might be how to get started. Getting started is pretty easy nowadays.
You can create a blog in about five minutes using a free service like
WordPress (http://wordpress.com). Medium (http://medium.com/) or
Hashnode (https://hashnode.com/) can also be an option. But before
you go ahead and sign up for those services, here are some things to
consider:

Deciding What to Write About

Many who start a blog often make no progress because they can't
decide what to write about.
There is a misconception that to write a blog post, you need to be an
excellent writer and an expert in a subject area. This misleading thought
has led many into stalling and procrastinating.

An idea and an opinion are all you need to write a blog post.

Here are some ideas of things to write about:

⚫ Tutorials and how-to’s


⚫ Book and product reviews
⚫ Write about an error or bug you solved
⚫ Interesting stories about your life (related to your specialty)
⚫ Interviews with people in your field
⚫ Case studies
⚫ Answer a question
⚫ Cheat sheets
⚫ How you solved a problem
⚫ A problem that is currently stumping you
⚫ Controversial/provocative posts
⚫ Video or Vlog posts
⚫ Guest posts (let someone else do the writing)
⚫ Define something

Don’t be picky. Let the ideas flow. Whether they are good or not, it
does not matter.
If you can't find at least 20 blog post ideas that suit your niche or
specialty, going back to the drawing board may be appropriate.

You might have a niche too small, or you just don't know or care
enough about the niche you've chosen. Don't worry if that's the case.
Just go back and pick another niche/expertise or slightly change your
theme and start again.

Don't give up whatever you do, and if you fall off the bicycle and miss a
post, get right back on the next week.
Chapter 5

Treating Your Career as a Business

Many software developers do not treat their career in software


development as a business. Don't be fooled; you're no different from
the normal tailor, trader, barber, or electrician setting up his/her shop
when you started writing code for a living.

Think of yourself as a business. Switch your mindset to a business


person who is running their own business. Getting that attitude will
change your way of seeing and thinking about your career and
eventually increase your productivity.

Now, let's talk about how and what exactly it means to think about
yourself as a business.
How to think like a business

We can start by understanding what makes up a business. First of all,


you need a product or service. A business needs to offer something in
order to make money, if there is nothing to sell, there is no money.

Ask yourself, what am I selling? What is my service or product?

Software developers generally sell their ability to take an idea and turn it
into a digitized reality.

Note: The service you provide is to create software that solves a


problem.

As a software developer, the service you provide has a tangible value.


It's your job to communicate what that value is and what makes it
different from thousands of other software developers out there.

That brings us right back to marketing. it's not enough to have a


product or service on its own; you need to spread the word!
If you want to make any money, you need to let potential customers
know about that product or service you offer.

Have you observed how persons who sell shoes or clothes put lots of
picture their products on social media? Everyone has someone like that
on their contact. When they upload these images, everyone knows that
they sell shoes, it’s clear.

Do your close friends or family members know what you do? Are they
aware that you write code and build software?

When you build something (a website, an app, etc) no matter how small
you may think it is, push it out for everyone to see.

Letting everyone around you know what you do is a first-ever step to


marketing yourself and creating awareness of what you do and that may
get you referrals and contracts.

Coding is a Superpower

Take a look at Spiderman, Superman, Wonder Woman, Aquaman, Flash,


what do they have in common? They helped people, they made efforts
to make life easier for those around them.

As a software developer you have a superpower, how will you use it?
Create software that has a major impact on those around you and the
world in general.

Having a superpower is one thing, using it is yet another. Superman isn’t


a Superhero because he sat and did nothing with his abilities, no! He is
a superhero because he used his abilities for good.

As a developer, learn to create! It doesn’t end with the codes; it begins


with making an impact with the codes.

In Summary

Do not follow the crowd, be different, and do not do what they do.
Rather:

⚫ Reflect on what service you have and how that service can be
promoted or marketed

⚫ Think about ways your offering and skills can be strengthened.

⚫ Consider how the service you offer can be tailored to serve the
needs of a different type of customer or industry.
⚫ Reflect on being a professional who provides a specific type of
customer with a very unique set of services. That way, you're going
to have a sales advantage

⚫ Think like a business-minded developer

It's all about thinking outside the box and starting to think like a
business.

What is the best way to attract customers and how can you convince
them about your service? If you can answer this simple question, it's a
great way to start your career with a bang!
BONUS MATERIAL

3 books every software developer should read (Apart from


this book of course)

These 3 books will improve your productivity and enhance your career
as a developer. №3 on the list is my favourite.

1. The Complete Software Developer’s Career Guide: In this book,


you will learn:
● How to systematically find and fill the gaps in your technical
knowledge so you can face any new challenge with confidence

● Should you take contract work — or hold out for a salaried


position? Which will earn you more, what the trade-offs are,
and how your personality should sway your choice

● Should you learn JavaScript, C#, Python, C++? How to decide


which programming language you should master first

● Ever notice how every job ever posted requires “3–5 years of
experience,” which you don’t have? A simple solution for this
frustrating chicken-and-egg problem that allows you to build
legitimate job experience while you learn to code.

● Is earning a computer science degree a necessity — or a total


waste of time? How to get a college degree with maximum
credibility and minimum debt

● The interviewer tells you, “Dress code is casual around here —


the development team wears flip flops.” What should you
wear?

● The technical skills that every professional developer must have


— but no one teaches you (most developers are missing some
critical pieces, they don’t teach this stuff in college, you’re
expected to just “know” this)

“If you’re a developer, green or a veteran, you owe it to yourself to read


The Complete Software Developer's Career Guide.” — Jason Down,
Platform Developer, Ontario, Canada.

2. Clean Code: A Handbook of Agile Software Craftsmanship: This book


is a must for any developer, software engineer, project manager, team
lead, or systems analyst with an interest in producing better code.

Readers will come away from this book understanding:

● How to tell the difference between good and bad code


● How to write good code and how to transform bad code into
good code
● How to create good names, good functions, good objects, and
good classes
● How to format code for maximum readability
● How to implement complete error handling without obscuring
code logic
● How to unit test and practice test-driven development

3. Soft Skills: The software developer’s life manual: Soft Skills is a unique
guide, offering techniques and practices for a more satisfying life as a
professional software developer.

In it, developer and life coach John Sonmez addresses a wide range of
important “soft” topics, from career and productivity to personal finance
and investing, and even fitness and relationships, all from a developer-
centric viewpoint.
About Author

Trust Onyekwere is a software entrepreneur and an experienced


technology executive, passionate about Human-to-Computer interaction,
project management and delivery, guiding teams through the
conceptualization, planning, and execution of technology-based
products and project ideas.

He has led the delivery of several technology-based projects, grown the


productivity of the engineering team by a factor of 10, and served as a
strategic program manager.

Trust is the co-lead for Google Developer’s Group (GDG) Aba and
currently Managing Director at RAD5 Academy, a technology education
company with its core focus on training and equipping Africa's most
promising tech entrepreneurs with the skill required to build, launch and
scale globally successful software businesses.
REFERENCE

• John Sonmez (2015). Soft Skills: The software developer's life manual (1st

edition), Manning Publications.

• Trust Onyekwere (2018, February 6th). If you had superpowers, what will you

do with them? Medium. https://medium.com/@iamtjah/if-you-had-

superpowers-what-will-you-do-with-them-8da2fb33956a

• John Sonmez (2017). How to Create a Blog That Boosts Your Career (1st

edition), Simple Programmer.

You might also like