Python Training by Dan Bader

Tools & Resources I Like

A curated list of the hardware and software tools I use as a software developer and to run my business.

I’ve been getting a few emails lately about the specifics of the equipment that I use for software development work and to run my consulting business.

I tend to change and optimize my setup quite frequently so this page will be a living document to share my latest findings and to point interested developers to.

Before we dive in to the actual tools and resources there are two things I’d like to mention upfront:

  1. I’ve tested and stand behind every recommendation on this page. I only endorse products and services that I’m using personally and that I find awesome.

  2. Some of the links below are affiliate links which means if you choose to make a purchase I get a commission. The commission comes at no additional cost to you. And whatever I earn through these links I feed right back into my business to produce more helpful free content for you.

Alright, here we go 😊

Jump to: ComputersMy Desk SetupNetwork & WifiMobile DevicesScreencastingServicesWritingSoftware DevelopmentBooksSoftwareMobile & Tablet AppsRemote Work


15-inch MacBook Pro: I’m pretty much a Mac fanboy for my day to day work. Apple’s hardware is great (if a bit expensive) and I find macOS to be very stable without having to deal with finding driver updates etc. My main machine currently is a late 2011 15-inch MacBook Pro with a 512 GB Samsung SSD and 16 GB of RAM. It’s an older quad-core i7 but in terms of performance it’s still doing well. I’m actually surprised how fast it still is. I’m probably going to upgrade to a 13-inch Macbook Pro at some point.

2014 Mac Mini: My backup machine is a 2014 Mac Mini with the entry-level CPU and RAM config (4 GB). One thing that I like is how much more quiet the Mac Mini runs under load compared to the Macbook Pro. I wish I would’ve gotten more RAM, though. 4 GB isn’t enough for serious development work, and you can’t upgrade the RAM on the 2014 Mac Minis.

Intel NUC: I use this as a home server slash media center, running a bunch of dockerized services and scripts on Xubuntu 16. It was fun to set up but If I had to do it again I’d probably just get an used Mac Mini for the same purpose.

Seagate Backup Plus HDD: I’m using this 4 TB drive to do local backups through Time Machine on my Macs. I also have cloud backups for all my computers on S3, see below.

My Desk Setup

Ikea BEKANT adjustable standing desk: I’ve been very happy with my Ikea standing desk. It’s nice being able to work standing up for a few hours each day. There’s a 10 year warranty on this desk so hopefully I’ll get to use it for a long time.

Dell U2515H monitor: I’m using a single Dell U2515H 25” monitor at a 2560 x 1440 resolution. I’m not a big multiple monitor fan and this one hits the sweet spot in terms of price and performance. Highly recommended.

Keyboard and Mouse: I’m using a Bluetooth Apple Magic Mouse 2 and Apple Wireless Keyboard (the older one) combo. I’ve worked with all kinds of input devices and these two work well for me and keep my wrists happy.

Foam roller: I love rolling around on this thing after a workout or after an intense coding session 😄 It helps relax my back whenever I feel tense. The brand on these doesn’t really matter so be sure to get the cheapest one.

Lacrosse ball: I don’t play lacrosse but lacrosse balls are awesome for massaging your back or your shoulders if they’re tense. My wife Anja got it for me and I’ve been happily rolling around on it ever since.

Network & Wifi

Ubiquiti UniFi UAP-LR Wifi Access Point: This is an enterprise-grade Wifi access point. We had trouble with spotty wifi reception in our apartment with the router I used previously and this thing fixed it 100%. I love it! Plus I like the fact that this is just an access point – which means I can update or repair it independently from my router. Also check out the LR’s bigger sister, the UniFi UAP-AC which supports 802.11ac (the UAP-LR is 802.11n only).

Ubiquiti Edgerouter Lite 3: This router is absolutely solid. I use it in combination with the UniFi AP and I’ve been super happy with this setup. I can’t remember having to reboot it except for installing firmware updates. A UniFi AP + Edgerouter combo likely won’t cost you more than a high-end integrated consumer router. And I bet you the Ubiquiti stuff is going to be longer-lived.

Mobile Devices

Kindle Paperwhite: I was tempted to get the Kindle Voyage first but when I tried at a store I didn’t notice too much of a difference compared to the Paperwhite. I read books on it every day at home or while traveling and it works absolutely great. I upgraded from a non-Paperwhite Kindle a while ago and the backlit display of the Paperwhite makes a huge difference. I also got the Amazon Kindle Paperwhite Case when I bought my Kindle and I’ve been happy with it, too.

