How I Work
I get asked frequently about various aspects of my day. How I structure my time. What tools I use. What editor and color scheme I prefer. So, in this post I’ll try to answer these questions.
The Average Day
I work on Laravel full-time from my own home office. Typically, I am in the office by 8:00am and the first thing I do is answer all of the Forge, Envoyer, and Spark customer support emails that came in during the night. I use Apple Mail on Mac and Outlook on iOS. Typically there are about 15 emails to answer. I like to clear my inbox before moving on to anything else. I revisit my email periodically throughout the day to keep it clear.
Once my inbox is clear, I look at all outstanding pull requests across all of the Laravel GitHub repositories. I try to keep the outstanding pull request count at no more than 10–12 across the entire Laravel organization. Typically I have my email cleared and pull requests worked by about 9:00am. Mohamed helps me vet and triage GitHub issues and pull requests.
Once I have merged or closed the new pull requests that have come in overnight, I’m ready to work on whatever project I want. Typically, this is Laravel related. Lately I have primarily been working on Horizon, a new Laravel package I hope to talk more about at Laracon US.
I stop working at 5pm to have dinner and hang out with my family. Around 9:30pm, I will typically revisit my email to clear out any emails that came in after 5pm. This usually only takes 10–15 minutes and helps me reduce the email load in the morning.
Development Machine / Office
My primary development machine is a 5k iMac with a 4Ghz processor and 16GB of RAM. I have an additional 24" 4k monitor on each side of the iMac. I keep both of the additional monitors set to a very dark grey background so that they basically appear to be turned off when I am not using them. This keep all of the pixels from becoming overwhelming.
My primary text editor is Sublime Text 3. I primarily use the Soda theme and the Inspired GitHub color scheme. I use Operator Mono as my primary coding font. I use SublimeLinter to get PHP syntax checking in Sublime.
My entire Sublime Text preferences file looks like this:
I typically keep my actual Sublime font size around 10 when developing.
I use iTerm2 and Oh My Zsh with the built-in “robbyrussell” prompt. I use the Arthur color scheme and typically crank the vertical spacing up on iTerm2 so that the lines have some room to breathe. Like Sublime, I use Operator Mono as my terminal font.
To run Forge and Envoyer, I use a variety of services:
- DigitalOcean for servers
- Linode for more servers
- Cloudflare for DNS and SSL
- Ottomatik for database backups
- AWS for storage and queues
- Pusher for real-time events
- Authy for two-factor authentication
I primarily use Bear, Wunderlist, and Trello to stay organized. I keep long form notes in Bear, which I use as a replacement for Apple Notes. I use Wunderlist for personal checklists and checklists for all side-projects. I use Trello to keep track of Laravel related things, such as upcoming features or breaking changes I need to document.
I also built a small Laravel application that sends me reminders on Telegram about things like taking out the trash, changing the house air filters, paying monthly taxes, and more. This application uses Laravel’s command scheduling capabilities and Guzzle to send messages through the Telegram API.
Originally published at gist.github.com.