Praise and Other Words for the Dublin Web Summit, Developer Track

The Developer Track was a series of 20 min technical talks on the second day of the conference. As Marshall McLuhan said “The Medium is the Message”.  The message here is “We’re not going deep”.  OK – at least if a presentation is not engaging, I’ll only need to sit through 20 mins of it.  But for the great presentations – and there were several –  it wasn’t enough time IMHO.  And when there were technical difficulties (a couple of times), then you really felt how short the time was.

Here’s some of the stuff I saw / heard at the Dublin Web Summit, Developer Track.

On Recruitment – Matt Mickiewicz, Co-Founder of 99designs, SitePoint and Flippa

  • Google has 900 recruiters!
  • Go see The Recruiter Honeypot post by Elaine Wherry
  • $1MM cost per engineer for acqui-hires
  • Kayak CEO: 7-day countdown timer from first contact to hire
  • Google reduced # of interviews from 10 down to 3, because subsequent interviews only provided 1% more useful information

On Culture- Eamon Leonard, VP of Engineering at Engine Yard

  • Culture isn’t the quirk things in the office (beer fridges, games)
  • Healthy culture rests upon trust and communication.
  • Cofounders and first-hires have huge impact on culture.
  • What about an established company culture? You can influence it.
  • VP of Engineering’s Job:  Help the team kick-ass!  Facilitate the ability for people smarter than you to kick-ass!
  • There are teams, projects and locations.  The challenge is to facilitate trust and communication.
  • You have to spend face-time with people to engender trust.  People bond over shared conversations and experiences.

On Solving Browser Problems – Rachel Andrew, Founder of edgeofmyseat.com

Rachel spent most of her time advocating for people to really understand what’s going on behind the tools (jQuery, Polyfills, etc).

  • IE8 and below don’t support media queries.  response.js will polyfill media queries for IE8.  Nobody is using IE8 on mobile anyways.
  • IE8 and below don’t support styling HTML5 semantic elements. Maybe you’re ok with the degraded experience on these older browsers.  html5.js can polyfill support in older browsers
  • Some older browsers don’t support certain CSS3 selectors.  selectivizr can polyfill some of them.  
  • You should know what happens if the JS on your site doesn’t load.

On Using Data – Anna Dahlström, Co-founder of byFlock

Anna gave a quite high-level talk about the nature and use of data.  Some takeaways:

  • Build-in analyticsin your prototypes and production from Day 1 because these will inform the design process.
  • Apparently 57 slaves work for me,  Not very positive response when I tweeted that.  Very cool UI on this site. 

On Twilio – Jon Gottfried, Developer Evangelist at Twilio

A very well-received and entertaining presentation, where Jon live-coded a simple Twilio app that:

  1. Received calls from the audience (and played a simple prompt)
  2. Called people in the audience back and put them into a audio conference.  A cacophony of rings and echoes ensued.

Why CEOs don’t get it – Peter Cosgrove, Director of Technology, Engineering & Science at CPL

  • CEOs are looking for CTOs that are influencers and revenue generators.
  • Funny quote “Employees have peaked at the moment you hire them, it’s only downhill from there”.
  • Not many other concrete take-aways.

On APIs – Frank Fischer, Head of B2B2X Software & Platform at Deutsche Telekom

Frank admitted that the telecoms weren’t very effective at catering for developers or supporting open ecosystems on their infrastructure.  Deutsche Telekom has a project Gestalt that is re-imaging their relationship with developers – and it starts with empathy for developers: their goals, motivations, frustrations.

Be careful of letting your architects build the external API.  It might not actually solve the problems that developers or other businesses care about.  Or they might be too hard to use.  When they design an API the focus on 3 things: 

  • External Usecases
  • Internal Usecases
  • The technological factors (security, performance, etc)

APIs need great companions (SDKs, Demos, How-tos, Docs, Tools, Logs, etc).  APIs also need evangelists to take this to the developer community.

