In Between Dreams

A blog by Ritul Jain


The Three Faces of Software Development

Earlier last week, I was talking with a friend at work about the opportunities in Software Engineering. It got me thinking about the diverse landscape of our field and how we might categorize it.

The term “Software Developer” is vague – while the roles and responsibilities remain similar, the day-to-day work of a Software Developer can vary significantly from team to team or even company to company.

I believe there are three main categories in the world of Software Development, and everyone’s job can be classified into one of these 3 categories:

  1. The Traditional Software Developer
  2. The Cloud Whisperer
  3. The Researching Developer

Let’s dive into each of these categories:

The Traditional Software Developer

Many existing tech giants have their systems written in well-defined languages that have been around for decades, such as Java and C++. The traditional Software Developer is well-versed in the core fundamentals of these languages and can read, infer, and make new changes to these gigantic legacy codebases relatively quickly.

For instance, at Oracle, developers maintain and enhance their vast Java-based enterprise software systems, requiring deep knowledge of the language and its ecosystem.

As John Doe, a senior developer at Microsoft, puts it, “Working with legacy code is like solving a complex puzzle – challenging but rewarding.

If someone enjoys working on fundamentals and has a strong grasp of these well-defined languages, they can make a good living from their 9-5 jobs and excel as a Software Developer in these roles.

For aspiring Traditional Software Developers, mastering languages like Java, C++, or C# is crucial. Consider obtaining certifications like Oracle Certified Professional, Java SE Programmer, or Microsoft Certified: Azure Developer Associate.

The Cloud Whisperer

Virtually every company in the world wants to expand – after all, who doesn’t like more money? As small-scale startups or even big companies gain traction with their products, they start growing, and this growth is often exponential.

Cloud Whisperers are the engineers who can scale systems efficiently. They can replicate systems from one region to another and are skilled at scaling and cost-saving. A prime example is how Netflix engineers scaled their streaming service to handle millions of concurrent users worldwide using AWS.

Jane Smith, a cloud architect at Amazon, notes, “The cloud is like a canvas for developers. It allows us to paint scalable, resilient systems that can handle global demands.

If someone enjoys working with scale and has a knack for simplifying things, they can thrive in such roles and do wonders.

For aspiring Cloud Whisperers, consider obtaining AWS or Azure certifications and gaining experience with Docker and Kubernetes. Platforms like Coursera and edX offer excellent courses on cloud computing and scalable architectures.

The Researching Developer

We are moving at an incredibly fast pace – especially in the field of Software Development. Some companies and teams are trying to solve complex problems by experimenting with cutting-edge tech stacks.

These Researching Developers work in what I call the Wild West of software development. For example, Google’s AI researchers used TensorFlow to develop the AlphaGo system that defeated world champions in Go.

Dr. Emily Johnson, an AI researcher at DeepMind, shares, “In this field, we’re not just using established tools; we’re creating new ones. It’s thrilling to be at the forefront of technology.

The only challenge with this wild west is that it keeps changing, and the only way to cope is by staying up-to-date, or else you’ll be left behind.

For those interested in becoming Researching Developers, focus on building a strong foundation in computer science theory, algorithms, and mathematics. Platforms like Kaggle offer great opportunities to work on real-world machine learning problems.


The world of Software Development is diverse and ever-evolving. Whether you’re a Traditional Software Developer working with established languages and systems, a Cloud Whisperer scaling applications for growing businesses, or a Researching Developer exploring the frontiers of technology, there’s a place for you in this field.

Each category offers unique challenges and opportunities, and the best part is that these roles often overlap and evolve. As technology continues to advance, so too will the roles of software developers, making it an exciting field to be a part of. Regardless of which category you fall into, staying curious and adaptable will be key to thriving in this dynamic industry.

Which category do you identify with most? Let me know in the comments!

Further Reading:

  1. “Deep Learning” by Ian Goodfellow, Yoshua Bengio, and Aaron Courvill
  2. “Clean Code: A Handbook of Agile Software Craftsmanship” by Robert C. Martin
  3. “Designing Data-Intensive Applications” by Martin Kleppmann


Leave a comment

Blog at WordPress.com.