For readers who might want to see an argument for software sales, check out my last comprehensive blog that I churned out (6000+ words) called: “Software Sales: Ultimate Guide For Recent Graduates or Career Changers”.

Who Is This Message For?

Again, like the aforementioned blog, it’s technically for me and my exit reflection on why at this point in my career, I am putting being a full-time, 9-5 professional software salesperson on the shelf.

It does not mean I quit Sales. I am a salesperson for life. You are too. You just didn’t realize it yet.

I digress. This message is for individuals who’ve been in software sales for 2-3 years and felt the pain points I’ve mentioned in the “10 Negative Reasons for Software Sales”.

This may include recent college grads who happened upon software sales because they weren’t qualified for other jobs or the career changer who is considering sales for the first time.

It’s ok to have that realization that you should have been more thoughtful on your career and future (aka – some form of regret). But guess what? Once you have that thought and start acting upon it, you are way ahead of everyone else.

Small Follow Along Exercise: Do These Points Resonate with You?

As you read through each point, do this exercise to see if you self-qualify into considering taking actions towards becoming a software developer.


  1. There are 10 positive points mentioned here.
  2. Make a mental note (or better yet, write it down) if you resonate or qualified yourself with any of these points.
  3. If you resonate with 7 out of 10, then you take a small action to learn more about software development (whatever that looks like for you)

So enough said, take a look at my top 10 reasons for making this career change.

10 Good Reasons to Become a Software Developer

1. Programing is Hard & Challenging. Continuous Learning

As I’ve been interviewing and talking to people about their careers, especially friends who have taken the software sales path and enjoy it, all typically respond by saying they enjoy their line of work because its not that challenging (mentally stimulating, etc) and it pays well.

On the other hand, when I interviewed other software engineers, they mentioned that fact that this industry is intellectually challenging is what makes this line of work appealing to them. It goes to show, software engineers spend more time learning than other professionals.

Long Term Learning

Especially on the frontend side where you will be dealing with Javascript, frontend technologies, frameworks, and libraries change quite fast.

ence, you must possess that drive, awe, and enjoyment of learning and implementing new technologies into your working skill set progressively throughout your career.

Everyday Continuous Learning

During your everyday job, you constantly have to be Googling, Stackoverflowing, and even YouTubing potential solutions to troubleshoot your immediate problems.

This demands a high ability to learn, adapt, and execute on the fly to finish critical tasks to accomplish a product or feature launch on time.

Again, this is definitely a double edged sword. There might be short-term periods where the work will demand so much brain power and make your hair fall out, but this argument is taking this macro look at this role for the many years to come.

You self-qualify yourself for this argument if you resonate with 4 out of these 8 points

  1. You sincerely enjoy mental stimulation
  2. You enjoy the process of learning new things
  3. You welcome new trends, technologies and adapt well to them
  4. You are goal driven, self-starter, results oriented type of personality
  5. You enjoy collaborating with others to accomplish a common goal
  6. You view challenges and difficulties as opportunities to grow
  7. You are a creative person (musician, artist, dancer, etc) that thinks in systems that harmonizes with reality or provide arguments that clashes with status quo
  8. You enjoy looking back at tangible accomplishments and smile at the thought that you thought it was challenging in that moment, but you are proud you went through that process

These are a couple traits or characteristics that I thought of when reflecting on why I get excited that software development is a challenging and hard skill.

If you also get that tingling sensation, then truly consider exploring this field more seriously.

2. The Future is Tech. Speak the Language, Culture to Participate

Based on data from the Bureau of Labor Statistics, software developers are projected to grow 24% from 2016 -2026, which is the fastest and most in-demand field compared to other lines of work.

The demand is going to stay high and probably accelerate also. The world of the future is going to run on technology (software, hardware combinations).

You’ve heard the saying 5 years ago, “there’s an app for that”; now there’s sayings of, “there’s probably a YouTube channel, e-commerce, etc” for that specific niche or industry.

On one hand, the influx of traditional businesses or concepts even that are undergoing a digital transformation is scary because it makes competition even more fierce as current professionals up their game and build these technical skills while the new generation are building these skills already.

However, digital innovation is exciting because of the fast pace, progressive nature of technology that gets exponentially between through each iteration and generation of that piece of software. This spells for more opportunity to contribute and gain from this techno-future.

