Peter Lyons

Quick Thoughts

October 08, 2017

Code Coverage

Organizing code so my 100% tested code is kept separate from other dev's 70% tested code so at least part of my coverage report is green.

Flat UI

DynamoDB Tables

WTF is with dynamodb not having the concept of a database. This is terrible. Now we need to configure every table name for each deployment?

Terraform Drop

Heads up, if you use terraform and change your dynamodb table key schema, it will drop and recreate your table without any extra warning.

Deterministic Builds

TIL debian has a strip-nondetermisism perl script you can feed archives (zip, tar, etc) and it will make them deterministic

Almost Swiped

Mobile interaction annoyance: If I swipe to dismiss a notification, but not far enough so it stays there, then I swipe it again immediately, I'm fucking trying to dismiss it, cut me some slack and dismiss it already.

Hidden Passwords

I want mobile password inputs to take up the entire screen with keyboard letters and FFS allow me to show the password. 95% of the time shoulder surfing is not a threat to me.

Slack Interviews

I don't do whiteboard interviews or coding algorithms. I just ask the candidate to set up some reasonable slack notification preferences.

Slack Accounts

If only we could rewind time and have slack use a single account model

joi vs JSON schema

I switched from joi to basic json schema objects for broadest tool support and integration and because manipulating POJOs with JS is really easy. But now the verbosity is getting to me and I might switch back to joi.

XKCD Compiling

Instead of "compiling" my excuse for slacking off is "terraforming"

API Gateway error messages

For AWS API Gateway errors, use JSON with {"message": errorMessage} so your application errors and the default APIG ones have the same schema

Terraform apply errors

terraform doesn't really deliver on its promise/potential. So many cases where "plan" looks good and "apply" fails at runtime. I wonder if we could build a stronger type system and move errors from apply time to plan time like elm did for javascript errors from run time to compile time.

Ignite Bullshit

Ignite presentation idea: Bullshit. 5 topics, 3 slides per topic: the pitch, why it's bullshit, the better option.


Maybe shift key should be last resort as a modifier key. Because you need it for normal typing, seems more ripe for mistakes vs ctrl/opt/cmd.

Dark Patterns

Showing a notification widget to a non-logged-in user is a dark pattern.

TransUnion dark pattern. Fill out a form. Opt out of email. Submit form. Get an error about password field. All fields retain their proper values except opt-in to email is checked again.

DevOps Tooling Woes

I really wish there was 1 fucking tool in the entire devops ecosystem that understood what a real multi-stage deployment flow should look like.

Terraform variable scope

Terraform what the actual fuck went on with your "declarative" design? * function_name: duplicate local. local value names must be unique


What methodolgy do you follow? Arbitrary but we say "sprint" a bunch.


An open source AWS linter called awsmess

OMG If I ask to search logs/code/tech stuff for XYZ-12345 I DO NOT MEAN ("XYZ" OR "12345")

Object Storage

Nerd rage at tech companies that call S3/filesystems "Object Storage". You don't get it. Files and Objects are 2 different things to developers.

hclfmt crap

Vertically aligning equal assignment operators is terrible. Creates SCM noise. Makes things less readable.

Duolingo Spaced Repetition

Not buying their spaced repetition algorithm. Keeps asking me to re-prove that I know words like "gracias".

Old Man Yells at URL

The URL query string. Intended for search. Now just used for tracking and when you do a search they don't even give you a bookmarkable URL.