surviving a hackathon and beyond

88
Surviving a Hackathon and Beyond Edmund Kwok, Chief Technology Officer (CTO) Think in components Don’t reinvent the wheel Focus on MVP / core features Get out of the building Always learn / experiment Comment your code Use a VCS Be part of the community Have Fun! Before During After Always

Upload: imoneytech

Post on 26-May-2015

607 views

Category:

Technology


1 download

DESCRIPTION

What you should keep in mind before, during and after a Hackthon.

TRANSCRIPT

Page 1: Surviving a Hackathon and Beyond

Surviving a Hackathon and BeyondEdmund Kwok, Chief Technology Officer (CTO)

Think in components

Don’t reinvent the wheelFocus on MVP / core features

Get out of the building

Always learn / experiment

Comment your codeUse a VCS

Be part of the community

Have Fun!

Before

During

After

Always

Page 2: Surviving a Hackathon and Beyond

About me..• Started off as Freelance Drupal Site Builder / Developer /

Themer in 2004

• Clients in US, UK, UAE, Singapore, India, Malaysia

• Studied Psychology for 2 years, dropped out after interning at a Startup

• Full time as iMoney CTO, Employee #2 in January 2013

• Email: [email protected]

• Twitter: @edkwh

Page 3: Surviving a Hackathon and Beyond

• #1 Financial comparison site in the region - Malaysia, Singapore, Philippines, Indonesia, Thailand, Hong Kong

• Compare financial products and apply online, for FREE!

About

Page 4: Surviving a Hackathon and Beyond
Page 5: Surviving a Hackathon and Beyond
Page 6: Surviving a Hackathon and Beyond
Page 7: Surviving a Hackathon and Beyond
Page 8: Surviving a Hackathon and Beyond

• #1 Financial comparison site in the region - Malaysia, Singapore, Philippines, Indonesia, Thailand, Hong Kong

• Compare financial products and apply online, for FREE!

• Product, Marketing, Operations / Call Ops, Admin and Tech Team

• Tech Team - 4 developers (including me), 2 UI / UX, 1 iOS / Android

About

Page 9: Surviving a Hackathon and Beyond

Think in components

Don’t reinvent the wheelFocus on MVP / core features

Get out of the building

Always learn / experiment

Comment your codeUse a VCS

Be part of the community

Have Fun!

Before

During

After

Always

What should you do before, during and after a hackathon?

Page 10: Surviving a Hackathon and Beyond

Don’t reinvent the wheelFocus on MVP / core featuresBefore

Page 11: Surviving a Hackathon and Beyond

1. Core Features and MVP• What problem are you trying to solve?

Page 12: Surviving a Hackathon and Beyond

Ask ‘Why’ until you get to the core of your

idea

Page 13: Surviving a Hackathon and Beyond

1. Core Features and MVP• What problem are you trying to solve?

• Focus on core features, must haves VS nice to haves

Page 14: Surviving a Hackathon and Beyond
Page 15: Surviving a Hackathon and Beyond

Pareto’s Principle

Small Problem 20%

Main Problem 80%MVP

20%

Product 80%

Page 16: Surviving a Hackathon and Beyond

1. Core Features and MVP• What problem are you trying to solve?

• Focus on core features, must haves VS nice to haves

• Skip extra functions - user registrations, email validation, animations, parallax, cron, machine learning, world domination etc

• Trim, trim, trim, lean lean lean

Page 17: Surviving a Hackathon and Beyond
Page 18: Surviving a Hackathon and Beyond

1. Core Features and MVP• What problem are you trying to solve?

• Focus on core features, must haves VS nice to haves

• Skip extra functions - user registrations, email validation, animations, parallax, cron, machine learning, world domination etc

• Trim, trim, trim, lean lean lean

• Build UI later but still focus on UX - deliver a functional product

Page 19: Surviving a Hackathon and Beyond

Beautiful, but not too practical?

Page 20: Surviving a Hackathon and Beyond
Page 21: Surviving a Hackathon and Beyond
Page 22: Surviving a Hackathon and Beyond

