Some Workplace Reads

Mike English wrote a post on Remote-First Communication that a friend shared with me, so I’m pulling together my little backlog of workplace-related articles.

Mike’s thoughts on the benefits of using written communication first in your team processes echo things I’ve said over the last years. The attendance-obsessed, lets-schedule-a-meeting, memory-hole incompetents that populate a lot of middle management love in-person communication, because they aren’t accountable, can change what they say from context to context, and whatever their small value add to the organization is, you can only get it from them in real time, face-to-face, so they get to bill you for it on each use. On the other hand, if you have actual work to do and value to provide the company, doing it in text allows you to clearly communicate one time and allow that information or decision to keep being used for every subsequent need. What a relief! That it also completely enables time- and place-shifting is aa super bonus.

Why is that a bonus? Rob Reynolds discusses a number of the advantages to a business of allowing remote work. For myself, I don’t love remote work because I hate going to work (although I hate the office space I currently work in–trying to code with the sales guys shouting jokes at each other next to your cube is AWESOME!!!). I am a big fan of remote work because of the people I get to work with that way. Successful remote workers are often the really competent collaborators. I like working with them. Also, the number of possible smart and driven people in the world is larger than the number of smart and driven people willing to put up with the commute time from their home to my office. Let’s hire better talent! Sucky employees cost way too much!

Rob says “The bottom line is that you keep your workers happy, and they are much less likely to leave your organization. Turnover costs are huge to a company. If you are not making your employees happy, they are talking to others about not working for you. They have their ears open to new opportunities. They are likely looking for other jobs as you read this…Your best people outperform your middle of the line folks by ten times.” I think of the failures of middle management to optimize developer happiness as fraud against the company. Millions of dollars spent for nothing. It’s a crime.

How do you keep those developers happy? How about having a way of rewarding them and promoting them at work without forcing them to change careers? Lizthedeveloper writes how to reward developers based on her work for Simple Financial in creating a talent path for senior developers.

On a lighter note, Eric Farr writes up a simple description of his team’s move from Scrum to Kanban. Really not painful, and it solves some of the pain points of a too-heavy process that was simpler than Waterfall in it’s time, but is handcuffs today.

Command Line and Utility Finds Roundup

Every once and a while I need to clean out my Instapaper of some cool utility stuff I’ve collected. This is that while.

  • I’ve been doing some clojure, and Ultra is a neet-looking Leiningen plugin for improving the look and feel.
  • Mosh (mobile shell) is ssh++ with reconnection.
  • moreutils is a growing collection of the unix tools that nobody thought to write long ago when unix was young. Simple stuff you weren’t allowed to imagine you needed!
  • Sandstorm.io is a linux webapp hosting platform that makes it really easy/turnkey to deploy things like MediaWiki or GitLab or LibreBoard. It’s also an interesting place to host newly developed apps, as it provides some infrastructure services that you won’t need to develop for yourself. (It needs a Phabricator module!)
  • Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.
  • Create context menu items for Windows in C#.
  • MagicPrefs lets you wire up some cool shortcuts with your MacBook trackpad and MagicMouse.
  • Asciinema and Showterm are utilities for recording a console session for later embedding in a web page as an interactive ‘video’.
  • I love me my Chocolatey, but it’s nice to have options, and Scoop looks like a good one with a bit of focus on the unix-y tools.
  • Just found out that you can specify specific domains and tlds in files in /etc/resolver to use different DNS resolution sets. This can be a way to use dnsmasq to provide specially resolved address sets for development or CDN purposes. Also useful to my split-horizon VPNs.

Bonus: “Things—presences or voices of some sort—could be drawn down from unknown places as well as to standard out.” –The DOOM That Came to Puppet

How I Start

I really like the concept of this site. “How I Start” gives some expert demonstration of how to use cool new languages and frameworks. How do you create a project and how do you lay out your code and tools? Valuable advice.

Code Weaving with Fody

Ok. I’m late to this party. I don’t know where all of my trusted news sources have been, but I just found Fody, and am shocked by the coolness, and that I’d never heard of it. Using Fody, and it’s modules, you can replace the implementations of static methods (Ionad), or embed one assembly within another (Costura). Typical AOP stuff is in there too, with logging and tracing aids, and exception management.

There’s a good slide deck that lists some of the basics, but I bet the Pluralsight course is the definitive introduction.

Web Krill

Version numbers are important. Semantic Versioning 2.0 is a simple yet well defined method for describing the change of your software.

NServiceBus 4.0 is out and running at major customers. Stop by for a Happy Meal and watch your order flow through the service bus. The new version has better modeling tools, debugging functionality, and can use RabbitMQ and MSSQL Server as transports. There are also online labs to help you get up to speed without needing to set up your own systems.

Nuget is a powerful tool for dependency management, but using it in the enterprise is frequently discussed because it can be problematic.

CloudFlare is a really neat company that provides caching, scaling, and attack tolerance capabilities for internet http sites. They recently blogged on the details of and remediation for the recent vulnerabilities in RC4 encryption.

If you’d like to polish your coding skills, but cannot think of a good, simple program to write, try one of Martyr2’s project ideas. Also take a look at thekarangoel’s github repo where’s he’s started doing ALL of them.

Described variously as one of the most accessible introductions to crypto….and as the instigator of more bad crypto implementations by newly minted cocky ‘experts’, the Handbook of Applied Cryptography stands alone.

It shouldn’t come as a big surprise that Microsoft makes their development tools with a certain customer set in mind…but this presentation on the Psychology of C# is a little bit scary in the way it pigeonholes the stereotypical C# developer. Many good insights here too.

Visual Studio 2013 has a pile of cool new development goodness for Web developers.

People have asked me a couple of times why TFS Source Control is put down so much. Recently I read that it’s an ‘inferior version of Perforce’ (which would make sense, since MS licensed Perforce’s code before making TFS). So, how do I find out what is ‘wrong’ with TFS? How about the Perforce/TFS feature comparison published by Perforce? It should have the dirty low-down on what TFS is missing!

Did you wish you had a professional exploit kit to deploy your malicious code? Styx Exploit Pack can make your personal botnet shine, or get you that extra Microsoft Surface by running a little ransomware. $3000 gets you the exploit kit with multiple drive-by vulnerabilities, malware obfuscation, and access to the vendor’s 24/7 help desk. Want to learn more about the world of exploit kits? Malware don’t need Coffee is the site for you.