iPhone 6 64 GB: I’ve been happy with my iPhone 6. It does everything I need and I like iOS, too. Because I also use macOS on my workstation and iOS on my iPad this setup works well for me. I haven’t really seen the need to upgrade from the iPhone 6. I might get a “Plus” size iPhone when the 6 starts feeling sluggish. My hope is that a “Plus” iPhone would replace the iPad (and potentially the Kindle) while I’m traveling.

Apple Watch Sport 38mm: My main use case for the watch is tracking my workouts. I also wear it pretty much every day as my regular wrist watch. It’s not too big (but it’s pretty big and dorky still). The sport band is quite comfortable and the software got a lot better with WatchOS 3. I’d say the Apple Watch is worth it if you have a use for the fitness tracking features or if you simply like the fact that you’re wearing a tiny and pretty darn powerful computer strapped to your wrist. It also feels like I finally get to wear the geek watch I dreamed about as a kid 😜

iPad Mini (Retina) 64 GB: The iPad is great for browsing or reading stuff on the couch or for playing the occasional game. I like the smaller iPad size better. It just hits the sweet spot for me when I’m traveling, for example. I’d love to eventually replace this with a bigger phone.

Microsoft Universal Mobile Keyboard: Microsoft still knows how to make great hardware and their “mobile keyboard” doesn’t disappoint. I like that it has a hardware switch to toggle between different devices it’s paired to. I do quite a bit of writing with this keyboard using Ulysses on my iPad. It’s a great combo for traveling and taking notes at conferences.

Screencasting & Recording

Screenflow: I record all my screencasts with Screenflow on macOS. Screenflow is fantastic, I’m very happy with it. I had some sound issues on YouTube when I uploaded other screen recordings previously but Screenflow seems to get it right every time with its built-in YouTube uploader.

Keynote: I do my video intros in Keynote on macOS. This works surprisingly well. Just add some animations to your slides and export to Quicktime video.

Pyle-Pro PDMIC58 Microphone: This is actually a budget microphone but the quality it delivers is amazing. I’ve compared it with more expensive ones and I think I’d have to spend $200+ to get something that sounds better. The Pyle mic is an unbelievable deal! I learned about it on Marco Arment’s podcasting microphone shootout.

DBX 286s mic preamp/processor: I previously used Screenflow’s built-in audio editing tools to apply compression etc. to my voice recordings but this thing simply blows Screenflow out of the water quality wise. Plus I do a lot of video calls and using a hardware signal chain for my voice recording makes sure I sound great on Skype, too 😜

Behringer UM2 audio interface: While I’m using this as my USB audio interface at the moment I’m not happy with it. It picks up some amount of static noise that I can’t seem to get rid of. I’ll probably swap it out soon for the Tascam US-2x2. Don’t buy the UM2.

Audio-Technica ATR2100 USB Microphone: I use this mic when I’m away from home and don’t have access to my full recording setup. The Audio-Technica mic has a built-in audio interface and simply connects via USB. The quality is comparable to the Pyle-Pro, definitely good enough for recording screencasts or podcasts. Get this mic if you’re starting out! If you’re based in Europe then look for the Samson Q2U mic which is identical to the ATR 2100 (same manufacturer).

Aputure A.lav Lavalier Mic: I wanted a smaller lavalier (clip-on) mic for recording videos and going on Skype calls with clients. The Aputure mic works great for that and it’s also a budget pick with an excellent quality for the price. Highly recommended and it comes with a small carrying pouch which is super handy if you’re taking it on the road.

Open headphones – Sennheiser PX 100-II: These headphones sound amazing and are super comfortable. They’re open which means that they don’t block sound as well, meaning the people around you can hear your music and you can hear whatever noises they make. This doesn’t really matter if you’re working from your own office or at home but in a shared space you’ll be better of with a pair of closed headphones.

Closed headphones – Sennheiser HD 380 PRO: I can absolutely recommend the Sennheiser HD 380 PRO if you’re looking for a pair of closed headphones. The advantage of closed headphones is that they passively block sound so the people around can’t hear your music. Also they’re better at blocking out conversations and other noise so they’re great for working in an open office space or from a coffee shop.

Noise-cancelling headphones – Bose QC 15: I got these as a gift and they’re awesome for travelling and going on flights. They look a bit dorky but who cares, right? I believe the QC 15’s were discontinued and superseded by the Bose QC 25.