On Doing It Wrong – Chris Poole, Founder of 4chan

  • “Single points of failure probably aren’t as bad as you think”.  There is a tradeoff between cost and availability. 4chan runs on 5 servers, each specialized.  [ED: I think he can say this because he isn’t charging anyone for access to 4chan]
  • “You probably don’t need an API”.  They just added a read-only JSON API.  But they are getting 50 Million requests per day on their API now.  Half of their traffic was scrapers before the API (600 million page requests / day).
  • “HTML is a great cache”.  They render static HTML, gzip, push to disk.  Serve via Nginx.  Cloudflare proxies their HTML requests.  Their pages aren’t personalized so they can do this.
  • “Let other people solve problems not core to your business”.  e.g. Mail, CDN, Captcha, DNS
  • “There are no silver bullets”.  New technology comes with new problems.
  • “Buy used stuff”.  e.g. Aeron Chairs, servers.  4chan wouldn’t exist without EBay.
  • “No SCM for 5+ years”.  They only had 1 developer at a time for years. [ED: Dear lord.  This is terrible]
  • All the content in 4chan is ephemeral.  They don’t save more than 24hrs.  So nearly everything can fit into memory.  There’s no DMCA worries because things are not saved on the site.  Unwitting benefit to the nature of the site.

On Scaling to $1B – Renaud Visage, Co-Founder & CTO of Eventbrite

The $1B above is accumulated ticket sales.  They’ll do $600M in 2012.  They set out to revolutionize ticketing.  Renaud covered all the key points when giving good advice on building and scaling a product.

  • At the Start: one eng, custom python framework, mysql, apache, one server, no designer.
  • Have a network you can lean on for advice (expert friends)
  • He gave some of the standard scaling advice: separate db & apps, scale horizontally, backup, build redundancy, create the right indexes, cache DB query results in memcache, master-slave replication.
  • Georgetown’s event in 2009 with Obama took down the Eventbrite site.
  • Build an API, expose your data.
  • Offload non-critical components (email, DNS).
  • In 2009 they moved to EC2.
  • Use load-balanced slave-pool for DB reads.
  • If you want to use continuous deployment, build automated tests.  They use Selenium.
  • Use git.
  • They switched slowly to Django in 2010.
  • Introduce feature flags.
  • Automate server deployment, server configuration and release process.  They use Puppet and Jenkins.
  • Replace apache with nginx (in 2010). 
  • Define coding standards, and enforce formal code review process.  They use Review Board.
  • Use a queueing system for async processes (RabbitMQ, celery) and to support high load.
  • They use big data tools & techniques to build recommendations (they use Hadoop, HBase, Hive).
  • Front end automation tests in Javascript
  • 180 servers in production today.
  • Expect the unexpected
  • Welcome the challenges that success brings
  • Stay lean, recognize when you need help
  • Hire smarter than you.  Hire generalists to start up, and then specialists to help you scale.
  • Add process as you scale the team.

Thoughts on growth – Josh Elman, Former lead product guy at Facebook and Twitter

Josh shared a bit about the story of Twitter. They were seeking to articulate the persona of someone who uses Twitter.  They eventually came to: “Someone who want to know what’s happening in their world”.

At LinkedIn, they focused very intensely on the text of the Invite request.  When they defined it as sharing opportunities, acceptance rates took off.

Key focus of the talk: The first time someone interacts with your product is the best time to educate them.  Creating a long, educational first experience.  He walked through their improvements to the first-time-user experience for Twitter.  Very interesting.

On Launching Products – Brenden Mulligan, Founder of Onesheet and other stuff

Things he launched in a 12 month period:

  • Photopile – Instagram on the web?
  • MorningPics – Sends you your pics each morning
  • OneSheet – Splash Pages for Entertainment
  • TipList – City Guide
  • WebbyGram – How Instagram should look on the web (again?)

Advice on Launching:

  • Focus on 3-5 key metrics only!
  • Create a simple dashboard.  Make a mobile interface to it.  Make it your home screen.  Send the whole team a daily report email, text based with key #s.  Generate simple alerts for important things.
  • Target relevant press.  Find writers that care about the product, with readers that care more.
  • Add sharing into the initial product launch. 
  • Referral for access does work.
  • Gathering Feedback – you don’t need sophisticated ticketing system.  Use name@company.com or support@company.com
  • Automated emails are okay if they are personal.  Plain text.  From name@domain.com.  Make it super personal.  “Hi there!  I noticed….”.  Start simple, just ask users what they think.

On Products and People – Taso Du Val, CEO of TopTal

