Learn. Code. Repeat.

My Development Lab

Software Development & Infosec Lab

Last updated: February 08, 2018
Last update note: Cleaning up for 2018. Lots of information was out of date. Kind of re-doing this section, so more to come.

Figured I’d make a lab page in case someone is trying to learn and not sure what others have. This isn’t a complete list by any means, but it gives a good base example.

Because I’m one of those people who happen to have their hobby, job and passion be the same, I tend to invest a good amount of resources (time, money, etc) into my “lab.”

Before diving into gadgets and such, let’s talk about what’s really important (and a passion of mine): data. Keeping it in sync, keeping it safe and so forth.

Data Syncing

I have many laptops, desktops, VMs and so forth. As you can imagine (or know for yourself), it would be darn near impossible to keep things organized without some sort of system. Data would be everywhere.

To keep my machines in sync, I use Syncthing, which works for my Linux, Mac and Windows machines. It’s easy to use and I love it.

While I do like keeping my data locally, I also don’t want to wake up one morning to a fire and lose everything. What I do for offsite backup can vary, but two general paths I’ve taken are:

  1. Using SpiderOak. The price is fine, but the service is very, very slow.

  2. Using Arqbackup. Unfortunately there isn’t a Linux client (sigh). But when used on a Mac/Windows machine that’s using Syncthing, it’s doable.

Information Archival

Whenever I come across a good piece of information I like to store it in 1-3 places (especially if it’s something I think will disappear). Where I store it really depends on the nature of the information. If it’s something general, such as an article in the Wall Street Journal, I will usally save it to Evernote and Pocket.

If the information is more of a collection of pages or something very important, I’ll save it to my “local knowdlege base” system (still working on it). This gives me quick access to the information (no need to be online), is searchable and will operate just like it was online (minus ads and such).

Operating Systems

In short, I have most of the popular versions of Linux, Mac OSX and various Windows versions running.

For Linux, I used to use Arch Linux as my daily driver, but I’ve since migrated to Fedora. It does what I need it to do and doesn’t get in my way.

For pentesting, I use Kali of course. There was a time where I was basically building out my own distro, but in the end I felt it wasn’t worth the time going forward. You can only do so much in life.

While I love Linux and always will, I’m generally on a Macbook Pro for software development. I have one for work and another for play. While the 16GB ram cap annoys me to no end, the MBP is still the overall best choice for devs in my opinion.

Main Desktop Machine

My main desktop machine is running Windows 10. The main reason for this is because I can build a machine better than any Mac desktop for much cheaper and it gives me a lot of good options (I will occassionally play games on it as well, so there’s that).

I use VMWare Workstation Pro to run all my VMs (I also use the Fusion product on Mac). I also have the Vagrant plugin for it.

Generally, I keep my main desktop loaded up with the latest (or next to latest) CPU, 64GB DDR4 ram, many SSDs, near upper-level GPU and so forth.

The reasoning for keeping the GPU up-to-date is for the occassional gaming session and for things that need GPU power, such as password cracking (oclHashCat – believe the GTX980 was doing about 180,000 hps for WPA cracking).

IDE

For software development, I like JetBrains IDEs (WebStorm, PyCharm, IntelliJ, etc). When I’m doing something and don’t want to fire up the IDE, I’ll just use Visual Studio Code. I’ve used all the other things as well (Vim, Nano, Atom, Brackets, Sublime, etc.). Really, if you’re not using an IDE, then just use whatever floats your boat.

Misc

And any fun-time lab wouldn’t be complete without:

  • various antennas
  • WiFi cards
  • Arduinos, Raspberry Pis, etc
  • Old hardware
  • Old devices
  • SD cards, usb drives, etc.

Software & Services

Aside from software already mentioned herein, some other software I like:

  • Firefox Developer Edition: My preferred browser. If privacy is a concern of yours, check out PrivacyTools.io for settings to use.
  • Overcast (iOS): My preferred podcast app. I listen to many security and development podcasts and this app fits the bill nicely.
  • Todoist: I use this for setting goals, reminders and planning out life. Good interface and it works on all the things.
  • Ebay: Good place to look for older hardware on the cheap (routers to flash and such, Cisco routers/switches/etc).
  • DD-WRT: A great alternative to commercial router software.