The long way through Software Craftsmanship

Self-Study in November 2016

Nov 1, 2016 - 2 minute read - Comments - self-study-aggregationnovember2016readadvicebartosz-milewskicate-hustoncommitcommit-messagedavid-heinemeier-hanssondhhfeaturefunctional-iofunctional-programminghaskelliojohn-cutlermanagementmicrosoftmonadone-on-oneproduct-developmentproduct-managementpsychologyrantrunar-bjarnasonscalaschool-of-haskelltalktaotao-te-chingtim-popetoolvaluevideo

Advice for white men I’ve read this article by Cate Huston about how advice affects different people. But here are some things to consider: Advice on failure is different for people who are judged on performance rather than potential. Advice on saying no is different for people who aren’t appreciated for doing work for the collective… but who are punished if they don’t. Advice on negotiation is different for people who are perceived negatively when they do negotiate.

Support for out of hours on-call support

Oct 5, 2016 - 1 minute read - Comments - on-callsupportreadme

As the preface for the guide for on-call support, a positive note: README You’re cool. I know it. Do not trust yourself, trust me that I trust you. You might be sleepy. It’s OK Everything is going to be fine. Take 5 minutes to think about anything, anytime. Especially before any rash decision. With great power comes great responsibility. Use it wisely. Restoring the services comes first, investigation comes second Do the very minimum of investigation after the incident (collect things that might disappear), leave the rest for the next day on office hours Whenever everything is done, go to sleep but keep an eye on your phone.

Self-Study in October 2016

Oct 1, 2016 - 3 minute read - Comments - self-study-aggregationoctober2016read.netagileappleargumentattackcap-watkinscareer-changecarlos-blecodesaicomparisoncompilationcompiled-javascriptcompiled-languagecompiled-to-javascriptcomputer-scienceconvincingcross-functionaldan-billingdavid-hataniandecision-makingdesigndestructuringdiscussionexampleexchangefeedbackfunctional-programminghaskellhonestyhoneypotinheritancejavascriptjeremy-ashkenasjohn-de-goeslawlessons-learnedliskovlspmacmdnmeetingmodesto-san-juanmonoidnewtype-clasesowen-williamspeoplepost-mortemprecogprocessryan-hewittscrumsecuritysigilsliding-scalesolidstartupstrategythree-amigosticket-magpietype-classesuiuxwikipedia

Should Engineers Design? I’ve read this article by Cap Watkins where he explains the relationship between designers and programmers and how to get the latter involved in the design / UX / UI process. Tags: cap-watkins, design, ux, ui, exchange, cross-functional The Sliding Scale of Giving a Fuck I’ve read this article by Cap Watkins where he explains that different topics have a different importance to each one of us: this topic might be very important for someone else, ergo, it makes mores sense to evaluate their option more carefully.

Books read in 2016Q3

Sep 30, 2016 - 1 minute read - Comments - bookreading2016Q3self-study

Books I’ve read this quarter1: Extreme Programming Pocket Guide by Chromatic Notes to a Software Team Leader (1st Edition), by Roy Osherove Non-technical: The Zero Marginal Cost Society: The Internet of Things, the Collaborative Commons, and the Eclipse of Capitalism, by Jeremy Rifkin Snow Crash, by Neal Stephenson La guerra no tiene rostro de mujer, by Svetlana Aleksiévich Books started, not yet finished (WIP): Talking with Tech Leads: From Novices to Practitioners by Patrick Kua Books I want to finish.

Refactoring functional code

Sep 28, 2016 - 1 minute read - Comments - clean-codefunctional-coderefactoringrefactorcode-snippetsnippet

With my pairing mate we have refactored this piece of functional code. Original code: function filterTokens (rawTokens) { const cleanedTokens = rawTokens.map(token => (token.length && token[0] === '-') ? token.substring(1) : token) return cleanedTokens.filter(token => token !== '' && stopWordsArray.indexOf(token) === -1) } Refactored code: function filterTokens (rawTokens) { const cleanedTokens = rawTokens.map(token => startsWithADash(token) ? removeDashFrom(token) : token) const processedTokens = cleanedTokens.filter(token => isNotEmpty(token) && isNotAStopWord(token)) return processedTokens function startsWithADash (token) { return (token.