Dev Experience is not just for code
A lot of buzz surrounds DevEx when it comes to using APIs, tools, and libraries, but there's more to DevEx than just that. Comfort, team vibes, and the development environment play just as big a role in nailing a positive DevEx. It's no wonder that long waits to run tests and a crummy workspace can drag down your productivity.
You don’t have to be a DevEx guru to spot what’s cramping your style—after all, you're the user. In this blog post, I'm going to share some tricks of the trade that have seriously leveled up my developer experience over the years.
Development Environment
It really bothers me having to set up the development environment every day to run the project. I wish things were at least minimally automated so I wouldn't have to type in long commands.
Alias
Using aliases helps simplify commands and even combine several commands into one, which is why it's a common practice in my development environment. From running the project to setting up the screen and connecting Bluetooth earphones, I do it all with aliases. They are simple to set up, and you can give them short names like 'connect_earphones' to connect the earphones via terminal without needing to open the system interface.
Aliases are like nicknames for commands. To add an alias to your terminal, you need to edit the .zshrc files (or .bashrc depending on the shell you use), type alias alias_name='command to be executed here'
and save. After that, restart the terminal, and the aliases will be available as terminal commands.
The sky's the limit for aliases, and I use them a lot in my daily routine. Below, I list some examples that have been tested using Pop_OS!, a Linux distribution based on Ubuntu. If your system is different, use the Windows and MacOS GPT experts to adapt the code to your system.
Changing Monitor Position My setup includes an ultrawide monitor on the left and my laptop always on the right. The operating system never keeps this order, and I always have to manually open the settings to change the monitor positions. Now, with a simple screen command in the terminal, I have everything set up the way I like it in seconds. ✨
alias screen="xrandr --output eDP-1 --mode 1920x1080 --pos 2560x0 --rotate normal --output HDMI-1 --mode 2560x1080 --pos 0x0 --rotate normal --primary"
Running the Project Just like the screen setup, to run the project, you don't need to type a long command. Just create your alias and run it in your terminal in the project folder.
# Run project with alias
alias run_project="docker compose -f local.yml up -d && pyenv activate your-env && python manage.py migrate && python manage.py runserver"
# Stop the project with alias
alias stop_project="sudo docker stop your_containers_here"
Connecting Earphones and Other Bluetooth Devices In Linux distributions, Bluetooth doesn't usually work as well as in other operating systems. Because of this, I created an alias to make sure my earphones are connected, without needing to go into the system settings.
# Alias to connect your earphone
alias conect_earphone="bluetoothctl connect EARPHONE_BLUETOOTH_ADDRESS"
# Alias to disconnect your earphone
alias disconnect_earphone="bluetoothctl disconnect EARPHONE_BLUETOOTH_ADDRESS"
Browser Extensions
Extensions are an easily accessible feature since they're right in your browser, and most of them don't require complex configurations to work well. They are tools you should use to reduce annoyances and improve your DevExperience.
Below, I list some extensions I use in my daily routine to simplify tasks, reduce manual labor, and record screens effortlessly.
Bitwarden
Bitwarden is a password manager , and its extension detects the site you're currently on, allowing you to fill in your login automatically.
VisBug
This extension is for frontend developers. It helps you measure the distance between elements and offers other interesting features that make life easier for frontend devs.
SCRE.IO
This extension helps you record videos of your screen. It's not limited to the browser; it can record the whole screen, windows, browser tabs. It's very easy to use and is totally free.
Fake filler
This extension helps you quickly fill out forms using keyboard shortcuts. It's very useful in situations where you need to test flows that have many form fields.
AI
Another aspect that has greatly aided me are AI tools like ChatGPT and GitHub Copilot. They are allies in enhancing DevEx, but caution is necessary regarding permissions for data use. Coordinate with your company the usage of these tools, data anonymization, and limitations.
ChatGPT The most famous among generative AIs, ChatGPT features GPTs which are customized versions designed for various purposes. In my case, I've been using it extensively as a code assistant to clear up programming queries, like "what's the equivalent of JavaScript's .includes in Python?" or as an English tutor to correct messages before sending them.
GitHub Copilot Copilot is another AI that has boosted my DevEx. You can ask it to write code or let it autocomplete the code you’re typing. Most of the time, it gets what you need right, but sometimes it can go wrong, so it’s good to pay attention while using it.
I hope you enjoyed my tips. What have you been using to enhance your DevExperience?