Which was more functional?

Page 23: Surviving a Hackathon and Beyond

1. Minimum Viable Product• What problem are you trying to solve?

• Focus on core features, must haves VS nice to haves

• Skip extra functions - user registrations, email validation, cron, machine learning, world domination etc

• Trim, trim, trim, lean lean lean

• Build UI later but still focus on UX - deliver a functional product

• MVP = Minimum viable product, not minimum vegetable / value product

Page 24: Surviving a Hackathon and Beyond
Page 25: Surviving a Hackathon and Beyond
Page 26: Surviving a Hackathon and Beyond

1. Spend some time to see what’s out there before writing code

2. Don’t reinvent the wheel

Page 27: Surviving a Hackathon and Beyond

2. Don’t reinvent the wheel

There’s a FRAMEWORK for that

Yo dawg! We so need a real time framework that we

can build real time shizzles with.

Meteor.js https://www.meteor.com/

Page 28: Surviving a Hackathon and Beyond

2. Don’t reinvent the wheel

There’s a PLATFORM for that

Yo dawg! What about our own Analytics tool to track

visitor behaviour?

Piwik http://piwik.org/

Page 29: Surviving a Hackathon and Beyond

2. Don’t reinvent the wheel

There’s a LIBRARY for that

Yo dawg! Maybe a kick ass tool that creates

interactive data visualisations?

d3.js http://d3js.org/

Page 30: Surviving a Hackathon and Beyond

2. Don’t reinvent the wheel

There’s a SERVICE for that

Yo dawg! Gah, we need to setup a backend

infrastructure to support our mobile app!

Parse https://www.parse.com/

Page 31: Surviving a Hackathon and Beyond

2. Don’t reinvent the wheel

There’s even a THEME for that!!

Fundify - The WordPress Crowdfunding Theme http://themeforest.net/item/fundify-the-wordpress-crowdfunding-theme/4257622

Yo dawg! Let’s build a crowd sourcing site for

Malaysia!

Page 32: Surviving a Hackathon and Beyond

2. Don’t reinvent the wheel

There’s a MODULE for that

Yo dawg! I just though of this cool XYZ idea!!

Page 33: Surviving a Hackathon and Beyond

2. Don’t reinvent the wheel

There’s a PLUGIN for that

Yo dawg! I just though of this cool XYZ idea!!

Page 34: Surviving a Hackathon and Beyond

2. Don’t reinvent the wheel

There’s a COMPONENT for that

Yo dawg! I just though of this cool XYZ idea!!

Page 35: Surviving a Hackathon and Beyond

2. Don’t reinvent the wheel

There is an APP for that

Yo dawg! I’m sure this is not out there!! An app that

tells you when a watermelon is ripe to eat!!!

Melon Meter https://itunes.apple.com/us/app/melon-meter/

id450015952?mt=8

Page 36: Surviving a Hackathon and Beyond
Page 37: Surviving a Hackathon and Beyond

1. Spend some time to see what’s out there before writing code

3. More time to focus on your solution and deliver a functional app

2. Use and integrate what you need (not everything you want)

2. Don’t reinvent the wheel

Page 38: Surviving a Hackathon and Beyond

• PHP https://packagist.org/

• JS http://microjs.com/ | http://www.jsdb.io/

• Ruby https://rubygems.org/

• iOS http://cocoapods.org/

• Node.JS https://www.npmjs.org/

• Themes http://themeforest.net/

2. Don’t reinvent the wheel

Page 39: Surviving a Hackathon and Beyond

Think in components

Comment your codeUse a VCSDuring

Page 40: Surviving a Hackathon and Beyond

3. Think in components

• Separate out components - modules / objects / entities / sections / pages / screens

• Common & shared vocabulary when discussion with team, reduce confusion of being vague or ambiguous

• Easier to track logic flow Easier to reuseEasier to extendEasier to read code Easier to collaborate

Page 41: Surviving a Hackathon and Beyond
Page 42: Surviving a Hackathon and Beyond

Insights CRM

Insights DB

Publishers

Mobile App

