My environment and tools for 2024 as a DEV
Discover my handpicked 2024 development toolkit—a blend of essential programs, tools, and plugins that drive my productivity and innovation as a developer. Explore how these resources equip me to thrive in the ever-evolving world of software development
As the world of software development continues to evolve at a breakneck pace, so too does the toolkit of a modern developer. As we step into the year 2024, I find myself excited to share with you an overview of my current development environment and the essential tools that have become integral to my daily workflow. In this post, I'll walk you through the technologies, languages, frameworks, and hardware that empower me as a developer in this dynamic era of software engineering.
In a field where change is the only constant, staying up-to-date with the latest trends and tools is not just an option, but a necessity. Join me on this journey as we explore the key components that make up my development setup in 2024, and how they enable me to build, innovate, and thrive in the ever-evolving world of software development.
Code editor/IDE
In the world of software development, two essential tools take center stage: code editors and Integrated Development Environments (IDEs). These are the workspaces where developers bring their ideas to life, write, and refine code. While they share the common goal of facilitating code creation, they each have their own unique role and advantages.
Zed
Write in Rust, Zed is awesome and I fell in love with this editor, it is fast, simple, and has a lot of features. Unfortunately, it has only a Mac version, but you can see the other system version's status here, I miss some features yet, I come from Visual Studio Code and I like things like mini-map, Git integrated client (I use the merge/diff a lot), and the possibility to choose icons library. All these features are listed as "Top issues" in the Zed repository and maybe it's come real in the feature.
Visual Studio Code
VSCode is still the most complete code editor, in my opinion, writing in Electron, this code editor is my secure place to develop. Yes, I use Zed, but when I need things that I don't see there I switch to VSCode again.
Here are my settings and plugins in VSCode:
- Ayu theme
- Cascadia Code font
- Color highlight
- DotENV
- EditorConfig
- Eslint
- File-icons
- Github Copilot
- gitignore
- GitLens
- Handlebars
- HTML Preview
- Live Server
- Live Share
- Path Intellisense
- Prettier
- TODO Tree
- vscode-styled-components
- WakaTime
Terminal
A terminal emulator is a thing that I always try some new and always back to the same: Macos: iTerm2, Linux: Tilix, Windows: Windows terminal.
In this case, I use iTerm2, it's simple and has a lot of features that I like; split panel, tabs, profiles, and themes.
iTerm2
For the theme I choose the Bluloco Dark but you can find more here.
Fish Shell
This is another piece of my environment that I like to try new, for a long time I used ZSH, but a friend showed me fish one day and I decided to try, that was a year ago. Fish has a built-in autocomplete and many other features.
Fish is considered an exotic shell since it does not adhere to POSIX shell standards - Wikipedia
Check this gist to see my alias and configs in fish, my plugins:
Fisher
A plugin manager for Fish.
Peco
Peco is a filtering tool to use with other commands like history
, top
or many others.
Exa
Exa is an alternative to ls
command, it adds icons to the files, change the view of files, you can toggle the list columns, filter, and much more.
Z
Z is a directory jumping, Z tracks the directories you visit. With a combination of frequency and recency, it enables you to jump to the directory in mind.
Starship
Starship is a customizable prompt that can be used in any shell.
Rest/HTTP request client
REST clients are the go-to tools for developers and engineers when it comes to testing, debugging, and consuming RESTful APIs. They provide a user-friendly interface for crafting, sending, and receiving HTTP requests, making the exploration and interaction with web services both efficient and accessible.
HTTPie
HTTPie is a new software in this area but it looks awesome, the UI is very simple and beautiful, and they have clients for all the systems including a CLI and a Web-based client.
Databases
In software development, databases serve as a reliable storage and retrieval system, enabling applications to store user profiles, process transactions, track inventory, and much more. Developers leverage various types of databases, such as relational databases like MySQL and PostgreSQL, NoSQL databases like MongoDB, and in-memory databases like Redis, to address specific project requirements.
I have many tools for each database that I use, so this is the list:
Debuggers
Debugging tools are indispensable assets in the world of software development. They are designed to uncover and resolve issues, glitches, and errors within code, ensuring that applications run smoothly and efficiently. Debugging is a critical phase in the development process, allowing developers to identify and fix issues that may disrupt a program's functionality.
Flipper
Flipper is a platform for debugging iOS, Android, and React Native apps. Visualize, inspect, and control your apps from a simple desktop interface. Use Flipper as is or extend it using the plugin API.
React Native Debugger
A great and complete alternative to browser dev tools. You can interact with the components doom, see actions, logs, requests and more.
Reactotron
An inspector for React and React Native, view requests & responses, logs, state, and much more.
Debugtron
An Electron debugger tool to debug production applications.
Others
So, I use many other things like software for notes, to draw diagrams, to free space in the Mac, and more, here is the list that I see right now:
Crafting a powerful development environment for 2024 has been a key focus. The tools and plugins I've highlighted in this post are the bedrock of my productivity and efficiency as a developer. With these resources at my disposal, I'm poised to tackle the challenges and opportunities of the ever-evolving tech landscape.