Tag: Insist On The Highest Standards

Next To Godliness

Next To Godliness

For the first five years of my career, I worked for a defense contractor located on-site at an Air Force research facility. My job was to write software, but the lab had quite a bit of hardware as well. Over time, things could get pretty messy as we were regularly reconfiguring the setup, leaving random cables and parts strewn all over the place.

We must not have been unique in this, because about half-way through my tenure there the powers-that-be started a “tidying up” initiative that everyone was required to participate in, up and down the ranks, including uniformed military, civilian, and contractors. Being already something of a neat freak, I bought some split loom tubing (from Parts Express, my absolute favorite source for A/V parts) and used it to bundle all the cords at my desk. Apparently I’d done such a good job that word got around about my setup, and one afternoon the person at the top who’d launched the cleanup initiative stopped by and thanked me for my efforts, and said my desk was the example that others in the building should emulate.

Ever since I learned proper cable coiling technique I’ve enjoyed keeping areas with many of them as neat as possible, ideally with none of them visible. Today I was happy to do so in my wife’s classroom, including installing a light strip since the cubby where her desk lives is in a poorly-lit corner.

I didn’t need much nudging to do this; now the drive to tidy cables is a bit of a compulsion. If I ever see random ones laying about (such as on a conference room table), I’ll coil them out of habit. And if I ever see someone doing it wrong you can be sure I’ll have something to say about it. Yes, there is a right way, and it’s easy to learn with a bit of practice, so no excuses.

Work In Progress

Work In Progress

Two things can be true at the same time.

On one hand, I’m thrilled to be working in the most diverse organization I’ve ever been a part of. Our founder and chair of the board is a woman. My boss (the CEO) is a woman. I’m the only man in the C-suite. Our broader leadership team is 75% women. And the company at a whole sits at roughly 50/50.

On the other hand, I recognize we can still do better. The language and metrics I just used, for example, which reflect a binary that isn’t representative of the richness of human form and experience, let alone all the other dimensions of diversity that aren’t as varied on the team. The levers we can pull as a small organization are constrained, but at least we’re starting from a good place; as opportunity arises I intend to make further improvements.

Celebrate the wins yet strive for more, because when it comes to being Earth’s best employer, it’s always day one.

Here And There And Everywhere

Here And There And Everywhere

Just in case the post on crossword solve times didn’t make it obvious enough, I like to track things. I suspect it’s a corollary of liking gamification. Here’s a rundown of info I’m keeping and the tools I’m using:

This post is itself is also a tracker. A tracker of trackers; a meta-tracker, if you will.

For All The World To See

For All The World To See

Want an amazing example of learning in public, far more comprehensive than anything I’ve described here? Look no further than the blog of Juraj Majerik, where he chronicles in a 34-part series building an Uber clone from the ground up. No detail is spared in his journey, including setting up automated deployments and detailed monitoring dashboards. I’ve never seen a learning project this thoroughly developed or documented. It puts a number of real products I’ve worked on to shame. And his claim of it requiring about 300 hours is impressive as well, I would have guessed higher.

I tip my hat to you, Juraj. May your example inspire many more to embark on such educational adventures.

Pro-Social Behavior

Pro-Social Behavior

As someone who tries to maintain a consistent and up-to-date, if atypical, online presence, it’s no small effort to update profiles and such when taking a new job. Here’s the list of the sites I’ve edited recently (documented here as a reference for next time I need to make such changes, if nothing else):

Besides the basic information, over time I’ve crafted a professional profile statement that I use to describe myself. It comes in three flavors depending on length required:

Technologist building systems and organizations that promote human flourishing.

Technologist building both systems and organizations that are secure, scaleable, cost-effective, and most of all, promote human flourishing.

Technologist building both systems and organizations that are secure, scaleable, cost-effective, and most of all, promote human flourishing. Well-versed in programming languages, cloud technologies, and people management. Experienced with the entire engineering lifecycle, from ideation and requirements design to architecture and implementation to sales and support. Also an avid runner, amateur musician, and owner of every iteration of the Raspberry Pi.

When I need a brief personal description, I use this:

husband, father, son, brother, musician, runner, and maker of things

I’ve also used a number of headshots through the years, here’s a couple of my favorites, in reverse chronological order:

Security Sunday