I didn’t realize the theme of his topic until the end.  Basically he was advocating a method for creating a business and product.

Who makes great products?

  • Not great engineers
  • Not great visionaries
  • Rich People with Experience [Ed: really?]  Why Rich People?  Time.  Less Pressure.  Access to People.  Most products never become finished.

Model for bootstrapping a business:  Start with a low-leverage almost-services business that generates revenue.  Then transition into a software product based business.  Consumer plays are more difficult than enterprise plays.

On Customers – Des Traynor, Co-founder and COO Of Intercom

A funny an entertaining talk about the customer perspective and when (or when not) to reach out to customers.  Not many points to walk away with.

On MariaDB – Monty Widenius, Co-founder of MySQL

His goal was to get the developers to switch to MariaDB.  Key points:

  • Oracle is slowly closing up MySQL.
  • Monty Program Ab is a support company for MariaDB.  “Save the People, Save the Product”.  Keep the MySQL talent together.
  • MariaDB already has a number of improvement over MySQL (performance, replication).
  • Great stuff coming (multi-source replication, stats, global transaction ids).
  • Trying to get companies to sponsor the work on MariaDB.  They have about 15 active developers right now.
  • He’s spending his 40 Million euros (from sale to Oracle) on MariaDB

On Beating Google – Ilya Segalovich, Co-founder of Yandex

This was the co-founder and CTO of Yandex – the big search player in Russia.  The point of this talk was to spread Yandex awareness out of Russia.  

  • In Russia, Yandex is beating Google in Search, Email, Maps, E-Commerce Services
  • If they’re beating Google in Russia, they must be better!
  • It’s not just because of the peculiarities of the Russian language.
  • Now they’re competing on platforms.  They created a web-browser!  (Actually it’s chromium based).
  • They’re not playing in Social yet.

Interview / Chat – Mitchell Baker, Chairperson and former CEO of Mozilla

This was one of the better live-interviews I’ve seen.  Talked about:

  • There’s room for a third mobile platform that is web-baed.  Smaller tech stack.  Simpler.  Firefox OS.  Kernel that touches the hardware.  Everything else is web based.  Apple vs Google vs Mozilla.
  • With regard to timing.  First Firefox OS phones will ship next year.  South American telecomm carriers first.
  • They want it so you can ‘view source’ for apps on the phone.
  • They want to support app discovery, but not necessarily an app-store clone.  Purchases that work across devices.
  • She addressed the need for developers to be able to monetize their creations – but no specifics.

Final Thoughts

They didn’t leave time in the schedule for lunch!   What?  The schedule went from 9:00am until 3:00pm with only a 10 minute break at 11:20.  This had three bad consequences: 

  1. The presenters were competing with my hunger for attention.  Hmmm… I wonder how effective that is.
  2. There was no time that could be used to re-align the schedule if presenters went over.  As the day progressed the schedule drifted back. 
  3. There was no time to resolve technical issues.  In this case the machine that was hosting the presentations was slowing down over the course of the day.  Not sure if the presentation software was growing in memory size after some massive decks or what, but I think it would have been helpful to give that poor machine a reboot.  Eventually they added a small 5 minute break to do that.

A much better schedule would have involved two 15 min breaks and 30-60 min lunch.

And finally, it’s easy to criticize.  But Eamon Leonard and the organizers deserve praise for putting together a day with lots of interesting content.  I’m glad I came, and hope to be able to be here again next year.

Posted in Uncategorized | Tagged , | Leave a comment

At Heathrow, waiting to depart for Dublin Web Summit. www.websummit.net (Taken with Instagram at Terminal 1)

Posted in Uncategorized | Leave a comment

Velocity EU 2012: Hands-on Web Performance Deep Dive

Steve Souders  Steve Souders, Head Performance Engineering, Google

Patrick Meenan Patrick Meenan, Google / WebPageTest

