For a developer, possessing a proficient collection of tools is crucial for optimizing processes and enhancing productivity. By 2024, my toolbox comprises essential applications and configurations that I deem indispensable. Below is a summary of the tools and their respective justifications that I employ.
Web Browsers; Firefox and Chrome
Firefox is my preferred browser for development work because of its powerful developer tools, advanced privacy features, and compatibility with the newest web standards.
Although Firefox is my preferred browser, I also use Chrome. Due to its widespread use and extensive set of development tools, Chrome continues to be essential for testing and debugging purposes.
I optimize my Firefox browsing experience by utilizing a variety of essential plugins.
- Empty Cache Button: A simple extension to clear the cache without needing to dig into the settings.
- React Developer Tools: Essential for working with React applications, providing a detailed view of component hierarchies and props.
- Redux DevTools: Critical for debugging Redux state changes in complex applications.
- RescueTime for Firefox: Tracks time spent on various sites, helping me stay productive and focused.
- Apollo Client Devtools: A must-have for developers working with GraphQL, this tool allows for deep inspection of GraphQL queries and caching.
- FoxyProxy: Simplifies proxy management, allowing easy switching between multiple proxy configurations.
- WAVE Evaluation Tool: Useful for accessibility testing, providing visual feedback about the accessibility of web content.
- User-Agent Switcher: Allows quick switching between different user-agent strings for testing purposes.
The Command Line Interface; Warp
The Command Line Interface, sometimes known as CLI, is a user interface that allows users to interact with a computer program or operating system through text commands. One example of a CLI is Warp.
Warp is a terminal that provides a user-friendly interface. The software is equipped with AI-powered command recommendations, block-based workflows, and a range of keyboard shortcuts, which distinguishes it as an alternative to traditional terminals.
IDE: Visual Studio Code
Visual Studio Code functions as my integrated programming environment (IDE).
brew install cask visual studio code
Exploring VS Code Extensions
General Development:
- actionforge.actionforge: Automate routine tasks and boost productivity.
- amodio.tsl-problem-matcher: Simplifies TypeScript linting and problem matching.
- better-ts-errors.better-ts-errors: Enhances TypeScript error messages for easier debugging.
- bradlc.vscode-tailwindcss: Tailwind CSS IntelliSense support for rapid UI development.
- christian-kohler.npm-intellisense: Autocompletes npm modules, saving time during development.
- dbaeumer.vscode-eslint: Integrates ESLint into VS Code, ensuring consistent code quality.
- esbenp.prettier-vscode: Formats code consistently across projects using Prettier.
- github.copilot: AI-powered code completion for faster and smarter coding.
Specialized Tools:
- ms-azuretools.vscode-docker: A must-have for containerized application development.
- ms-vscode-remote.remote-containers: Seamlessly connect to and develop within containers.
- vscode-icons-team.vscode-icons: Customizable icons for a visually pleasing workspace.
- yoavbls.pretty-ts-errors: Further improves the clarity of TypeScript error messages.
Productivity Enhancers:
- gruntfuggly.todo-tree: Organizes TODO comments in your code.
- oderwat.indent-rainbow: Colorizes indent levels, making code structure more visible.
- silofy.hackthebox: A specialized extension for cybersecurity enthusiasts.
- vscjava.vscode-java-pack: Comprehensive tools for Java development.
- wix.vscode-import-cost: Displays the cost of importing npm packages.
Additional Tools
Password Manager: I utilize the Keeper® Password Manager & Digital Vault to effectively handle and safeguard my passwords, guaranteeing that all my accounts are shielded using robust and distinct passwords.
API Testing: I utilize both Postman and Insomnia for the creation and testing of APIs. Both tools have robust capabilities for testing RESTful APIs, with Postman offering a wider range of functions and Insomnia standing out for its simplicity and superior performance.
Web performance analysis can be effectively conducted using the remarkable tool called YellowLabTools. The tool offers comprehensive analyses on performance bottlenecks, aiding in the optimization of online applications for enhanced speed and efficiency.
Note-Taking: I utilize the software application Obsidian to fulfill all of my note-taking requirements. Obsidian's versatility and robust linking structure make it well-suited for effectively organizing intricate information. The plugins that are crucial for me include:
- Dataview: Enables me to retrieve and exhibit notes in a well-organized fashion.
- The GitHub Link feature facilitates convenient connecting of notes to GitHub repositories.
- Jira Issue: Enables the direct monitoring of Jira issues within Obsidian.
- The Templater feature offers sophisticated templating capabilities, making it easier to create new notes and documents.
Automating Routine Tasks
In order to ensure that all aspects are current and functioning well, I employ a daily script that automates updates and carries out regular maintenance tasks. This script guarantees that my environment is consistently prepared for the day's tasks.
The link provided is a GitHub gist with the URL:
https://gist.github.com/ehsanpo/1c205438c1e67b7c8e12a35e996e50f3
Here’s a breakdown of the script:
Homebrew Updates:
The script checks for and installs updates for all Homebrew packages, including cask applications.
brew update
brew upgrade
brew upgrade --cask
brew cleanup -s
System Diagnostics:
It runs diagnostics to ensure the system is in good health.
brew doctor
brew missing
Log Maintenance:
To manage disk space and keep the system clean, the script deletes logs on the first Monday of each month.
DAY_OF_WEEK=$(date +%u)
DAY_OF_MONTH=$(date +%d)
if [ "$DAY_OF_WEEK" -eq 1 ] && [ "$DAY_OF_MONTH" -le 7 ]; then
rm ~/bin/brew_update_logs.txt
fi
MAC Address Spoofing:
For privacy and security, the script changes the MAC address each day.
NEWMAC=$(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//')
sudo ifconfig en0 ether $NEWMAC
Weather Report:
The script greets me with the weather forecast, adding a personal touch to my start of the day.
Weather=$(curl -s http://wttr.in/malmo?T | grep -m 1 -Eo -e '-?[[:digit:]].*°.+')
say "Weather today is $Weather"
Tools Powered by Artificial Intelligence
By 2024, AI tools have seamlessly integrated into my development workflow, offering indispensable aid, streamlined automation, and innovative contributions throughout different phases of development:
ChatGPT is utilized for various purposes such as ideation, code debugging, content generation, and document drafting. The natural language comprehension of this tool simplifies intricate problem-solving tasks and enhances my productivity by delivering prompt and precise responses.
GitHub Copilot is seamlessly integrated into Visual Studio Code, providing advanced coding assistance by offering code completions, producing complete functions, and even predicting the subsequent steps in my code. It is akin to having an always available AI-driven partner coder to provide assistance.
I depend on Midjourney to create AI-powered visual content for my design and creative projects. Midjourney specializes on transforming abstract concepts into visually captivating outcomes, expediting the design workflow. Their expertise lies in producing graphics, concept art, and UI elements.
Suno offers cutting-edge audio tools powered by artificial intelligence, which are highly valuable for producing soundscapes, voiceovers, and several other types of audio content. Suno enhances my work by providing great audio capabilities, whether it's for an application, a game, or even just improving a presentation.
Top comments (0)