Where does programming and computer science play into this? Well, there might be a period in society where every individual will understand the basic fundamentals of how the web works, internet.

This will demand you to keep up with the trends or be left out from this conversation. If you don’t want to get left out, are you willing to do what is required to participate and contribute in this future?

For this argument, you self-qualify yourself if resonate with 2 out of these 3 points.

What does this require from the people of the present now (meaning you who are reading this)?

  1. Are you willing to be proactive and participate (regardless of level of starting skills) in this progressive digital transformation?
  2. Does new technology excite you and are you willing to adapt and leverage it?
  3. Are you passionate about contributing to the future of tech in some way?

3. An Outlet for The Creative Person

One of my close friends who I had the honor to be the best man who witnessed and signed his marriage papers told me:

“software development is not creative, rather, its for the purely logical person because you will be churning out code day-in-and-out”.

I respect his thought and constructive feedback, but I beg to differ and here are reasons why:

Creativity is the Engine for Problem Solving

Creativity is at the heart of problem solving. In this problem solving framework, you have to pull the threads of each segment together to create a congruent approach to tackling a problem.

The reason why is because creativity is also rooted in analysis, expression, and execution.

  1. Analysis: Identify, scope, and clarify the problem.
  2. Expressions: Generate MVPs of potential solutions for each subset of the whole problem.
  3. Execution: Conduct experiments and approaches to solve the problem
Abstract Thinking for Building Intangible Software Product

The skills needed to visualize the components of a web app prior to coding it and making it visible takes high degrees of creativity to facilitate your mental faculties take your imagination and produce a physical representation of your thoughts.

This is almost analogous to writing an outline of an essay. Software development requires you to produce MVPs (minimal viable products) that helps visualize your idea into something tangible.

This type of skill requires levels of creativity to actualize your idea to something that other people can experience.

Teaching Other People to Program with Analogies

This pertains to software developers explaining high level concepts using imagery or analogies because they have to creatively breakdown a complex idea into digestible pieces of information that an average person or people in general can grasp.

This takes a high level of creativity to control and communicate complex ideas in more simpler vernacular.

Are You a Creative?

The Guardian has an article that listed 2 signs (strategy games, musical mind) that might be signs of your software development potential. And these traits, I would argue involve creativity.

And I would identify myself as a creative person and if you also vibe with at least 4 out of 7 of these points, then you passed this qualification and congrats! You should consider software development a bit more!

  1. Breakdancer: competed semi-professionally and taught breakdancing for 10 years
  2. Musician: play piano, guitar, cajon, beatbox, sing (melody and harmony), and understand music theory
  3. Gamer: I cut middle and high school to play real time strategy games (Warcraft 3, Starcraft 2)
  4. Blogger: I enjoy expressing and documenting my experiences via the written word
  5. Philosopher: I enjoy theorizing arguments around existence, language, religion (Christian apologetics), etc
  6. Traveler: How is this creative? Well, in an introspective sense, the more you expose yourself to the world (cultures, languages, habits, etc), then the more point of references you obtain which enhances the lens in which you view the world (creatively that is)
  7. Multi-lingual: I speak arguably 4 languages: English, Mandarin, Cantonese, and Burmese. Having these abilities allows me to view the world in 4 different perspectives

4. You Are in More Control of Your Success

The qualification aspect of this is, do you resonate with the analogy I’ve painted out for software development as a career where you will be in more control of your career? If so, then add this to your points.

Sales is Like Surfing

This is a stark difference between software development and software sales. In sales, success isn’t ultimately up to you because it depends a lot more on the market versus your own salesmanship skills.

Surfer Salesperson

For you surfer readers out there, you can relate to this analogy. In software sales, you are a surfer and the market is the big, blue ocean.

Yes, when you start out as a newbie surfer, you need your body to adjust to navigating the ocean and building strength in your body to persevere through the untamed nature of the ocean.

However, the only thing you have control over is your body. Moreover, your body can only take so much punishment from your will and the ocean before it breaks down (exhaustion, fatigue, or pulling your muscle while surfing…)

Untamable Ocean

But that’s just it. The fact is, the ocean is untamable. You can train yourself to be the best salesperson, but good surf depends on the day, the ocean, and other variables.

Therefore, the success of the surfer depends on their skills to navigate the ocean, but ultimately, it depends on the day and condition of the ocean on any given moment.

