The Modern Developer Stack — 2022 Edition | by Roni Dover | May, 2022

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

Image by author

I’ve been a developer in some form or another for over two decades now. At the risk of sounding like an old geezer, it was a very different experience developing back then… 👴 And I haven’t the slightest tinge of nostalgia.

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.

With limited to no IntelliSense, continuous fiddling with XML files, and nothing that resembles a modern CLI development experience, rolling out changes took ages. To compound the issue, testing always seemed to reveal issues that wouldn’t reproduce locally, and stateful, configuration management server setups processes made “works on my machine” a sordid reality.

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

Specifically, which tools and practices are we leveraging today that may not have been available three to four years ago? What does a modern dev stack look like circa 2022?

To complete my own experience and thoughts, 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 (and perhaps be impressed by) 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.

Scott Hanselman needs no introduction. He’s an important voice in the developer and Microsoft communities. In particular, I’ve been avidly following his blog and podcasts for years. It was an honor to have him participate; I’m a huge fan.

Ilai Fallach is the Director of Engineering at Velocity and one of the most innovative engineers I had a chance to meet. His strength is not only in identifying key technologies that make an impact on the dev process but also in how he adapts and implements them in practice. If you happen to be a Hebrew speaker, I genuinely recommend his talk at the Reversim conference; it’s available online.

Finally, I had the privilege of meeting Juraci Paixão Kröhling last month. We discussed observability and OpenTelemetry, among other topics. I was immediately impressed by his vision of development and the role of observability in making all of our lives better. Juraci works at Grafana and is one of the maintainers of the OTEL project.

As for myself, my name is Roni Dover, and my day job is developing Digma, an open-source Continuous Feedback platform. I embarked on this particular adventure because I was fascinated with development processes, something you may have picked up on if you read any of my other posts.

Devtools mentioned in the post:

VS Code

IDE Containerization

GitHub and SCM integrated tools

Observability and analysis

Most excited about

Other tools

I was curious about whether any changes had occurred over the past several years in terms of developers’ requirements. After all, the role of dev tools is to make developers more productive in what they do. If they need to own more than just the code or follow different practices, it will make sense for the right tools to appear that would empower them to do so.

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, such as DevOps, technical responsibilities, K8S operations, Docker, and cloud architectures.

These changes allow for smaller, feature-focused ownership, including connecting the code to the business value and owning the complete stack from frontend to different microservices technologies.

“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

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 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 happiness developer. Its lightweight nature and polyglot support make it ideal as an all-rounder platform that easily navigates different stacks and technologies, HTML, JavaScript, Python, Go, CSS, or Terraform.

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

vs code 71%, visual studio 33%, notepad++ 29%, intellij 28%, vim 24%, android studio, 22%, sublime text 20%, pycharm 19%, eclipse 15%.  These percentages are rounded down.
Source: 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 “really boosted my use of VS Code. Not using the mouse and clearing unnecessary panes from the IDE.”
  • Juraci: GitHub PR Plugin “for VS Code for code reviews.”
  • Roni: The Rest Client “extension makes it so much easier to test APIs, debug, troubleshoot, or just develop.”
  • Roni: VS Code GitHub Extension “Especially to start/stop docker-compose files based on different environment permutations without changing to the terminal.”

GitHub Copilot was definitely high on everyone’s list based on its promise and ability to save us eons of time for future dev generations. I, for once, welcome our code snippet-generating overlords.

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? Developing on a container completely removes the fuss around setting up virtual environments or dealing with compiled assets on different machines.

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

  • VS DevContainers allow VS Code developers to develop on a mounted folder inside a container. Removing the need for expensive virtual environment setup.
  • CodeSpaces takes a different approach. Instead of providing a containerized dev space within the IDE, make the entire dev environment, including the IDE, an immutable asset that can be spun up at will.

“For me, the most impressive thing is the standardization of the SDLC, particularly around today’s automated CI/CD pipelines that empower developers and allow them to focus more on development, and less on manual labor around getting code to production.” —Eli 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 beyond simply being a repository for change management.

In particular, GitHub Actions, a consensus among the team, made the necessary steps required to create a working pipeline and run actions, tests, and release processes almost trivial.

I had a chance to work with the GitHub Marketplace to assemble a release and CI flow recently and was amazed at how much simpler that experience is compared to struggling with Groovy scripts or other code-heavy pipelines. My prediction is that GitHub Actions and similar lightweight will slowly obsolete CI/CD frameworks.

Other SCM tools

  • Everyone: “GitHub CLI/GitHub Desktop”
  • Eliai: “A simple wrapper on top of the GitHub CLI makes it automatic to open PRs with GitHub template action items that help standardize the approved pull/merge request requirements.”
  • Ilai: “Refined GitHub really upgrades the use of the GitHub website with great QOL features.”
Source: https://xkcd.com/1629/

“Using OpenTelemetry as a replacement for most logs and metrics use cases and applying some useful conventions helped us streamline observability in Velocity.” — Eli Fallach

Ilai, Roni: “OpenTelemetry has established itself as the leading standard for observability. The benefit of having one agreed-upon spec is that it encourages a greater ecosystem to evolve around it. Support for OTEL is already there for the most common platforms and technologies.”

Roni: “Jaeger and Prometheus are the tools of the trade for traces and metrics that are becoming relevant to developers as well. I see observability as a huge improvement to code and development processes. It provides a way for the dev team to own their code all the way to delivery. I previously wrote more on how to integrate OTEL insights into the development process. Though not yet released, Digma will provide a way to get code insights out of this data.”

Ilai: “Semgrep is a great static analysis tool that concentrates on finding vulnerabilities in the code, but we’ve been using it to write custom linting rules very easily, and it has been a great addition to our tooling.”

source: https://www.commitstrip.com/en/2020/06/11/im-watching-you/?

Scott: “CoPilot will only get better.”

Juraci: “eBPF seems quite interesting.”

Ilai: “Most developers don’t need infrastructure; they need a platform to work on top of. That’s a big part of the value that Velocity brings by abstracting services and applications into a model that the developer can better understand. One of the projects that I’m most excited about is the Open Application Model (OAM), which brings a simplified model that answers most, if not all, of the use cases we’ve seen so far.”

Scott

Juraci

Eli

  • “When trying to troubleshoot serious networking issues in k8s, ksniff by Torq.io’s Eldad Rudich is super helpful and elegant.”
  • “Can’t go wrong with k9s.”
  • “And, of course, we use Velocity to create production-like environments for our own use. We spin up a production-like environment that contains the new code on every new PR and automatically run E2E tests on that environment prior to merging.”

Roni

  • “I believe in tools that integrate with the development flow rather than provide information on external platforms. Stepsize is a very interesting tool to manage issues in the context of the code in the IDE.”

We are just four ragged developers. Let us know what you consider a part of the modern dev stack. Again, here are the questions I asked the team. Feel free to send me your responses, and I will be happy to post anything interesting!

  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 (and perhaps be impressed by) if he 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? Do developers need to know more/less or own aspects of product development and release they weren’t involved in previously?
Want to Connect?You can reach me, Roni Dover, on Twitter at @doppleware or here.
Follow my open source project for continuous feedback at https://github.com/digma-ai/digma.

Leave a Comment