Up: Chad Fowler, CTO, 6Wunderkinder, "How to become accomplished"
Recently moved from DC to Berlin
Fowler: "According to US Bureau of Labor Statistics: we spend 50% of our lives working"
Fowler: "Wrote 'Passionate Programmer: Creating A Remarkable Career In Software'; 1st edition subtitle was 'my job got sent to India'
Fowler: "Shout out to Tim Ferriss 4 Hour Work Week; we all want one thing: happiness
Fowler: "Voted by high school as 'most organized' and 'least likely to be smartest of your friends'
Fowler: "punk band guitarist, conference founder/chair; author of 4 books; written about in NYT bestseller; started software dev center in India; live in 4 countries on 3 continents; self-taught hindi and tibetan; extreme weight loss
Fowler: "My qualifications: procrastinator, lazy, introverted, unqualified
Fowler: "Passionate Programmer steps in nutshell: choose your market, invest, execute, market, refresh
Haha. Fowler: "Every Dev should think of themselves as product, with long lifespan; you're selling 'you as a service'"
Fowler: "Same frustration as Agile; how do we systemize and automate our career development?
Fowler: "We are a complex system; health, personal relationships; we know how to manage complexity, abstract, measure, change things, anticipate failure, organize, argue (passionately)
Fowler: "'The only great programmers are the good programmers with great practice' -- Chris Parsons
Fowler: "Citing Haruki Murakami book: What I Talk About When I Talk About Running: A Memoir" (on weight loss)
Fowler: "Murakami: people who are naturally thin are at disadvantage; don't have signals like having clothes not fit, etc.; they're the ones who don't have to create systems and measurement
Fowler: "Accomplishment: actually accomplishing, feel like you accomplished, and perceived as having accomplished
Fowler: "Ask: 'why am I doing this?': business, career, life;
Fowler: "When I wrote 'Rails Recipe', left job b/c was one of few Ruby english writers; started consulting; now writing book on Scala and Play framework; might have huge opportunity cost, b/c books are hard
Fowler: "Started in cubicle in FedEx; making long term career plans don't make sense
Fowler: "Ask 'what would you rather be doing?'; right now, I have no better answer
Fowler: "Was asked 'how do you have time for all this?'; have meetings in 5 min rickshaw, instead of 1 hour meeting
Fowler: "Derek Sivers rule: 'when asked to do something, answer is either 'hell, yes' or 'no'"
Fowler: "Citing Ramit Sethi: 'frugality sucks'; conversation with wife: 'this is not 'going out to dinner' failure', this is 'lose the house' failure
Fowler: "Was forklift driver at age 19; paid much better than musician; decided to be waiter, which for introverts is hell; forced myself to do something I was terrified by
@johankjensen: “If you want to be rich, saving money on the Starbucks coffee won't help get you there. Take opportunities.” –@chadfowler
Fowler: "I was so bad at being waiter, often I made negative money -- had to pay into tip pool
Fowler: "As lifelong RPG player, I want to build out my skill tree; Level 0 helpdesk > field svc -> L3 engr -> network engr
Fowler: "I asked NPC engineer advice on 'what should I learn?: his answer: 'learn Novell, XXX (?) and Perl', and maxed out skill tree
Fowler: "Practice: Love the Code Kata, founded by Dave Thomas; would challenge you to find out how fast you can learn
Fowler: "Have a list of 'Things I Need To Learn': after lunch, spend 10 min to become satisfied you learned something
Fowler: "Passion Conservation: passion is easier to expend than to build
Fowler: "Richard Hamming, Bell Labs: 'What are u working on? What is most important open area in ur field? Why aren't they same thing?
@johankjensen: “Passion is a slowly renewable resource. If you do work which doesn't replenish it, you'll burn out.” –@chadfowler
@NativeWired: Food for thought: “Passion is a slowly renewable ressource - used quickly, rebuild slowly” @chadfowler
@m_olk: "Many developers practice on stage. Imagine a musician doing that" @chadfowler
Fowler: "Partial People; broken window syndrome
Fowler: "Be careful with who u associate with; always be worst person in the band you're in; otherwise, they'll bring you down
Fowler: "Playing with world class legend made me level up; audience didn't knoow that I was much worse than him
Fowler: "Happened again in 2000s; Object Mentors; can't stand the idea that I won't be with them
@Rasmuschristens: Be the boyscout to your own life, always fix the broken windows. #gotoaar#ChadfowlerRocks
Fowler: "I've always wanted to...; wife said, you can't say that and not do anything about ti...
Fowler: "Citing 'The E-Myth Revisted'; your org chart is the grand schematic of your business
Fowler: "In beginning of InfoEther, was 20 people in big blob; didn't work, too much coupling, not enough cohesion; didn't scale
Fowler: "In one person company: create org chart; marketing, other functional areas
Fowler: "No more projects; you're giving yourself permission to take a long time to do it; incremental improavement: was today better than yesterday? if not, make it
Fowler: "Do not measure the process;
Fowler: "Citing book: 'Vagabonding'
Fowler: "Marketing is a moral imperative; if u're afraid/disgusted to market yourself, think about box by selling them this box for $50 that can help peole; then you don't tell them about it, you're robbing people of value; if you get $10, and it $50 comes out
Fowler: "Citing 'Zen & Art Of Motorcycle Maintenance'; Indian Monkey Trap; value rigidity; rice in box; don't be the crusader forcing other people to care about BDD, etc. time may pass you by
@johankjensen: “Don't do projects. They take a long time and are inefficient. Just do it.” –@chadfowler
Fowler: "GDP on Y-axis, hours work on X-axis; the more hours you work, the less productive they are; Economist
Fowler: "Kurt Vonnegut: 'I urge u to please notice when u are happy, and exclaimm or murmur or think at some point, 'If this isn't nice, I don't know what is."
Up: "Programming, Only Better", Bodil Stokke, Creator of Catnip IDE (@bodil)
Stokke: "'GOTO statements considered harmful' wasn't Dykstra; it was Nicklaus Wirth;
Stokke: "Dykstra made a career of flaming: 'Use of COBOL cripples the mind; BASIC mentally mutilates ppl beyond hope of recogntn
Stokke: "Dijkstra died in 2002; same yr as Java release, which he also hated; coincidence? regardless, he will be missed'
Stokke: "Reasoning about software; formal reasoning proves correctness; like typing
Stokke: "formal reasoning means math; informal reasoning means thinking about your code; debugging is process of informal reasoning
Stokke: "On refactoring: don't underestimate value of clean API. U can shovel pile of shit all u want, it's still pile of shit
Stokke: "What is cause of bad code? Complexity (& technical debt), spiraling downwards, out of our ability to reason about it
Stokke: "Cause of Complexity: Citing 'Out of Tar Pit', Marks
Stokke: "Dijkstra: 'reliable software requires making errors impossible; testing finds more error; testing can't be sufficient
Stokke: "Sources of complexity: State, Control, Code Volume, And Maybe Some Other Things."
Holy cow. What is @bodil using to do these inline evaluations of java code in IDE? Is she using Catnip?
Stokke: "State spoils testing; testing a component in one state tells you nothing about behavior in another state; ie. reboot computer
Stokke: "State is the great evil; state increases complexity exponentially
Stokke: "Control: the order in which things happen; and OMG, concurrency
Stokke: "How can you test anything when you can't even be sure of order things happen, or when state is changing
Stokke: "3) Code volume: complexity expands nonlinearly as code volume
Stokke: "Tech debt; complexity breeds complexity; simplicity is hard; power corrrupts (programming features)
Stokke: "FP eliminates state; only inputs and outputs; where did the state go? it's still there, but being passed around; state is in values, and can't mutate
Stokke: "showed Haskell implementation w/no state; 4 lines of code
Stokke: "Erlang, Clojure
Stokke: "Ideal language eliminates control; Haskell gets close; Monas ... something that is cheating; only has to deal with essential state vs accidental state
@Mekkaz: Bodil Stokke: Monads are magic, so they count as cheating
Q: "What is expr eval tool you're using?" Stokke: "Just Google 'Java REPL'" (Interesting! Wow!)
Q: "What is fave pony?" Stokke: "rainbow dash pony"
@tbsalling: RT @bodil: Hey #gotoaar, I put the slides from my talk up on the internets: http://t.co/nmhF59qUty (REPLs won't work online, but ponies wor…
Up: Dave Thomas, "Career Oner at Career.You: The Most Important Role Of Your Career" (@daveathomas)
Careers are emergent and may be proactively shaped by you the career product owner. Successful career owners seldom look for opportunities because the opportunities find them. In this talk we describe several career development best practices most of which have been used by leading software professionals one or more times during their career. We begin with the career retrospective of experience and future aspirations from which one can build a backlog of career deliverables. We then discuss technical, people, organizational and professional kata which one uses to keep career fit. We examine what is the necessary technical breath and depth to maintain as one grows older. Throughout we will do some testing and career debugging. Attendees will leave with one or more practical practices that they can use assess and improve their career.
Dave Thomas has a wide spectrum of experience in the software industry as an engineer, professor, consultant, architect, executive and investor. Dave is founder and CEO of Bedarra Corporation; which provides virtual CTO and CEO, business mentoring and seed investment to emerging companies. Recently formed Bedarra Research Labs undertakes speculative research on applications of emerging software technologies.
Dave is best known as the founder and past CEO and president ofObject Technology International Inc. (formerly OTI, now IBM OTI Labs)and led the commercial introduction of object and component technology.The company is often cited as the ideal model of a software technology company.
He was also the principal visionary and architect for IBM VisualAgeSmalltalk and Java tools and virtual machines including the initialwork on popular multi-language Eclipse.org IDE. OTI pioneered the useof virtual machines in embedded systems with Tektronix shipping thefirst commercial products in 1988. He was instrumental in theestablishment of IBM's Pervasive computing efforts and in particularthe Java tooling.
Dave is an adjunct research professor at Carleton University, and the University Of Queensland and is widely published in the software engineering literature. He is a popular humorous albeit opinionated keynote speaker. Dave remains active in various roles within the technical community including ECOOP, AOSD, Evolve, and Agile Development Conference, Agile/XP Universe and OOPSLA Onward. He is a founding director of the Agile Alliance and most recently a founder of Open Augment Consortium. Dave writes expert columns in Otland Online in Germany, and the Journal Of Object Technology in Switzerland where he also serves on the editorial board.
careers: some assembly required
careers seldom just happen; enabled by knowledge and experience
shaped by colleagues and mentors, not companies you work in
constrained by personal circumstances
opportunities provided by network
broadened and deepened by experience
secured through good performance
helped by a little luck
meet the product owner: you
your stakeholders: partner, children, parents, friends, etc...
what do you want to be when you grow up?
plan for exactly 1 year ahead; the rest of fiction
resume/cv: the career retrospective
update regularly; major contributions for employer every 2-3 years
Thomas: when Nortel went under, 40K jobs disappeared overnight.
Get experience first, before tackling goal
Thomas: "I left IBM when it was realized when I would become anti-matter" (referring to conformist culture)
Recommending Dan Pink book: look for vision match, autonomy (I have responsibility for and control of my own work), mastery (I am not uncomfortable, I'm learning), community (good peer group)
what did I learn/improve this year?
who can I learn from next?
trapped w/friends/first employer
Thomas: "always better to hire a team than an individual"
taking my work problems home
don't feel competent in my job
bored to death
too much travel
embroiled in politics... are you the revolutioniary?
Thomas: "as a revolutionary, it's good to know when it's not going to happen, and go try in a different city" (haha)
need professional development
difficult personal relationships
Thomas: single most important book...
what is on my really like/want to do list?
what is on my really don't like/don't want to do list?
do these match your partners?
At IBM, helped create Distinguished Engineer, paid at same level as Director or VP; some have staff, some just walk around, coach; they can put stakes on, and shoot a puck
In Lean and Agile, if you don't have a technical ladder, you can't retain ladder; if not, you become technical architect, and guaranteed to be relevant
Ha! Thomas: "if company doesn't have technical ladder, you're doomed to become technical architect, and guaranteed to be relevant"
Thomas: "we know ideal teams are small teams; Team = 7 +/- 1; Company Me/We: 1-4"
Thomas: "As a consultant, you'll see tons of large companies, and probably see why you never want to be at one
Thomas: "Culture doesn't belong to the company; it belongs to the leadership team who is there at the time"
Thomas: "Every successful company has a strong culture that you need to understand and subscribe to"
Career maintenance, career smells
know your org
seek leaning opportunities
references and referrals
maintain your personal brand
Thomas: Be the best at something, rather than average at many things; don't leave your hobbies/life behind
Thomas: don't leave hobbies behind; hobbies usually turn into your 3rd or 4th career
Thomas: don't leave life behind; lots of weekend work results in hurting the people around them (family, kids, etc)
Thomas: "in mtgs w/horrible people, just smile & tap table twice; tapping sometimes makes them disappear. worth trying" (ha!)
Thomas: "As an exec, the you can do is pick the best wrong decision"
Thomas: "employers need to do reviews"
Thomas: "own your brand and your time"
@benjchristensen: “Being a leader and saying you’re wrong is one of the most empowering things.” – @daveathomas
Thomas: "Other than yourself, your mentors are often the most important success factor, especially women"
.@daveathomas: "for most junior employees, exec is responsible for people 5-7 levels below them; having someone high up can give you good advice, direction (e.g,, they know that dept will get shut down next week)
.@daveathomas: "Know execs, b/c they don't need to sell up; people who sell up are great, but they'll sell you out for a dime
.@daveathomas: "Look for connectors and carriers of infromation
.@daveathomas: "Ask for a referral: can you introduce me to someone at another company that you think I can help
.@daveathomas: "Unfortunately, I'm so outspoken, my brand was damaged early in my career, and there's nothing I can do about it
Up: Rachel Laycock, "Continuous Delivery: Tales from Windowsland"
Rachel Laycock works for ThoughtWorks as a Lead Consultant with 10 years of experience in systems development. She has worked on a wide range of technologies and the integration of many disparate systems. Since working at ThoughtWorks, Rachel has coached teams on Agile and Continuous Delivery technical practices and has played the role of coach, trainer, technical lead, architect, and developer. She is now a member of the Technical Advisory Board to the CTO, which regularly produces the ThoughtWorks Technology Radar. Rachel is fascinated by problem solving and has discovered that people problems are often more difficult to solve than software ones.
@andypiper: RT @jakobfaerch: Clippy just turned up in @rachellaycock's talk at #gotoaar. Didn't see that coming in a continuous delivery setting
Laycock: "Windows infrastructure Pains: proprietary software with licensing costs so high can't have test env, Windows versions..\
Laycock: "...Remoting, Registries, ISOs, Cost (Azure+Windows more expensive than Linux); But Windows is here to stay."
Laycock: "Soln: don't be afraid of non-MS tools; leverage existing languages (Ruby or Python vs. Powershell, XML),
Laycock: "Contrib to ALT.NET OSS projects; Just do it! (You can do continuous delivery on Windows; enterprise oft scared)
Laycock: "Handling objs: It can only get better, right? New tools all the time. Maybe we can avoid sw that can't be pkged
Laycock mentioning ALT.NET open source project several times. Sounds like lots of promise.
Up: Eran Messeri, Google: "What goes wrong when thousands of engineers share the same continuous build?"
Eran works as a Software Engineer on Developer Infrastructure at Google. Most recently his focus is on reliable testing infrastructure, in addition to being a core committer to the Selenium browser automation framework. He has been building software in various fields, including embedded systems, networking, file-systems and device drivers for 10 years. Eran has a master's degree in computer science from Bar Ilan University, Israel.
Messeri: "Lots of talks on Google continuous delivery out there, but they're old. Here's what we're doing now."
Messeri: "It's possible to work from head (trunk); importance of reliable, automated testing, how complex engr can be done
Messeri: "Google: 15K engrs, 4K+ projects, 5500 commits/day; 75M test cases run daily; 50% of code chgs monthly; 1 source tree
Messeri: "|DevInfra Engr| << |Google|; i.e., the org that writes all of Google CI/CD, testing tooling + infra; 200 engrs
Messeri: ".5% of engineering dedicated to Dev infrastructure Engineering: goal: make Dev productive
Messeri: "Single, searchable code repo; each chg req code review (ownership, readability); unified build system (local/cloud)
Messeri: "Continuous integration with presubmit capabilities; single repo for test results (semi-structured)
Messeri: "Readability review: once per language: 'I thought I knew eery corner of Java until I went thru my review'
Messeri: "Continuous integration (+ test) system: to prove someone your code works, you can send link to test results"
@Gshtrifork: #google have 4000+ projects under active development, 15000 engineers, over 75m test cases a day!
Messeri: "Workflow: check out code: optimized w/FUSE; repo is billions of files (!!); FUSE allows local fetch of files
Messeri: "Hack hack hack: heavy use of IDE support to support auto-completion: millions of Java classes (!!!)
Messeri: "More hacking, more testing; build + test in the cloud; send code out for review via stdized tool;
Messeri: "code commit trigger post-submit, push to production: push button, pick green CL
Messeri: "Probs: catching up w/head: merge happens here (always rebasing); cached build artifacts from cloud; FUSE makes it fast (you can reuse someone else's build)
Messeri: "Prob: someone breaks build: early detect mechanisms (global presubmit); did they announce chg? (procedure for brk chs)
Messeri: "Are your tests stable? Cultural commit to keeping things green (short time window for fix, rollback, no hard defn)
Messeri: "(Interesting; no hard policy/procedures at Google for when someone breaks build; high trust mgmt style)
Messeri: "If you break all of Google (occas happens), you'll get IM, emails, knock on door; fix it now, b/c no dev can commit
Messeri: "We want to make it easy to rollback to CL; no hard policies like "if u break > 10 proj, SLA of 10m" no need to be rude
Messeri: "If you break my project, no problem. Tomorrow, I may break your project; mutual respect between teams
Messeri: "Working w/external code: easy process for importing external open-source code; only 1 vers of each lib; no exceptions!
Messeri: "Story: I wanted to push new vers of libry, asked for exception (like any good Israeli); eliminates conflicts/dependncy
Messeri: "When library API chgs, I had to fix my code, and go to every other project that uses that library; and they'll help
Messeri: "They may rewrite their code, or elim the lib (best option); in most cases, other teams will help help; takes weeks
Messeri: "Code is like 'public spaces': shared maintenance burden (yes, it's expensive);
Messeri: "Codebase cleanup (eg, remove old lib, move to new API): these oft hurt, cause you to give up b/c too complex; continuous integration makes it possible
Messeri: "Code chgs when u start at Google is scary, b/c senior engrs can yell at you if u brk. But testing turns fear > boredom
Messeri: "CI at Google builds all the code every few hours; we still find code that is dead/not tested/etc, which we fix
@rlengwinat: "Tests transform fear into boredom" - Eran Messeri from Google at
Messeri: "Push to Prod: post-submit triggers tests; separate method for bringing up systems in isolation; easy deploy UI
Messeri: "If code commit results in passed tests, we have confidence that it works and can be pushed into production to Google"
Messeri: "Google testing: integration tests on demand: your module connected to all reqd dependent services, hermtically seperated"
Messeri: "SAT Engrs will take big monolithic code, hack it up into little pieces, and mocked out; ex: selenium login pages
Messeri: "If your team has SAT engrs, it means that you're team is very big (100+ engrs), or shamed (not smart enough to automated themselves)
Messeri: "What we got right: getting started on the code base: new "checkout" and build; effortless testing; navigating around the code; "did that ever work?"
Messeri: "Happened to me: test failed: I had to dig, asked person responsible: 'oh, it's not being used; disable the test'; not good practice, but at least we detected it
Messeri: "What doesn't work: code review turn around time takes too long: forces batch size up (which makes it diff to review) (some say, 'no diffs more than 300 lines')
Messeri: "Cost of test creation & maint; mocks at different levels (class, module, system); creating hermetic tests is hard; sometimes needs specialists; resource consumption; churn (internal and external)
Messeri: "Resource consumption: we decided we don't need to run all the tests all the time; some tests triggered when things break
Messeri: "Stack-trace analysis of failing tests (and diffs); overcoming infrastructure failures; automated dead code detection
Messeri: "We have automated flakiness test detection: tests run multiple times, looking for diff results
Messeri: "Collaborating over one source tree is possible, but non-trivial; Basic CI tools are hard to build at such scale; reliable automated tests make life easy
Messeri: "Benefits of 1 repo: you can see all the code, you always get latest version (no coord reqd)"
Messeri: "Google uses customized version of Perforce; some use of git for local work, but pushed into Perforce for review
@mahler: »Nothing can replace good engineering citizenship« (not even at Google :-) )
Messeri: "Only once have I had to fix other people's code; usually, people step up and fix their code quickly"
Messeri: "For pushing hotfixes: you can cherry-pick tests to run
RT @rlengwinat: "Tests transform fear into boredom" - Eran Messeri from Google at
RT @mahler: »Nothing can replace good engineering citizenship« (not even at Google :-) )
Up: Gareth Rushgrove, "If Government can do it..." (@garethr)
.@garethr: "The processes in an org is based on what is possible (when the process was made); what is poss is changing all the time
.@garethr citing UK Government Service Design Manual; "It even has a definition of #DevOps in there"
.@garethr: "Q: how do you do rollback? A: we prefer to fix fw; we design apps to fail, so lots of fallbacks; most failures are fine
.@garethr: "Q: how do you handle branching w/multiple teams; A: we have many projs; but few teams doing code commits to proj; big prob is chgs to service interfaces; seldom; we're standardized on github
@rcastag: if Government can do it... @twirrim you'd really like this presi #gotoaar on the new gov.uk imementation
@tastapod: "DevOps is not the tools, it's not the developers, it's about the organisational processes." Nice distinction by @garethr at
.@RealGeneKim@garethr I like @joewalnes' approach to this. His team motto is "Onwards!" Always move forwards, never roll back. #gotoaar