Steve and Patrick picked apart the performance of several UK Soccer Club websites with WebPageTest and Google Dev Tools.  Some things they covered;

  • WebPageTest is open source, you can run your own instances, customize it.
  • There’s an API, you can automate it when running your own instances.  Some people use this API for web test automation (selenium substitute).
  • WebPageTest.org supports recording a video.  Do this.  It’s in the Advanced Settings, Video Tab.  It’s very compelling way of showing performance improvements or comparisons with competitor sites.
  • You can do side-by-side comparisons in a filmstrip or video, via the Test History tab.
  • If you have WebPageTest run the test from chrome, you can do a DevTools timeline capture.  
  • DOMContentLoaded handling is purple vertical band in the WebPageTest waterfall chart.  It should be narrow, because the UI in not responsive during that event handling.
  • The SPOF tab allows you to see what happens if one of your providers goes down (i.e. Twitter, Facebook, Bazaarvoice).
  • Using window.onload as the measure for loading time is a little arbitrary, put that’s what is generally used as a criteria (used in PageRank).  Also, busy indicators stop at window.onload
Posted in Uncategorized | Tagged | Leave a comment

Joel Spolsky’s “Smart and Gets Things Done”

I picked this book up because of a recommendation from a colleague at work.  We’d been working on developing an interviewer training course.  

First of all, this is a terrible cover.  The cartoon images makes it seem like the contents are lightweight.  Although Spolsky has a very casual writing style, the ideas in the book have real substance.

Many things I agree with:

The great software developers, indeed, the best people in every field, are quite simply never on the market.

If you have any grouchy developers that you just can’t get rid of, at least take them off the interview schedule, and if you have cheerful, social, cruise-director types, make sure they’re on it

The original hiring rule for Fog Creek, stolen from Microsoft, was “Smart, and Gets Things Done.”

We look for evidence that the applicant is passionate about computers and really loves programming.

For someone who is basically a good software developer, learning another programming language is just not going to be a big deal.  In two weeks they’ll be pretty productive.  There is, I think, one exception to this rule.  If you’re hiring and architect or head developer – that is, the chief software engineer who is going to have to lay out the initial code and figure out how things work together – you probably want to hire someone with a lot of experience in the technology that you’re using. … Don’t start a new project without at least one architect with several years of solid experience in the language, classes, APIs, and platforms you’re building on.

The trick is telling the difference between the superstars and the maybes, because the secret is that you don’t want to hire any of the maybes.  Ever.

Never say, “Hire, but not for my team”

It is much, much better to reject a good candidate than to accept a bad candidate.  Don’t be afraid that you’re going to reject too many people and you won’t be able to find anyone to hire.  During the interview, it’s not your problem.  Of course, it’s important to seek out good candidates. But once you’re actually interviewing someone, pretend that you’ve got 900 more people lined up outside the door.  Don’t lower your standards no matter how hard it seems to find those great candidates.

Before the interview, I read over the candidate’s resume and jot down an interview plan on a scrap of paper.  That’s just a list of questions that I want to ask.

Don’t listen to recruiters. Don’t ask around about the person before you interview them.  And never, ever talk to the other interviewers about the candidate until you’ve both made your decisions independently.

Good candidates are careful to explain things well, at whatever level.

I ask interviewers to write immediate feedback after the interview, either Hire or No Hire, followed by a one or two paragraph justification.  It’s due fifteen minutes after the interview ends.

If you do have to say no to someone, do it quickly and respectfully.  You are, of course, under no obligation to tell people why they’re not the right fit, but you do have to tell them, and you have to do it promptly.  It’s just common decency.

One thing I disagree with:

I generally consider the idea of employee referrals to be one of the weakest sources of new hires.

I don’t know how on earth he could think this. I think he seems to make two mistakes here:

  1. Assuming smart developers will refer people who aren’t smart.   But smart developers know other smart developers – and want to work with them.  And who cares if they refer candidates who are a poor fit – that’s what the interview process is for.
  2. Assuming referrals get special treatment.  He later says “when a Fog Creek employee suggests someone that might be perfect to work for us, we’ll be willing to skip the initial phone screen, but that’s it.”  Where I work we love employee referrals, but they don’t get to skip the phone screen or any other part of the process.  We don’t even make it public to the interviewers that this was a referral.

On Motivation:

He also briefly talks about motivating employees, and suggests The Identity Management Method:

Summon all the social skills you have to make your employees identify with the goals of the organization, so that they are highly motivated, then you need to give them the information they need to steer in the right direction.

At Bazaarvoice we talk about the same concept in slightly different terms – we talk about setting context.  But it’s basically the same idea.  