If you ever went surfing, you realize how small you are compared to the force of mother nature represented in the powerful waves in the ocean.

You learn to humble yourself, respect the ocean, and be grateful for the waves you were able to ride, only to start over the cycle and do it again.

Software Development is like Cooking

Woah. MrAddOil. What kind of analogy is this? I never heard of this before! Me neither bro (or sistah), let’s try to build this plane while we fly it 😉

It’s similar to cooking in these respects (bare with me, analogies break at some point) and I will describe these analogies similar to key-value pair concept in programming, but adapted to problem-solution for the purposes of running these analogies.

Steady Demand & Competing Supply

People are hungry, they must eat. Therefore, chefs are in demand to create edible products for the masses.

Same thing with software developers, in the future, digital products are like intellectual and entertainment food. There is going to be a constant demand for it, hence, supply must meet that demand.

Again, it’s up to chefs to meet the demands of the hungry people, to create dishes that satisfy the consumer’s appetite.

Different Foods for Different Time-Of-Day

In cooking, you base what you create and consume based on the time of the day. For example, morning time will be breakfast and evening time it will be dinner oriented foods and dishes.

With software development, it’s quite similar because you will be creating food (code) that meets the demands for web apps, mobile apps, etc.

Therefore, it’s up to you to design the best type of food to meet the categories of dining for each period of the day.

You’re The Chef, The Food is Your Art

Cooking is definitely comparable to art. The chef is the artist, the food is the colorful palette of color, and your imagination and execution is the engine that produces something special for the world.

In this rendition, the problem is the chef, the artist who is tasked to create something edible, artful, delectable with the selection of food given to them.

The software developer is also tasked with taking the languages they know (JavaScript, HTML, CSS, etc) and create something artistic with these tools.

Like Sticking to a Diet

You have more control over your success because like dieting, the type of food you curate and cook the ingredients for yourself is mostly in your control.

Same thing with software development, your success on a product depends on the technologies (ingredients) you bring into the project.

I might get schooled by experienced software developers but here is my over simplified deduction of the only 2 type of engineering problems:

  1. The problem you are trying to solve has been solved before and you are just adapting a broad solution to your specific problem (traditional food cuisines or fusions)
  2. Problems that cannot be solved are also well known and avoided (food concepts that are theoretically possible but would result in food poisoning 😂 🤣)

5. Having Social Impact

For this qualification exercise, if you resonate with the idea of potentially starting your own business or turning your idea into reality to help people, then mark down a positive for this point.

All companies, businesses are the by-product of an idealist, creator, engineer who brought their ideal into existence in a sustainable manner for themselves and the value they create for their audience.


One of my favorite examples of this point would be freeCodeCamp, which is a non-profit computer science education certificate program created by Quincy Larson,  who was an educator that started to code.

Their mission is to empower individuals to learn how to program and use those early skills to give back to non-profits. It’s truly a beautiful model, one that I really resonate with and will continue to support.

This is just one example, but the power that software developers possess is the ability to scope out a problem that they might be experiencing and building a tangible solution to address it.


This applies for non-profit engineering work also, but it’s more apparent in a for-profit setting, which is you are creating more job opportunities if you took your engineering prowess and create a sustainable business.

More commonly, you will be employed at a company to help them build their mission. Which is fine and awesome because you again are building a product that brings value into society and addresses a problem.

6. Appreciative Value of Having Software Development Skills

For this section, you are qualified if you value putting in the hard work upfront to build a foundation for a skillset that appreciates exponentially over time.

Software development is one of the skills that have an advantageous linear appreciation for the experience you’ve accumulate over the years.


Let’s compare software development to enterprise sales. Granted, enterprise sales has a higher, potentially unlimited (thats how its marketed), however, the base salary for enterprise sales is in the low $100K and if you did not make sales, then it’s going to stay that way.

Whereas, with software development, the more senior you become and accumulated a strong portfolio of completed projects and accomplishments, then you will be valued and priced accordingly by companies.

The following are the average salary differences between a junior software developer and senior software developer. That’s about a 65% increase on the average base salary alone, and this doesn’t involve stock options.

Skills Stacking

Since, you have to keep learning in this field. Chances are, you will be stacking other skills demanded of you from your workplace.

