Dan Mayer's Dev Blog
September Software Links 25 September 2017
- Breaking Up the Behemoth thanks @ tpitale
- How to manage secrets thanks @ tpitale
- We are all product owners an impact guide
- The Nine Principles Of Design Implementation
- Avoiding remote work pitfalls
- 10 principles for engineering growth
- Multiple Perspectives On Technical Problems and Solutions
- Readable plots with python, with 538 style
- Data Mapping, High Resolution Settlement Layer thanks @alepietrobon
- How to grow a data driven team
- Reading an explain analyze query plan
Random Links by Sean MacEntee
Markdown to Confluence Wikis 27 August 2017
Markdown converted for Atlassian’s Confluence
If you ever have a need to convert a bunch of markdown or html files to confluence it is really easy. Their Rest-API is pretty clean and if you use Ruby there is a small Confluence API gem to make it even easier.
Why Move To Confluence?
Why would we move our documentation from Markdown in a git repo, to Confluence? Well our team is growing and we interact with more and more non developers, who could benefit and contribute to our documentation. While some of our documentation was very technical much of it wasn’t. It would be helpful to our Support, IT, Project Management, and Stakeholders. Markdown and git aren’t the best way to get other folks comfort able reading or contributing to our documentation.
- Increased collaboration
- Simplified access control to read
- Ability to mix ticketing, widgets, and wiki docs
That was enough for us to decide on moving our documentation over.comments
Information Architecture Changes 13 August 2017
Visualizing DB Schema Changes, even at a quick glance better structures stand out
Information Architecture Changes
Creating a robust Data Model for your business & application is one of the most important things to get right. We still don’t have great tools available for discussing proposed database schema changes. Fixing a bad data model after data has started flowing on a production system is more complicated & time consuming than folks estimate. A series of not fully thought out data decisions early on can cut a team’s velocity significantly. This is due to time being spent on trying to fix bad & invalid data, adding missing DB constraints & validations, and refactoring towards a more appropriate data model.
What can we do to ensure a more robust model from the start and increase the confidence we have in data model changes?
A Proposal For More Communicative Data Model Changes
Below, I will lay out a proposal we are iterating on as part of our OGE team best practices.
- Ability to communicate anticipated impacts of our data model changes clearly across Development, Project Management, & Business Intelligence teams
- Ability to quickly visualize changes (faster feedback loop)
- Reduce bad data models making it to production
- Support both interactive & asynchronous communication styles that work best for our distributed team
- Ability to see high and low level details using the same data
- Easily integrates into our tool chain
Most Valuable Code 20 July 2017
Obama writing JS with code.org.
The Value of Code
While both of the below examples are obviously a bit exaggerated they do capture the point. The code we write has value because it solves some challenge.
The Best Code is No Code At All
Programming is a means to an end, not an end in itself. You should be trying to do as little of it as possible to make the thing that you want.
Most Valuable Code I’ve Written
Given that I think the most valuable code I have currently ever written is a stupid and simple method. This is a recreation of the method below avoiding un-important internals.comments
Phone Number DB Types 26 June 2017
tweeting about DB phone number formats
How to best store & query phone numbers in Postgres DB
Update: 06-27-2017, See the update & round 2 section below for improved and corrected data
After some frustration cleaning up some of our information architecture related to phone numbers. I posted the tweet at the top of this article.
It actually lead to far more responses, questions, and discussion about the best way to store numbers… It made me think that perhaps our quick attempts to extract the best process out of multiple production table cleanups, could be missing something. I decided it would be pretty easy to try to dig in a bit deeper for a more data backed answer. I definitely don’t claim to be a DB performance expert, so perhaps we had reached some wrong conclusions.
a portion of the sub-discussion from the original tweet
a pretty strong statement saying we got this wrong
Unused DB Columns, via logs 20 June 2017
a search for ‘unused columns’ brings up this image from Flickr user @denisbin.
Detecting DB Column Usage
I have always been interested in ways to automate & cleanup old unused code. Removing the clutter helps focus in on the things that matter and make clear patterns emerge.
This post continuing on some database cleanup work. The first post of the series is, cleanup unused tables in your database
After taking on full tales, I wanted a way to find unused fields. I came up with two easy ways to try to automate detecting this in a Rails app.
- Previously covered: Query the DB’s paper_trail history
- In this post: We will cover query logging and searching field usage via a log aggregator.
Paternity Leave 15 June 2017
I am on paternity leave, actually my second of 2 staggered Paternity leaves. I am about 1 week into my second leave, hanging out with little Theo. I have some time off to bond with my kid, but more importantly my wife has some time to go back to work and stay focused knowing, I’ve got this.
Men’s Paternity Promotes Gender Equity
My wife started sharing a bunch of information about paternity leave when we started discussing having a child. The choices men make to be more involved with the kid can help women who choose to work to avoid some of the associated career setbacks that often come with becoming a mother. There is some interesting research going on here, it seems to impact both work and home life. Increasing men’s participation in chores and playing with children. I suspect that has something to do with the empathy gained, spending time at home alone with the kiddo.