Logitech C930e webcam: I’m super happy with this webcam. It records at a full 1080 HD resolution and does its own video compression internally, which helps keep CPU load (and therefore noise) low during video calls or screencast recordings. (Be sure to check get the Webcam Settings app for macOS to fine-tune your recording settings, it can make a huge difference.)


GitHub: I’m super happy with my (paid) GitHub account. It gives me the freedom to create private repos for every tiny thing I’m working on. GitLab and BitBucket would be good alternatives. Although I like how GitHub works well as a developer’s portfolio of sorts.

DigitalOcean: My personal websites run on DigitalOcean boxes and I’ve been happy with their service, performance, and support.

Amazon Web Services: I’ve been using AWS to store cloud backups in S3 for all my computers and I’ve been happy with it as a storage backend.

Heroku: I found that it’s hard to beat Heroku when it comes to quickly hosting experiments and small projects. I’ve also helped build and set up a number of client projects on Heroku and they’ve been a great partner.

Google G Suite (Google Apps for Business): You can sign up for a “G Suite” (formerly Google Apps for Business) account to use Gmail and other Google products with your own domain.

Dropbox: I have a paid Dropbox account to keep some of my files synced across computers and also available on my phone and tablet. My photography workflow is also built around Dropbox. The “upload screenshot” feature is great, too. Just hit CMD+Shift+4 and Dropbox’s client app automatically uploads your screenshot and puts a link to it in your pasteboard. Super helpful for hassle-free screenshot sharing via email or your-chat-app-of-choice.

Xero Accounting: I use Xero to do the accounting for my business. It was recommended by my accountant because it is more powerful than FreshBooks. For example, it supports multiple currencies and is generally a lot more flexible. It took me a while to get used to Xero but now I’m very happy with it. (Use this link to get 30% off for the first 6 months of your Xero subscription.)

Gumroad: I sell some of my products and services through Gumroad as my payment provider. They’re awesome! If you’re thinking about selling a product or a service online definitely try them out. It’s so much quicker to use Gumroad than to develop your own payment solution.

Drip Email Automation: I switched over from MailChimp to Drip to host my mailing lists and never looked back. This thing is a nerd’s dream. Well worth the money!

Netlify: I use Netlify in combination with GitHub pages to get SSL working on custom domains. I can do everything I need to do with their free tier but I’m impressed with their service. They’ve been very helpful, quick to respond, and friendly.

Leadpages: I’ve been using Leadpages as a quick way to host email opt-in forms and landing pages for some of my projects and experiments. Their templates are great whenever you want to try out an idea quickly without having to set up a new static site

Hover Domain Hosting: If you’re looking for a no-nonsense and non-scammy service to register your domains with I recommend Hover. They have great prices and don’t get in the way. I’ve been using them for a long time and they never disappointed.

Feedbin: When Google Reader was discontinued I switched to Feedbin. I rarely used its web interface and mainly use it as a sync service for other news reader apps. It works reliably and I’m happy with Feedbin.

Instapaper: Instapaper almost completely replaces browser bookmarks for me. It lets me save all of the interesting articles and videos I come across and then syncs them to my iPhone, iPad, and Kindle so that I can read them in batches when I’ve got time. Highly recommended – the service and their apps just keep getting better and better.

Calendly: Calendly is a tool for scheduling meetings. It integrates with my Gmail calendar and makes it super easy to schedule client appointments or even calls with friends over different timezones (no more emailing back and forth). If you’re doing any kind of consulting work then do yourself a favor and try out Calendly.


Ulysses: I switched from Scrivener to Ulysses about a year ago to get cross-device sync, which Scrivener didn’t support at that time. Ulysses is also available on iPhone and iPad and I often use it to take notes while I’m out and about or even to sit down and write on my iPad.

Marked 2: A preview app for Markdown. Marked is handy for all kinds of things involving Markdown files, like previewing blog posts or README files. I also like its author features that can highlight word repetitions or overused words. I especially like this feature for proofreading.

Sublime Text 3: Well, what can I say. Sublime Text. It’s awesome. It’s my favorite editor hands-down. I even wrote a book about setting up an effective Python development environment with Sublime Text 😃.

Scrivener: I wrote the drafts for a thesis and a few research papers in Scrivener and it’s a great tool for that. It’s possible to export Scrivener documents to LaTeX order to do the final edits and typesetting pass. There’s now also an iPad companion app for Scrivener.