Call Operators

Mortgage Consultants

Webapp

Analytics

Mortgage Admin

Management

Leads DB

Leads Collector

Page 43: Surviving a Hackathon and Beyond

4. Use Version Control Systems

• Maybe ‘no time’ to use a VCS, but small investment that goes a long way

• What if you need to revert back to a code that was working perfectly 45 minutes ago?

• Undo undo undo undo undo undo undo undo, copy, redo redo redo redo redo redo redo redo pasteorUndo undo undo undo undo undo undo undo, copy, accidentally hit ‘z’ = GAME OVER, redo history gone

Page 44: Surviving a Hackathon and Beyond

4. Use Version Control Systems

• Very useful for solo developers: MyAwesomeCode-old.phpMyAwesomeCode-new.phpMyAwesomeCode-newer.phpMyAwesomeCode-newest.phpMyAwesomeCode-even-newest.php (?!!)

• Vital when working in teams - merge code safely with different developers working concurrently

• Quicker & cleaner deployment - only changes are brought in with git pull or git-ftp

Page 45: Surviving a Hackathon and Beyond

• GitHub Flow - branches are cheap and easy

• Every new stuff is branched off master

• Everything merged to master

• git co -b NeedToShower git add ..git commit -m “Awesome code that solved water crisis”git co mastergit merge NeedToShower

4. Use Version Control Systems

Page 46: Surviving a Hackathon and Beyond
Page 47: Surviving a Hackathon and Beyond
Page 48: Surviving a Hackathon and Beyond

5. Comment your code

• Helps you remember what you were doing, clarify your intentions

• Makes it easier for team members to pick up where you left off

• But avoid unnecessary comments. As much as possible, let the code speak for itself

Page 49: Surviving a Hackathon and Beyond
Page 50: Surviving a Hackathon and Beyond
Page 51: Surviving a Hackathon and Beyond
Page 52: Surviving a Hackathon and Beyond
Page 53: Surviving a Hackathon and Beyond

When you’re a zombie, your code will eat your brains!!!

(But your code comments will stop the rot and save you! :D)

Page 54: Surviving a Hackathon and Beyond
Page 55: Surviving a Hackathon and Beyond

See more comments!

• http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered

• http://stackoverflow.com/questions/143429/whats-the-least-useful-comment-youve-ever-seen

Page 56: Surviving a Hackathon and Beyond
Page 57: Surviving a Hackathon and Beyond

Get out of the building

Always learn / experiment

Be part of the communityAfter

Page 58: Surviving a Hackathon and Beyond

6. Get out of the building• Get feedback from people who would use your

product - especially those who would pay for it

• Start with your mum, dad, brother, sister, cousins.

Page 59: Surviving a Hackathon and Beyond
Page 60: Surviving a Hackathon and Beyond

6. Get out of the building• Get feedback from people who would use your

product - especially those who would pay for it

• Start with your mum, dad, brother, sister, cousins.

• Then move to neighbours, colleagues, trusted friends who will be honest, critical, opinionated, but above all, supportive

Page 61: Surviving a Hackathon and Beyond
Page 62: Surviving a Hackathon and Beyond

6. Get out of the building• Get feedback from people who would use your

product - especially those who would pay for it

• Start with your mum, dad, brother, sister, cousins,

• Then move to neighbours, colleagues, trusted friends who will be honest, critical, opinionated, but above all, supportive

Page 63: Surviving a Hackathon and Beyond
Page 64: Surviving a Hackathon and Beyond
Page 65: Surviving a Hackathon and Beyond

6. Get out of the building• Get feedback from people who would use your

product - especially those who would pay for it

• Start with your mum, dad, brother, sister, cousins.

• Then move to neighbours, colleagues, trusted friends who will be honest, critical, opinionated, but above all, supportive

• Are you Running a Business or an Expensive Hobby?

Page 66: Surviving a Hackathon and Beyond
Page 67: Surviving a Hackathon and Beyond

7. Always be learning / experimenting

High rate of learning = exponential gainshttps://medium.com/@KyleTibbitts/56dddc17fa42

