Culture, Faux Pas, Development Process And Engineering Criteria In A Successful Technology Company

By Александар Брадић | June 21, 2013

Culture Link to heading

  • Find your passion and build on it
  • You finish your bachelor’s and you think you know everything, your master’s and you realize you know nothing, your doctorate and you realize no one else knows anything
  • Be humble !
  • Research matters - you must read papers
  • Implementation matters - you must read open source code
  • Ask hard questions first (will this work ?) - figure out details and timeframes later
  • Anything can be prototyped in a day (doesn’t have to work)
  • No sandbagging !
  • Ask for forgiveness, not permission
  • You’ve built it - you own it
  • Think outside the servlet
  • It is OK to fail, as long as you care
  • With great power comes great responsibility
  • If you use an external “tool” - make sure you can write patches for it
  • Learn and build something new every week
  • Know something about everything and everything about something
  • Find your industry peers (Google, Twitter…) and make sure you’re at least as good
  • Think “how would I build this” first / “what tools are out there” second
  • Follow at least one open source mailing list
  • Learn how to setup your own servers
  • Never be “blocked”, on anyone or anything
  • Great teams need no management or cargo cult processes
  • No matter what you do, you must code

Faux Pas Link to heading

  • Using Cron
  • Promoting Open Source projects based on it’s website’s first page (”… it’s document-oriented-highly-scalable-yaddda”)
  • Paying for tools
  • Hiring consultants for Platform work
  • Not monitoring production infrastructure
  • Not optimizing for performance and cost
  • Not understanding how things work
  • Not caring about the product
  • Not trying hard enough
  • Pointing fingers

Development Process Link to heading

  • Use Github for source control, wiki & tickets
  • Use google apps for collaboration
  • Use Trello for project management
  • If in need of productivity tools - use Github and Trello API and hack something together
  • Peer review over formal review - at least two pairs of eyes on each piece of production code
  • Joint ownership - find an engineer that believes what you’re building is important
  • Building the right thing comes first - code quality second
  • Release daily, release weekly
  • Write the right amount of documentation
  • Always be testing / cover important questions first (integration, performance, do results make sense ?)
  • QA is for 1M+ projects only

Engineering Criteria (need at least 2) Link to heading

  • Is it beautiful ?
  • Is it relevant ?
  • Will it generate revenue ?