Preface
The software engineering world moves fast. New programming languages, development tools, databases, and cloud technologies appear quickly. They often replace older versions or introduce entirely new ways of doing things. This rapid change means engineers must constantly learn new skills, only to see them become outdated soon after.
To make things more complex, different companies use various technologies to achieve similar goals. Some of these technologies are developed in-house (proprietary) and aren't available to the public, while others are widely used across many companies.
In this environment, software engineers face an important choice: Should they become experts in specific proprietary technologies, or should they focus on building skills that can be used in many different situations (transferable skills)?
This decision can have a big impact on their career path, ability to change jobs easily, and long-term professional growth.
Don’t have time to read full article, you can directly go to “My 2 Cents“ section in the end and get key takeaways.
In this article, we'll look at both options, discuss what they mean for your career, and offer advice on how to make this important career decision.
What is Proprietary Technology?
Proprietary technology refers to software, tools, or systems that are owned and controlled by a specific company. These technologies are often developed in-house and are not freely available for use or modification by others.
In the software engineering domain, proprietary technologies can include custom frameworks, specialized development environments, or unique programming languages.
Examples of proprietary technologies in software engineering include:
Salesforce's Apex programming language
Microsoft's .NET Framework (prior to .NET Core)
SAP's ABAP programming language
Meta’s Hack programming language
Google’s Big table db
Apple's Swift programming language (although open-source, it's primarily used in Apple's ecosystem)
Some of the concepts are open source but specific implementations are proprietary. There are gray lines and it keeps changing with time. For ex. Meta’s React is now open-source, but initially it was proprietary.
Pros of Working with Proprietary Technologies:
Specialized expertise: Becoming an expert in a proprietary technology can make you invaluable to companies using that technology.
Potentially higher salaries: Specialists in niche proprietary technologies often command higher salaries due to limited talent pools.
Stability within a specific ecosystem: If the proprietary technology is widely adopted, it can offer job security within that ecosystem.
Cons of Working with Proprietary Technologies:
Limited transferability: Skills in proprietary technologies may not be directly applicable to other companies or industries.
Dependency on the technology's owner: Your career progress may be tied to the success and decisions of the company that owns the technology.
Potential for obsolescence: If the proprietary technology becomes outdated or is discontinued, your specialized skills may lose value.
What are Transferable Skills?
Transferable skills in software engineering are abilities and knowledge that can be applied across different companies, technologies, platforms, and industries. These skills form the foundation of a versatile software engineer's toolkit and are highly valued in the job market.
Examples of transferable skills in software engineering include:
Proficiency in widely-used programming languages like Java, Python, JavaScript
Understanding of software design patterns and architecture principles
Experience with popular frameworks and libraries (e.g., Spring, React, Angular)
Knowledge of version control systems (e.g., Git)
Familiarity with agile development methodologies
Pros of Focusing on Transferable Skills:
Increased job market mobility: Skills that apply across various technologies and industries provide more career options.
Adaptability to technological changes: A strong foundation in core concepts allows for easier adaptation to new technologies.
Broader problem-solving abilities: Transferable skills often contribute to better overall problem-solving and critical thinking.
Cons of Focusing on Transferable Skills:
Potential lack of deep specialization: While versatile, you may not be the top expert in any single technology.
Competition: The job market for generalists can be more competitive due to a larger talent pool.
Possibly moderate initial salaries: Without niche expertise, starting salaries might be lower compared to specialists in high-demand proprietary technologies.
Impact on Career Growth and Job Market Mobility
Choosing between proprietary technologies and transferable skills can greatly affect your career:
Career Growth:
Proprietary technology: You might advance quickly within a specific company or industry. However, you might struggle if you want to switch to a different technology or industry later.
Transferable skills: You can often work in many different roles and industries. It's easier to change your career direction if you want to.
Job Opportunities:
Proprietary technology: Experts in this might have fewer job options, but they can be in high demand for specific roles.
Transferable skills: People with transferable skills usually have more job choices across different companies and industries.
Long-term Job Security:
Proprietary technology: If you only know proprietary technologies, it can be risky. The technology might become outdated, or the company might have problems.
Transferable skills: Having transferable skills is like having a backup plan. It helps you adapt more easily when the job market changes.
Company Size and Technology Choices
The use of proprietary technologies often depends on company size:
Startups and Small Companies:
Usually use open-source and common technologies because they're cheaper and easier to find people who know them.
Might create some of their own tools for specific needs, but usually build on widely-used skills.
Large Corporations:
More likely to have their own special technologies and systems.
Often need people who know both their specific technologies and general skills.
Big Tech Companies (like Google, Amazon, Microsoft):
Often create and use their own large technology systems.
Look for people with general tech skills who are willing to learn the company's special technologies.
My 2 Cents
Balancing Proprietary and Transferable Skills
Develop a strong foundation in transferable skills first.
When working with proprietary technologies, identify and cultivate the underlying transferable concepts.
Allocate time for learning and practicing with open-source and widely-used technologies, even when primarily working with proprietary tools.
Participate in open-source projects or personal projects using transferable technologies.
Stay informed about industry trends and be prepared to adapt your skill set.
Choosing Your Path
When deciding between a job focused on proprietary technologies or transferable skills, consider:
Your career goals and desired industry
The current market demand and future prospects of the technology
Your personal interest and aptitude for the specific technology or skill set
The potential for learning and growth within the role
The company's stability and the technology's adoption rate
Remember, the most successful software engineers are those who never stop learning, regardless of the technologies they work with. Stay curious, keep your skills sharp, and always be ready to embrace new challenges in this exciting and dynamic field.
Before you get busy, let’s connect
Stay tuned with CS Talks for more insights like this.
My Personal Favorite Reading Recommendations
Read Leadership Letters by Akash Mukherjee
Read The Pragmatic Engineer by Gergely Orosz
Read AI with Aish by Aishwarya Srinivasan
Read The Hustling Engineer by Hemant Pandey
Read Arpit Bhayani ‘s newsletter by Arpit Bhayani
Read Unconventional Entrepreneurship byArjita Sethi
Read The Curious Soul's Corner by Gourav Khanijoe
Read Techlead Mentor by Raviraj Achar