I have over the years learned some tricks which saves a lot of time,and I wish I had known them earlier. Some tricks are LaTeX-specific, but other tricks are more general. Let me start with a few examples:
Use LaTeX macros and definitions for easy reuse. This is particularly useful for when making many similar-looking figures. Another example is to make a macro that includes the $q$ when typing q-binomial coefficients. This ensures consistency.
In documents with many Tikz figures, compilation time can become quite brutal. However, spreading out all figures in many documents is also inconvenient. Solution: Use one standalone file, where each figure appears as a separate .pdf page. Then include the .pdf pages as figures in the main document. All figures are in one .tex-file, making it easy to reuse macros. I find this trick extremely useful, as it does not lead to duplicate code spread over several files.
Use bibtex and .bib files. I prefer to use doi2bib to convert doi's to a .bib entry (some light editing might be needed).
For collaboration, use git. Also, Dropbox or similar for backups. Keeping track of versions has saved me several times.
Learn Regular expressions, for search-and-replace in .tex files. This is useful for converting hard-coded syntax into macros.
Get electronic (local) copies of standard references, and make sure to name them in a sane manner. Then it is easy to quickly search for the correct book. These are available when the wifi is down, or while traveling.
Do file reorganization and cleanup regularly. Get final versions of your published papers, and store in a folder, as you'll need them for job applications. Hunting down (your own!) published papers in pay-walled journals can be surprisingly tedious!
Take the time to move code snippets from project-specific notebooks, and turn into software packages for easy reuse. Also, it is sometimes worth to spend time optimizing code - waiting for code to run does not seem like a big deal, but I have noticed that small improvements in my work-flow can have big impact. I am much more likely to try out a conjecture if it is easy to run the code.