Meaning, you could start your software development career as a full-stack Javascript developer and as you progress, you might pick up Python and other type of languages and skills along the way.

As you build proficiency and breath in different languages, the more valuable you become because more complex products demands such a skill set.

Career Opportunities

Well, within the software development universe, you can work on transitioning into a frontend, backend, mobile, data science, machine-learning & AI, and probably more.

You may start your career as a web developer, but after 1-2 years, you can transition to just pure frontend development or go to backend by focusing on backend language.

The truth is, as long as you put in the work, dedication, and churn out a portfolio of these new skills, then you can always make an argument to switch to a different flavor of software development.

Generally, companies and recruiters value a software developer who has exposures in different flavors of development because these skills stack on.

And lets say, for whatever reason, you decide to try something else. Your software development skill set will still serve you in Digital Marketing.

Or if you want to be in a customer facing role, then you can transition into Sales Engineering. The reality is, once you have this skill underneath your belt, and you mix and match your existing skills on top of programming, options and doors open for you.

7. Potential for Entrepreneurship of Different Flavors

For this qualification, if you resonate with at least 4 out of 9 of these points, then this argument won you over.

Since I’m based in San Francisco, I’ve seen or worked with software developers who simultaneously work on these side gigs to help them diversify their income on top of their 9-5 career.

  1. Freelancer
    1. Becoming a freelance developer is a very popular option for software developers because they effectively become businessmen and sell their development services to non-technical clients or other business owners who need to contract out their engineering team.
    2. This is a great way to continue to build your development skills and buff up your portfolio. Especially if you plan to evolve into a different flavor/role of software development.
  2. Software development YouTube channel
    1. Typically, junior developers use this route to showcase their understanding and thought process in this industry to earn them their first software developer full-time gig
    2. Even after landing a full-time career as a professional software developer, people still keep their YouTube channel updated and provide regular content to inspire other non-believers
  3. Blog about software development
    1. Blogging and YouTubing normally go hand and hand. Like for myself, I do both. It’s a great way to express your understanding of the industry, your skills, and more both via the written word and video.
  4. Software Development Education
    1. We are living a world of opportunities where individuals who are passionate about education (like yours truly), can produce their own course and distribute it on several platforms like YouTube, Udemy, Teachable, etc and get paid for it.
  5. Freelance Agency
    1. This is a step up from point #1, since it would involve the freelance developer to band forces with other freelancers to form an agency for handling larger volumes or more complex projects.
  6. Mobile Apps for Google Store or Apple Store
    1. This can be done as an individual or you can leverage other freelance developers or agencies to help you push out a mobile app for sale on the Android or iOS ecosystem
    2. In this situation, you will probably act both as the developer and Product Manager to coordinate with other designers, programmers, etc to develop and deploy your product
  7. SaaS company
    1. For extra-entrepreneurial software developers, they can participate in SaaS circle of life by launching their own SaaS product
    2. The difficulty of this entrepreneurial path is much higher and fierce; it’s a high risk, high reward gamble that people who want to prove themselves partake in
  8. Engineering Consulting
    1. Once you become a Senior Software Engineer, you can qualify yourself to provide consultation to other junior engineers, companies, emerging start-up and get paid for your time to answer questions and provide thoughtful answers
  9. Become a Mentor
    1. You can partner with coding bootcamps once you’ve met the minimum qualifications to mentor other aspiring programmers as a side gig; which is a great way to give back to your community in a sustainable way

8. Collaborated Synergy to Work On a Common Goal

For this argument, you can self-qualify yourself if you value true collaboration over being a lone wolf.

Some careers like Sales, don’t have real, true collaboration because the nature of the work conflicts with your own personal interest.

The reason why is the opportunity cost for helping your teammates work against you towards promotion or basically making money.

In contrast, software developers depend on each other to contribute their work to complete a bigger, greater goal.

A simple example would be, if a frontend developer completes his work early, he still depends on the backend engineers on his team to add the app logic to their frontend designs.

Meaning, they are codependent and are mutually incentivized to provide their best work and to complete things on time for the sake of the team.

Meaning, bringing on a senior software engineer is like summoning a hero unit in like Warcraft whose presence boosts the morale of the entire team.

Because bringing an experienced developer on the team means they can bestow their knowledge, experience, and skill set to the rest of the team, thus, uplifting the entire performance of the engineering team.

