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.
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.
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.
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
- Github Copilot
- HTML Preview
- Live Server
- Live Share
- Path Intellisense
- TODO Tree
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.
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:
A plugin manager for Fish.
Peco is a filtering tool to use with other commands like
top or many others.
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 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 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.
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:
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 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.
A great and complete alternative to browser dev tools. You can interact with the components doom, see actions, logs, requests and more.
An inspector for React and React Native, view requests & responses, logs, state, and much more.
An Electron debugger tool to debug production applications.
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.
The Robert C. Martin Clean Code Collection (Collection)
from: $60.00 now: $43.99