Software Development

Dash: Dash gives you offline access to hundreds of documentation sets. It caches complete doc sets so you can read them and search them offline. Dash is great, I use it to look up stuff all the time. Especially when you have a slow internet connection it’s a great timesaver.

Code editor: My main editor is Sublime Text 3 with the settings explained in my book.

Monospace fonts: I absolutely love Luxi Mono as a programming font and use it most of the time. I also like Ubuntu Mono.

Terminal emulator: I use iTerm2 on macOS as my terminal emulator. It’s a fantastic program! You should definitely try it out if you haven’t yet, it’s much better than the stock Apple terminal that comes with macOS. One of my favorite iTerm2 features is the ability to open files and folders simply by Cmd+Clicking on them in the terminal.

Python REPL: I use bpython as a replacement for the standard “python” REPL. Bpython calls itself a “fancy interface to the Python interpreter” and supports syntax highlighting and even autocomplete for Python code. I love bpython, it’s a great tool. Check out this overview video I recorded.

Git client: For working with Git I use the Git command line client and Gitup to occasionally visualize branches and merges.

Package manager: Homebrew package manager for macOS.

Python test workflow: My testing workflow for Python is built around Pytest. I like it for its simplicity and plugin ecosystem.

For my development work that’s pretty much it… I like to keep my setup relatively simple and I’m not a fan of huge IDEs. All I need really is a terminal, Sublime, and Python.


Software engineer reading list: I collected these in a separate article – a continuously updated list with my favorite programming books, sorted by topic.

Books to move past the beginner stage in Python: Recommendations for intermediate-level Python books that help you get past the basics so you can start working on small projects.


Arq backups: Arq is an amazing backup tool for macOS and Windows that stores encrypted backups on the cloud storage provider of your choice. Unlike other cloud backup solutions Arq’s backup and metadata format is open and documented. I use Arq in combination with Amazon S3 and the “Glacier” storage tier to keep cheap and long-term backups.

SizeUp: SizeUp is a window manager for macOS and it’s one of these little indispensable tools that I use hundreds of times every day. I have shortcuts for resizing app windows to cover a quarter, half, or all of the screen and that is so much better than using the mouse for the same job. I can also recommend the Magnet window manager available on the macOS app store.

Alfred 3: If you’ve never used it Alfred doesn’t look all that helpful. But once you’ve tried it I guarantee you won’t want to miss it anymore. It’s one of my favorite productivity tools and I wrote some of my own plugins for it.

Bartender 2: Bartender helps you organize your macOS menu bar apps. You can reduce screen clutter by hiding menu bar icons you don’t need to see all the time, for example the Bluetooth icon.

TextExpander: TextExpander allows you to set up system-wide snippets that auto-expand into chunks of text you frequently need. Again this doesn’t sound super helpful but once you’ve gotten used to it it’s an amazing productivity tool. I have snippets for all kinds of things – from basics like my email address or home address to code snippets and email templates. (If you’re on Windows check out PhraseExpander.)

Acorn 5: Acorn is a macOS picture and photo editor that has been around for a long time. It’s a well-written piece of software that never disappointed me. I think it’s a great alternative to Photoshop if you’re not a professional designer. Feels a lot snappier than Gimp on macOS, too.

Simplenote: My note-taking tool of choice. It’s dead simple, synchronizes with my iOS devices and just works. Also check out Notational Velocity as an alternate front-end for Simplenote’s sync service.

Mindnode 2: Mindnode is the best mind mapping tool for macOS hands down. It’s a beautiful and stable app and its developer takes customer feedback seriously. I usually flesh out all of my talks in Mindmap before I start putting together slides.

Day One: A journaling app that’s great for travel diaries. My wife and I started using it on a road trip down the US west coast and fell in love with it there. It’s awesome for tracing back your travel path and remembering the best spots and experiences. You can share journals across devices and accounts so that multiple people can view and edit them at the same time. My parents love the app, too 😊

Timer (Pomodoro App): I’m a huge fan of the Pomodoro Technique for tracking time and time-boxing tasks. I like the “Timer” app because it lets me track my time spent on Pomodoros directly in iCal. I’ve recently also started experimenting with KanbanFlow, which is basically a mashup between Trello and a Pomodoro timer.

Timing: Timing is an awesome little tool that runs in the background all day, automatically tracking how you spend your computer time. Manual time tracking can be cumbersome and with Timing I can still get a breakdown of how I spent my workweek.