Security Sunday

I’ve been a daily user of YubiKeys since 2018. These little devices pack a hefty security punch with a number of useful features, including universal second factor (U2F), time-based one-time passwords (TOTP), static passwords, and personal identity verification (PIV).

This article contains an excellent overview of all the functions and how to use them. If you’re at all interesting in beefing up your security posture, I can’t recommend it highly enough.

Craft And Commerce

Craft And Commerce

According to the behind the scenes documentaries, the designers working on The Lord of the Rings trilogy spent countless hours adding details to the various costumes, weapons, and other props used on the film, including details that were on the inside of garments or other places that would never be seen on the screen. They wanted these items to feel real to the actors, but I also imagine there was a simple love of craft that drove them to put their absolute best into their work.

This same attention to detail is applicable to software development. Rarely will an end user ever see the source code that runs her favorite app, but that doesn’t mean it’s not worth making just as beautiful as what ends up in the interface. Beauty inspires quality, and there’s some things worth doing well even if just for yourself.

Of course one must balance this against deadlines and the needs of the customer, but whenever possible, pay attention to the details.

Home Cooking

Home Cooking

Decent lighting is essential when wanting to exude professionalism in a video call. But sometimes you either don’t have equipment at hand or don’t want to mess with it. As a stopgap, I’ve discovered that if I open up a few browser windows with light backgrounds they can help illuminate my face, but the results are a bit bluer than I’d otherwise prefer.

It got me thinking if I could build a simple website that would be nothing but an adjustable color background. Behold, the webcam light tool. Not only is the color adjustable via HSL (hue, saturation, lightness) sliders, there’s also a slider in Kelvin if you want to pick a color temperature instead. Color values are saved to browser local storage and remember on subsequent visits, and automatically synchronize in real-time if you open multiple windows.

With a pair of tall and narrow windows, one on either edge of my ultrawide monitor, the results are pretty good. Chalk one up for creative solutions!

On The Turning Away

On The Turning Away

I write this blog post sitting in my favorite coffee shop having begun yesterday a nearly three week micro-sabbatical. Not since I was laid off in early 2019 have I taken more than a few days of time off that didn’t involve travel or other busy-ness. I’m looking forward to spending some time relaxing, some time away from technology, and some time purposefully pursuing activities I haven’t had time to otherwise accomplish.

What sorts of activities? Well, for one I want to publish a new CDK construct, which I’ll talk about here once it’s published. Another is recording a podcast, which I’m happy to announce now has a brief trailer. Mostly it’s going to be similar to material covered on this blog, but perhaps with some conversations also. I’ve no idea if I’ll be able to keep it up, but I’m starting nonetheless.

I’ll also be reading quite a bit. Finished a book this morning, and started a second, the appropriately titled How To Do Nothing.

Finally, I’ll be drinking copious flat whites with the above view from my corner table. Life is good.

That Last 20%

That Last 20%

I got an email this morning from a reader who asked if I had an email subscription feature on this blog. I didn’t then, but now I do! Want my writing to hit your inbox the moment I publish? Just add your email address into the widget at the top of the sidebar and hit subscribe. Easy!

You know what wasn’t easy? Trying to get that widget to match the rest of the site. At first it looked like this:

Gross. Luckily WordPress supports adding custom CSS. Unluckily, that means I had to fiddle with CSS, which is a special form of hell. I couldn’t get it perfect on all browsers, but it’s not bad now:

While I was at it, I made a few other visual tweaks to the site, primarily shrinking the masthead height, which has always bugged me. Here’s the final code snippet. Not the prettiest, especially with all those !important keywords (generally they’re a smell that your CSS is too complex), but it gets the job done.

.navbar {
    display: none;
}

.site-header {
    height: 300px;
    min-height: 300px;
}

.site-title::after {
    margin-top: 0.5em !important;
    margin: auto;
}

button.wp-block-button__link {
    height: 34px !important;
    margin-left: 0px !important;
    padding: 0px 5px !important;
    background: #fab526;
    font-weight: bold;
}

input#subscribe-field-1 {
    padding: 5px !important;
    border-bottom: 2px solid #ddd !important;
}

.search-field::placeholder {
    color: #B9B9B9;
}

If you happen to notice any weirdness on your device/browser of choice, do let me know, eh?