About


Dan_Bikle

In June of 1988 Dan Bikle graduated from Caltech with a BSEE.



A year before that he had started working at Oracle Corporation as an engineer.

A year after graduation, he left Oracle and started a consulting business to help early adopter customers implement ERP systems based on both Oracle Financials and Oracle Manufacturing which were both new and immature products. It was a perfect time to start that consulting business.

During the 1990s Dan worked at a wide variety of clients in the Bay Area who needed help migrating off of legacy systems (such as ManMan) to Oracle Applications.

In 1998 Dan started taking on clients who were building large database backed websites such as Lycos' MailCity.

The web started to dominate Dan's consulting business. In 2001 he finished his last Oracle Applications engagement and focused on database backed websites.

In 2003 Dan took on a full time job in the Sun IForce lab to connect with engineers and early adopter customers who wanted to use low-cost hardware to build clustered Oracle databases to back large websites. The timing was good. Oracle Corporation delivered cache-fusion in Oracle 9i (and enhanced in 10g) which made horizontal scalability possible in the database tier of an application.

Another big event was delivery of the low-cost 64 bit Opteron CPU from AMD. Clustered databases powered by low cost Opteron systems offered serious competition to expensive, vertically scaled machines from Sun, IBM, and HP. In 2005 Dan left Sun to take advantage of that opportunity.

Also in 2005, a large change was delivered to the world of web application development: Ruby on Rails (RoR).

Before RoR, Java based systems were the only good option available to an implementor of a large database backed website.

RoR hits the sweet spot of the constraint-configurabilty-tradeoff.

Between 2005 and 2008 Dan spent much of his time leveraging the advantages offered by lowcost hardware and RoR to build an online trading platform.

In early 2009 Dan was drawn into the world of Mobile Application Development.

By April 2009 Dan had learned the Rhomobile Open Framework and used it to prototype iPhone Apps.

On June 12 2009 Dan released the iPhone App: RowSeeUs which connects an iPhone to Oracle CRM On Demand.

The companion site is: http://RowSee.us

RowSeeUs App Store link:



On July 21 2009 Dan released the iPhone App: Map611 which is a simple map storing app. The companion site is http://Map611.com which also serves the Map611 Web App under the URL: http://Map611.com/iPhone

Map611 App Store link:



Map611 Web App:


In August of 2009 Dan saw the Vic Gundotra youtube video about HTML5 in the Gmail iPhone app.

So, Dan then learned how to use HTML5 to deliver features which compete with native apps:
  • Offline capability
  • Ability to store data in the phone

Another feature of HTML5 is portability. An app written in HTML5 will run on any phone which supports HTML5.

HTML5 is supported by Android 2.0 and Opera10 (targeted at Windows Mobile).

In late August 2009 RIM acquired Torch Mobile. It is obvious to Dan that eventually HTML5 apps will run on RIM BlackBerry phones.

Dan delivered his first HTML5 iPhone web app on September 3, 2009:


Even for building mobile applications, Dan's methodology has a strong "server" focus.

When Dan builds the server, he follows this approach:

0. Obtain / Derive a list of functions the site or App will deliver

1. Author security policies for the site

2. Obtain / Derive a list of Model classes for the application (Typically these are nouns which jump out from function descriptions)

3. Decide how the Model classes are related (One-Many, Many-Many, One-One)

4. Look for Data Structures in Models (Tree, Nested Set, List)

5. Code up the model classes

6. Constrain the site to our security policies

7. Code up the physical database structure and then run that code

8. Fill up the database with fixture data so the developer can "see" it

9. Build a web1.0 prototype which looks something like Craigslist (Also you could get a jump-start on step 12 here)

10. Iterate with the users over the prototype

11. Audit site for compliance to our security policies

12. Drape a pretty skin over the prototype and stop calling it a prototype

13. Iterate with the users over the site

14. Code up testing/auditing framework for the application

15. Leverage off the testing code to setup monitoring

16. Swap out the development database with a clustered database infrastructure

17. Deploy the server code to a production infrastructure

18. Turn on monitoring, production level backups, and disaster recovery mechanisms

19. Run all the tests written in step 12

20. Fix bottlenecks found by load tests

21. Test disaster recovery

22. Start Customer Support application

23. Go Live!

24. Vigilantly monitor the site

25. Frequently scan Customer Support application for indications of problems