Sip: A system-wide color picker widget for macOS that’s handy for any kind of web development or design work.

Kuvva Wallpapers: If you like pretty wallpapers on your computer screen then you’re going to love Kuvva. It gives you a never-ending stream of fresh wallpapers. The way I use it is to pick my favorites and then let Kuvva cycle through them every couple of days.

Deliveries: A package tracking app that tells you where your packages are and when they’re going to be delivered. Super reliable.

Calca: Calca is an amazing mix between a text editor, a symbolic calculator, and a spreadsheet app. Sounds crazy but works well in practice.

Soulver: Somewhat similar to Calca. Soulver is more of a calculator replacement for me, whereas I like Calca better for doing things that I’d otherwise do in a spreadsheet.

Deckset: Generates great-looking presentation slides from Markdown text files. I like Deckset’s built-in templates. Deckset also has syntax-highlighting for most common languages built-in, which makes it great for creating presentations that contain a lot of code samples.

1Password: My password manager of choice. A polished and well-maintained app that’s worth the expense.

Webcam Settings: Logitech’s macOS app for changing webcam settings doesn’t have all of the features of the Windows version. Luckily someone recommended Webcam Settings to me. It allows you to really drill down into the webcam settings and lets you manually configure things like the autofocus or white balance settings.

World Clock : Integrates into OS X’s Notification Center and shows your favorite timezones at a glance.

Mobile & Tablet Apps

I went over my iOS and iPad home screens to find the apps that I use the most frequently.

Things: A great task management and GTD tool. Also available for iPad and macOS.

Tweetbot: A better Twitter client.

Pythonista: Write Python on the go 😃. Pythonista is great for little Python experiments or reading the Python docs.

World Time Widget (iOS): World clock for iOS’s Notification Center so you can check the time in your favorite timezones quickly, even when your phone is locked.

Overcast: An amazing podcast player. Probably one of my most used apps.

Weather Line: Weather forecasts with a great visualization.

1Password: I use 1Password on macOS so naturally I wanted the iOS companion app as well. I think it’s the best password manager from a usability perspective.

MiniHack: A cute little Hacker News client for iOS. For those times where you’re really bored and just need another time sink on your phone. Careful, it’s addictive.

Reeder: A great RSS reader for iPhone. On my iPad I like Mr. Reader – unfortunately it looks like it was discontinued.

Instapaper: Like I mentioned earlier I love Instapaper. Their iOS apps are simply great.

Reuters: My favorite news app. Fast and focuses on the content.

Nuzzel: A cool little app/service that discovers popular articles shared by your Twitter contacts. Basically a sane way to catch up on the best stuff shared by you network.

Scanbot: Quickly scan documents to PDF with your phone’s camera and sync them to your computer. The quality is surprisingly good. Super handy to scan receipts and all kinds of paperwork.

DataMan: Tracks the data usage on your cell phone plan and gives you forecasts and warnings if you’re getting close to the limit.

Prompt 2: An SSH client for iOS that works well for occasional server maintenance or fire-fighting while you’re away from your computer.

Deliveries: A well-designed package tracking app. Also available on macOS.

Pushover: This is a cool service that lets you trigger push notifications on your phone (and potentially your smart watch as well) from all kinds of data sources. I have it set up to get downtime notifications for my websites, for example.

TextExpander: Adds a custom keyboard to iOS that understands your TextExpander shortcuts. A bit clunky at times but still extremely useful.

Terminology: Terminology calls itself “a browser for the English language” and that’s apt. It’s a mixture between a dictionary and a thesaurus and a great writing tool.

1Blocker: The best adblocker I found for iOS.

Mindnode: A companion app for the macOS version of Mindnode. It looks beautiful and works great. Syncs with the macOS version.

Simplenote: My note taking app of choice.

Day One: Companion app for the macOS version of Day One. It makes a great travel diary and journaling app.

Remote Work Tools

I wrote a longer post about my favorite tools a while ago. Click here to read it.

I just typed this off the top of my head… let me know if there’s anything in particular that you’re interested in and I can give some more detail 😃

<strong><em>Improve Your Python</em></strong> with a fresh 🐍 <strong>Python Trick</strong> 💌 every couple of days

Improve Your Python with a fresh 🐍 Python Trick 💌 every couple of days

🔒 No spam ever. Unsubscribe any time.