This is quite different in a sales org scenario where an experienced salesperson mean that they will take more business and opportunities away from you.

9. Tangible Accomplishments You Can Be Proud of And Show For

In this argument, you self-qualify yourself if you agree with wanting to produce work that you can show for in your own portfolio.

Sales does not provide that, you can bring a big customer in, but your success in closing that deal was predicated by other salespersons of the past who didn’t get this thunder and other departments.

Moreover, once you make that initial sales, your company has relationships with that client, not you. Therefore, the world will only know that your company X has customer Y but your name, hard work will not be remembered and you have nothing to show for.

Software development, you can specifically say that you were part of building that product and have actual code or better yet, a deployed product to show for.

What’s more, since you built a specific feature or part of that product, you can replicate the code for another use case, which is a transferable asset to help you in your future.

Also, you can always direct people to the company’s product or feature that you helped create and even provide a technical demo of that product to prove your point.

10. One of Top Ranked, Prestigious Careers

For this section, if you resonate with potentially having at least 2 out of 4 of these benefits, then this points resonates with you.


I’ve strategically placed this reason towards the end. Both as a reminder for myself and for you that, although money is important, you will be miserable making money as a software developer if you don’t resonate with most of the aforementioned nine points.

Like I mentioned in my Software Sales blog, you can make more in enterprise software sales than in software development because Sales technically has no earnings potential because it follows the market based on the demand for a product.

It’s not uncommon to hear enterprise salespersons making a minimum a quarter million to half a million annually.

Software development is definitely lucrative when compared to entry level software sales roles. Usually, an entry level software developer would earn at least close to 2 times more than an entry level salesperson.


Typically, companies are on their best behaviour to woe the best software developer talent in the market. Especially if the company is strictly product focused versus sales, then the bar and expectation for engineering talent is high, and following that, the compensation and perks are quite outstanding also.

Here’s a list of the common perks that software developers get from companies:

  1. Stock options (RSU – restricted stock unit)
  2. Remote work or work-from-home
  3. Work-life balance (9-5 work or 8 hours excluding product launch periods)
  4. Top tech gear (newest Macbook laptop and peripherals that you want)
  5. 401K or 401K matching for bigger companies
In-Demand Skill

Like I’ve mentioned towards the beginning of this blog, the demand for software developers between 2016-2026 was 24%. Estimating the distance between 2019 and 2026, I would say the demand is still in the high 10% or if demand increases even more, the percentage is even higher. That’s pretty awesome.

With this high demand, you will see these trends in this career in the corporate sphere:

  1. Companies fight for you with competing offers
  2. Recruiters reaching out to you monthly if not weekly if you are an exceptional software developer
Prestiged Few

This is where there’s a stark black and white contrast between software sales and software development, that is, people naturally hate salespersons yet people unconsciously admire and respect software developers. That’s just the way it is right now.

In society you are regarded as:

  1. The Brains: all the departments view software developers as the brains of the operation, the geniuses of the company’s product
  2. The Doers: there’s an expectation that engineers get stuff done, that is, they are the engine that fuels product and feature launches
  3. Deep, stable pockets: people know in their hearts and minds that software developers get paid well and its overall a stable career
  4. Social status attraction: I kid you not. I did an A/B test on Coffee Meets Bagel where I changed my occupation to software developer from Sales and my conversion rates actually went up.

Key Takeaways & Action Items

Take That Small Step

If 7 out of 10 reasons resonates with you deeply, you should consider taking small actions to get into software development (take a free online class, do a programming exercise, etc)

Was This Helpful? Please Support 🙂

I hope these 10 qualification points helped you make a decision in taking action to explore software development just a bit more.

Moreover, catalyst you to challenge yourself and learn software development versus software sales.

If you found this content to be helpful, I would love your support by clicking into these Amazon affiliate links in my tools page and go through your normal purchasing habits. Or you can join my Patreon community.

Doing this will support this blog and my other resources like my YouTube channel so I can continue to produce high quality, useful content on a weekly basis.

This blog has been inspired by these creators who specialize in inspiring other potential, prospective upcoming software developers with their content: Chris Sean, whatsdev, Joshua Fluke, SimpleProgrammer (now Bulldog Mindset), EngineeredTruth.

This blog was made to serve you. Enjoy.


Please enter your comment!
Please enter your name here