Page 68: Surviving a Hackathon and Beyond

• Get off the Island - explore other languages, technologies, expand your mind, challenge yourself, go beyond your comfort zone

• Examples:Meteor.JS - Real Time frameworkPuppet / Chef - Provisioning serversVagrant / Docker - VM for consistent developmentLeaflets - Open source mapping libraryGoogle Prediction API - Machine learning API

7. Always be learning / experimenting

Page 69: Surviving a Hackathon and Beyond
Page 70: Surviving a Hackathon and Beyond

Technologies we use

Page 71: Surviving a Hackathon and Beyond

8. Be part of a community

Page 72: Surviving a Hackathon and Beyond

8. Be part of a community• Get questions answered & know better ways of solving

a problem - Stack Overflow, Quora, etc

• The more you share, the more you gain

• Earn community-cred - build portfolio of open source code, get noticed, gain customers!

Page 73: Surviving a Hackathon and Beyond
Page 74: Surviving a Hackathon and Beyond

8. Be part of a community

• Get questions answered & know better ways of solving a problem - Stack Overflow, Quora, etc

• The more you share, the more you gain

• Earn community-cred - build portfolio of open source code, get noticed, gain customers!

• Part of a bigger global community / movement

• Come for the code, stay for the community

Page 75: Surviving a Hackathon and Beyond

> 3,000 at DrupalCon Portland 2013

Page 76: Surviving a Hackathon and Beyond

Have Fun!Always

Page 77: Surviving a Hackathon and Beyond

9. Have Fun!

• It’s not always about winning and losing

• Make sure you learn, meet new people, make connections

• Start conversations, joke, laugh, keep the spirits high

• Not the end, but the beginning of greater things

Page 78: Surviving a Hackathon and Beyond
Page 79: Surviving a Hackathon and Beyond

Think in components

Don’t reinvent the wheelFocus on MVP / core features

Get out of the building

Always learn / experiment

Comment your codeUse a VCS

Be part of the community

Have Fun!

Before

During

After

Always

1. 2 weeks to build an idea. If good, expand idea, if not, move on

2.Use modules, plugins, frameworks

3.Shared vocabulary with Tech, Product, Marketing, Management

4.Git - Bitbucket with 20+ repos

5.Always Be Code Commenting

6.a. CEO gets feedback from mum. Friends comment on Facebook

6.b. Call existing customers to ask them about service, experience, what they like / don't like

7.Learn and use new languages, framework, platforms

8.Join community events, contribute open source code

9.Have team events - Laser Tag, Durian buffet, laughter

We run mini Hackathons at 1 2

3 4 5

6 7 8

9

Page 80: Surviving a Hackathon and Beyond

Btw, we’re hiring :DSenior Web Developer

(Drupal preferred) • Engineer solutions for pain

points, build cool stuff

• Continuous learning and growth - AngularJS, Symfony2, Node.JS, Python?

• Work on Development, UX, CRM, Architecture, Infrastructure, Scaling, Mobile Integration, Machine Learning, Big Data

• Make the world a better place

Page 81: Surviving a Hackathon and Beyond
Page 82: Surviving a Hackathon and Beyond
Page 83: Surviving a Hackathon and Beyond

http://im.my/hiremelah

Page 84: Surviving a Hackathon and Beyond

1/6 of our team

Page 85: Surviving a Hackathon and Beyond
Page 86: Surviving a Hackathon and Beyond

–Steve Jobs

“A lot of times, people don’t know what they want until you show it

to them.”

Page 87: Surviving a Hackathon and Beyond

Good stuff!

• Sh*t Entrepreneurs Say http://www.youtube.com/watch?v=alZqXA4R2dI

• Epic 80's Entrepreneur Training Video http://www.youtube.com/watch?v=VcYwtEToZfQ

• Entrepreneurs can change the world http://www.youtube.com/watch?v=T6MhAwQ64c0

Page 88: Surviving a Hackathon and Beyond

Email: [email protected]

Thank you! Questions? All the best! :)

http://im.my/hiremelah