Developing, programming, coding, scripting, whatever you call it, is difficult. It's a fact.
Luckily, there are a plethora of tools we can use to make it just a little bit easier and faster to get code done and into production.
The tools I personally use evolve depending on the projects and technologies I am working on but the below list are the ones I use pretty much every day, both personally and with colleagues.
VS Code is my IDE of choice for 90% of my work. It is lightweight, but fully featured and has an extensive range of extensions to make working with any technology much easier. If I need a heavier option, I transfer over the Visual Studio proper itself (mostly for .NET centric projects).
Not much choice here for iOS app development. XCode has a bit of a learning curve for Apple integrations and inner-workings but does provide the best options for deploying an iOS app.
Again, not much choice for bundling and deploying Android apps. I actually like the Android Studio developer experience in general but don't spend a lot of time writing pure Java or Kotlin so my usage is limited to testing and bundling Android apps for release.
Given you'll see below that I'm using the Atlassian suite of project management tools, it just makes more sense to also use Bitbucket as my source control. Github is one I do use sometimes for personal projects, but I've found no massive differences in the functionality provided and they are both free.
Postman at its core is a relatively simple tool. It allows you to specific HTTP requests to URLs, pass data and see the response. These URLs can be production or in your development or test environments. It makes testing your API endpoints really simple and definitely speeds up my API building time by finding errors before even exposing the API to a user interface app.
These two are combined as they essentially provide the same functionality for me. Both have similar interfaces for connecting to SQL databases and performing management tasks and querying. Azure Data Studio also comes in MacOS flavour so can be used to manage SQL databases on your Mac.
Jira makes Agile/Scrum project management simple. I've found that even for relatively small projects with small teams, Jira sprints and bug cards makes development flow much easier.
Every developer needs documentation. Whether it is general stuff about the product, specific code related information or meeting notes and decisions, Confluence has a template for it.
Learning Git and all the frequently used command line commands is vital to ensure you actually know what you're doing to your source code repository. That being said, having a GUI that provides a visual representation of where your branches are and buttons to click to run the CLI commands, makes life for me substantially easier.
Slack is a pretty simple tool for us. 94% communicating and discussing issues - especially during these Covid-19 lockdown times. The other 6%? Giphy!
I fell into using Azure for my DevOps requirements (Why I Use Microsoft Azure) but it provides all the PaaS, IaaS, DBaaS services I need along with a simple enough user interface for configuring auto-deployments and application configuration settings and monitoring.
Automating the integration/deployment of production apps makes life substantially easier and faster. There's something comforting about simply having to push to your main branch and walk away knowing that unless you really stuffed up, your app will build and deploy to production without you being involved.
CodeMagic is a CI/CD solution geared mostly around mobile app deployment and has automated configurations to publish your apps directly to the Google Play Store or iOS App Store for the major mobile development frameworks. Saves me a bucket of time knowing I can just push the release commit on a specified branch and the app will be built and uploaded to the app store test tracks.
Sometimes I need to throw up a quick WordPress landing page or a simple website for a client. The reality is that for this sort of website where there's nothing more than a few pages and a contact form, WordPress is quicker and looks just fine. SiteGround provides easy install of WordPress sites and easy configuration sections to hook domains in, SSL certifications, CDN's and any other installs required.
Originally posted on my blog here