Spolsky’s short comments on motivation reminded me that I should re-read Daniel Pink’s Drive: The Surprising Truth About What Motivates Us”

To Conclude:

Spolsky articulates the “Smart and Get’s Things Done” hiring philosophy pretty well in this book, and gives practical advice on how to go about the business of hiring great people.

Personally, I’m a big fan of this philosophy – I think it’s worthwhile to recruit and retain top programming talent.  However, I worry a little bit that this is a zero sum game playing out amongst the tech firms.  Not every employer of software engineers can fill their ranks with A players.  As an industry we also have to work on attracting talent from elsewhere (e.g. finance), and developing talent.  I’ll leave the question of whether we can turn B players into players for another time.

Posted in Uncategorized | Tagged , , | Leave a comment

First visit to London Web Performance Meetup

Last night I attended the London Web Performance Meetup.  The topic was Application Performance Monitoring and it was done by Martin Pinner of Application Performance Ltd.

There always a danger when inviting a vendor to present at a meetup or conference.  I’ve seen it too many times when the vendor can’t help but make a big pitch for their products or services.  In this respect Martin did a great job – he talked about the landscape of APM monitoring tools, and he didn’t give any special promotion of his.  It was also clear that he had a lot of experience with APM monitoring. 

What I would have loved to hear is more real-world example stories of situations where he had to deploy APM tools to solve particular problems, and the manner in which these issues were resolved.  That would have really engaged the audience.  It cannot be repeated too often enough – stories and anecdotes are the most powerful tools a presenter has.

I’m going to try and track down his slides because he did present a comprehensive survey of the tools available, many of which I haven’t heard of before.

Posted in Uncategorized | Tagged | Leave a comment

Brant Cooper in the founders’ studio

Two days ago I attended my first London Meetup.  It was with Lean Startup London, and the topic was In The Founders’ Studio With Brant Cooper, Entrepreneurs Guide to Customer Development.

The affable host was Salim (‘Sal’) Virani (@SaintSal) who organized it as a open chat with Brant Cooper.  I had never heard of Brant Cooper before, and I really should have.  He’s a Lean Startup guru and consultant from San Diego.  He wrote The Entrepreneurs Guide to Customer Development and he had lots of practical advice for the audience.

A couple of important nuggets I took away:

  • Lean Startup is a poor name.  This is really a method designed to help you develop products with real value.  Marty Cagan refers to this as Product Discovery.  Brant refers to it as Customer Development.
  • It’s Not Easy.  Getting in front of your customers is invaluable.  And if they can’t use or don’t understand your product then that’s great feedback.  But what’s hard is when they like the product, but you’re not sure they love it enough to buy it.  Brant advocates that you try to get them to actually buy it – even if you can’t deliver the full product yet and it requires some manual work.  A few real customers beats a thousand ‘Oh yes I would buy this’.
Posted in Uncategorized | Tagged , , | Leave a comment

On Monetizing Intent

90%+ of Google’s Revenue comes from monetizing intent.  What does that mean?  It means that google is best positioned to know what you are looking for *right now*.  Because you start your search with them.  So they sell you and your current intentions to advertisers.

There is huge $ in knowing the intent of consumers.  The whole Facebook Like ecosystem is designed to enable Social Search – a form of search that uses your social profile and network to improve the relevance of search results.   If Social Search is better than regular Google search, then we might start our shopping at the Facebook search bar instead of Google.  If that were to happen then Facebook could monetize our intent.  Part of Facebook’s valuation is based on the likelihood of Facebook being able to monetize intent.  Interestingly it doesn’t yet appear that social search is gaining traction.

What is gaining traction?  People going direct to retailers (primarily Amazon) and starting their product search there.  This provides a terrific opportunity for retailers to monetize your intent.   They are already monetizing intent when they provide product recommendations.  Amazon has gone even further by offering third-party keyword-based ads right on amazon.com   Search for ‘running machine’ on Amazon and you’ll see the following at the bottom of the results:

BestBuy.com and Walmart.com have followed Amazon and added ads at the bottom of their search results too – powered by Google Adwords.

Will the long-tail of retailers enable third-party ads right on their websites?  How much $ will that bring in?

Posted in Uncategorized | Tagged , , | Leave a comment