Categories
Book Club Learning Software development

Book Club: Technically Wrong

Technically Wrong by Sara Wachter-Boettcher is the kind of book that any software developer (data scientist, tech industry creator) should read because it makes you think about making things in a way that is responsive to the reality of our world. Often we do not think about how creating systems, products, and services in a way that makes sense to us might inadvertently marginalize our users who do not look, speak, think, or experience life the way we do. It is so easy for bias to be introduced into the work we do simply because we are not thinking about it. It is not only time to start thinking about it but also speaking about it and encouraging our teams to think about, speak about, and act upon the need to recognize our biases and what that means for our industry and our impact on society. This book can help start those conversations and I cannot recommend it enough.

Cover for Technically Wrong by Sara Wachter-Boettcher
Categories
Learning Software development

Readings on Security

I was doing a number of security code audits over the last few months, and in that time, a number of interesting and in depth articles crossed my media feeds.  Here’s a quick reading list rundown for the security minded.

Categories
Software development

Debating tradeoffs

A few weeks ago, a we fielded a potential request to validate Social Security Numbers.  The social security administration has a few rules for numbers that they deem invalid and that they will never assign:

  1. The first three numbers are {000, 666, 900-999}
  2. The fourth & fifth numbers are 00
  3. The last four numbers are 0000

Being one for code reuse, I wanted to do this in as general a way as possible.  This was my initial solution (in Mumps/Cache):

Categories
Productivity Software development

Brain Dump: Learning Git

Over the past six months, I have completely switched over to using Git (and GitHub) for version control in my personal projects.  The following is a smattering of links and notes that I’ve found helpful in that time.

Categories
Django Python Software development Ubuntu

PyOhio 2012

Last month, I had the great fortune to attend my very first conference: PyOhio. There were many great talks and opportunities to meet interesting people. What follows are some personal notes I took during the conference. (It took awhile because the way I took notes was very incongruous with WordPress.  Lots of reformatting before editing. Lesson for next time friends.)

Categories
CSS Productivity Software development Web

Book review: Responsive Web Design by Ethan Marcotte

My own thoughts…

As a person diving back into the web world, I found this book an incredibly helpful and invigorating read. The examples in the book are intuitive, easily conveyed, and reinforced; but they do require some prior knowledge of HTML/CSS.  From a technical perspective, Ethan focuses on 2 main ideas: relative/flexible sizing of a page’s physical layout and media queries to define different behaviors within different (width specific) contexts.  When I finished the book, I was excited not only at the prospect of rereading it, but also about reading many of the articles he references and to hack on my own learning projects for some hands on experience.  I cannot remember the last time I read a programming book with that much interest.

Categories
Productivity Software development

Book review: Content Strategy for the web

This spring, I joined up with a book club centered around User Experience.  For the first meeting I was able to attend, we were reading “Content Strategy for the web” (second edition) by Kristina Halvorson and Melissa Rach.

Categories
iOS Software development

Learning iOS dev

One of my goals for the coming year is to learn how to do build applications for iPhone and iPad.  To do this, I faced two hurdles.  First, this was my initial experience with the Model-View-Controler (MVC) design concept, which is completely different from what I’ve experienced in the past and is taking some getting used to.

Second,

Categories
Software development

Read this

The other day, I stumbled across this blog post on twitter: “Don’t Call Yourself a Programmer“.  It starts with the following:

If there was one course I could add to every engineering education, it wouldn’t involve compilers or gates or time complexity.  It would be Realities Of Your Industry 101, because we don’t teach them and this results in lots of unnecessary pain and suffering.  This post aspires to be README.txt for your career as a young engineer.

then launches into a number of examples.  I think the most notable pieces of advice were the following: “Don’t call yourself a programmer” (define yourself in terms of your accomplishments, not your tech skills), “Networking: it isn’t just for TCP packets” (awareness and good-will does one wonders), and “Modesty is not a career-enhancing character trait“.  I found most of his points refreshingly articulating things I have come to over the past six years – but lately, I have found myself working on these three more than others.

I highly recommend reading this article.

Categories
Software development

Reflections on project management and software development

When my current company began reviewing its project management and software development mode, they had a particular focus on lean project management. Now, I had encountered large software development cycles before such as the Spiral model with my previous company as well as Agile/XP which I use in my individual practice (where possible). However, I had never heard of Lean Project Management, and I was wondering how it compared. So began my Internet search.