# The Modern Developer Stack

The dev stack is evolving. I asked Scott Hanselman, Juraci Paixã, and Ilai Fallach what’s new in their developer toolbox. Here’s what I found out.

## What Is the Modern Developer Stack?

I’ve been a developer in some form or another for over two decades now. It was a very different experience developing back then… 👴 I recall being driven to near madness after a year of Enterprise Java Beans, working with clunky, finicky IDEs that made me spend hours upon hours dealing with each small method change or refactoring attempt.

Since the developer stack and underlying technologies have changed so much over the years, I wanted to take the opportunity to examine the current state of the developer toolbox.

I turned to some of the most talented people I know to get their perspectives and asked them four key questions:

1. Which interesting new developer productivity tools have become an integral part of your day-to-day work?
2. What would your past self, a developer in 2019, notice first if they looked over your developer tooling stack in 2022?
3. What upcoming dev technologies are you most excited about?
4. Do you feel anything changed in the past years in terms of development practices and responsibilities?

Their answers have been compiled into this article.

## The Team

[Scott Hanselman](https://twitter.com/shanselman) needs no introduction. He’s an important voice in the developer and Microsoft communities.

[Ilai Fallach](https://twitter.com/ifallach) is the Director of Engineering at [Velocity](https://velocity.tech/).

Finally, I had the privilege of meeting [Juraci Paixão Kröhling](https://twitter.com/jpkrohling) last month.

As for myself, my name is Roni Dover, and my day job is developing [Digma](https://github.com/digma-ai/digma), an open-source Continuous Feedback platform.

## TL;DR

Devtools mentioned in the post:

**VS Code**

- [Make VS Code Awesome](https://makevscodeawesome.com/)
- [GitHub PR Plugin](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github)
- [Rest Client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client)
- [VS Code GitHub Extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker)

### IDE Containerization

- [VS DevContainers](https://code.visualstudio.com/docs/remote/containers)
- [CodeSpaces](https://github.com/features/codespaces)

### GitHub and SCM integrated tools

- [GitHub Actions](https://github.com/features/actions)
- [GitHub CLI](https://cli.github.com/)
- [GitHub Desktop](https://desktop.github.com/)
- [Refined GitHub](https://chrome.google.com/webstore/detail/refined-github/hlepfoohegkhhmjieoechaddaejaokhf?hl=en)

### Observability and analysis

- [Semgrep](https://semgrep.dev/)
- [OpenTelemetry](https://opentelemetry.io/)
- [Jaeger](https://www.jaegertracing.io/)
- [Prometheus](https://prometheus.io/)
- [Digma](https://betterprogramming.pub/github.com/digma-ai/digma)

### Most excited about

- [GitHub CoPilot](https://copilot.github.com/)
- [eBPF](https://ebpf.io/)
- [Open Application Model (OAM)](https://oam.dev/)

### Other tools

- Scott: [OhMyPosh](https://ohmyposh.dev/), [Windows Terminal](https://docs.microsoft.com/en-us/windows/terminal/install), [WSL](https://docs.microsoft.com/en-us/windows/wsl/install)
- Juraci: [ArgoCD](https://argo-cd.readthedocs.io/en/stable/)
- Ilai: [ksniff](https://github.com/eldadru/ksniff), [k9s](https://k9scli.io/), [Velocity](https://velocity.tech/)
- Roni: [Stepsize](https://www.stepsize.com/)

## Developers in 2022: Smaller Teams, Bigger Ownership

I was curious about whether any changes had occurred over the past several years in terms of developers’ requirements.

The responses I received from the team were all in agreement. Development organizations are evolving into smaller teams taking on more responsibilities on multiple levels.

> “As a single developer on the side, I have everything in formal source control: test, CI/CD, mature DevOps pipeline, dev/test/staging/prod — AND I AM JUST ONE PERSON. This would be very challenging 10 years ago. 10x developers are not made through raw skill; they are enabled by excellent devops processes.” — Scott Hanselman

## The IDE

I asked the forum which interesting developer productivity tools have become an integral part of their day-to-day work. I was not surprised that VS Code was on most of the lists.

[VS Code](https://code.visualstudio.com/) has come a long way from a tool that is arguably more of an editor to a thin but highly customizable platform with hundreds of productivity extensions that greatly contribute to developer happiness.

In 2021, it was hands down the most popular IDE on the Stack Overflow Survey.

Source: [Stack Overflow](https://insights.stackoverflow.com/survey/2021#section-most-popular-technologies-integrated-development-environment)

Using VS Code effectively means choosing the right extensions. Here are some recommendations from the team:

- Ilai: [Make VS Code Awesome](https://makevscodeawesome.com/) 
- Juraci: [GitHub PR Plugin](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github) 
- Roni: The [Rest Client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) 
- Roni: [VS Code GitHub Extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker)

[GitHub Copilot](https://copilot.github.com/) was definitely high on everyone’s list.

## Containerized Development Environments

If an application can deploy in a containerized manner to help deal with dependency conflicts, better separate it from the underlying OS, and make it more portable — why should its dev environment be any different?

Scott and Juraci brought up two technologies with a somewhat different approach to making dev environments portable:

- [VS DevContainers](https://code.visualstudio.com/docs/remote/containers) allow VS Code developers to develop on a mounted folder inside a container.
- [CodeSpaces](https://github.com/features/codespaces) makes the entire dev environment, including the IDE, an immutable asset that can be spun up at will.

## GitHub and Source Control-Integrated Tools

> “For me, the most impressive thing is the standardization of the SDLC, particularly around today’s automated CI/CD pipelines.” — **Ilai** Fallach

### Thin integrated SCM actions over heavy CI platforms

Over the past several years, GitHub and other source control hosts have become more central in owning more of the dev pipeline.

In particular, [GitHub Actions](https://github.com/features/actions), a consensus among the team, made the necessary steps required to create a working pipeline almost trivial.

### Other SCM tools

- Everyone: “ [GitHub CLI](https://cli.github.com/)/ [GitHub Desktop](https://desktop.github.com/)”
- Ilai: “A simple wrapper on top of the [GitHub CLI](https://cli.github.com/) makes it automatic to open PRs.”
- Ilai: “[Refined GitHub](https://chrome.google.com/webstore/detail/refined-github/hlepfoohegkhhmjieoechaddaejaokhf?hl=en) really upgrades the use of the GitHub website.”

## Integrated Observability and Analysis

> Using [OpenTelemetry](https://opentelemetry.io/) as a replacement for most logs and metrics use cases has streamlined observability.

Roni: “ [Jaeger](https://www.jaegertracing.io/) and [Prometheus](https://prometheus.io/) are the tools of the trade for traces and metrics.”

Ilai: “[Semgrep](https://semgrep.dev/) is a great static analysis tool that concentrates on finding vulnerabilities in the code.”

## What Are You Most Excited About?

- Scott: “ [CoPilot](https://copilot.github.com/) will only get better.”
- Juraci: “ [eBPF](https://ebpf.io/) seems quite interesting.”
- Ilai: “One of the projects that I’m most excited about is the [Open Application Model (OAM)](https://oam.dev/).”

## Other tools

### Scott

- [OhMyPosh](https://ohmyposh.dev/)
- [Windows Terminal](https://docs.microsoft.com/en-us/windows/terminal/install)
- [WSL](https://docs.microsoft.com/en-us/windows/wsl/install)

### Juraci

- [ArgoCD](https://argo-cd.readthedocs.io/en/stable/)

### Ilai

- “[ksniff](https://github.com/eldadru/ksniff) by Torq.io is super helpful.”
- “[k9s](https://k9scli.io/)”
- “We use [Velocity](https://velocity.tech/) to create production-like environments.”

### Roni

- “[Stepsize](https://www.stepsize.com/) is a very interesting tool to manage issues.”

## So, What Is the Modern Dev Stack for You?

We are just four ragged developers. Let us know what you consider a part of the modern dev stack.

Tweet me, Roni Dover, on Twitter at @doppleware or follow my open-source project at [Digma](https://github.com/digma-ai/digma).
