I've been married for 20+ years and we have three biological kids and three adopted. We had 95+ foster children over 15 years. Raising kids was sooo much fun the first time we thought we'd do it again with other people's offspring. In my spare time I have been known to swim, bike and run for long distances.
I'm the Trailhead Developer Advocate at Salesforce working on the team to make Trailhead the best place to learn Salesforce and Heroku.
For over 6 years I was a Senior Technical Consultant at Appirio & Developer Evangelist Architect at topcoder specializing in cloud, APIs & mobile apps. I worked on every type of Salesforce project available including Sales Cloud, Service Cloud, Custom Cloud and Chatter. I'm a certified Service Cloud consultant, administrator and developer. I ran Appirio's Heroku Center of Excellence and worked with the platform every day.
From early 2011 till late 2013 I built and ran Appirio's CloudSpokes crowdsourcing development community along with Dave Messinger. I wrote the entire platform with the help of our developer community plus a lot of great tools including Thurgood, Madison and many, many more.
When Appirio purchased topcoder (our much larger competitor), I moved over to become the Developer Evangelist Architect for the platform. I work with the community members, project teams, participate in our TCO events and run hackathons. I've written a number of tools and microservices to support and promote our evangelism efforts:
- Our Hackathon platform for running our TopCoder Open regional events. There's registration, team management, submission management and judging all tied into the topcoder auth service.
- The leaderboard service and API that is used by multiple applications on the platform.
- A challenge search service and API with Elasticsearch that supports many applications.
- For TopCoder Open 14 we wanted to offer a way for developers to receive a free ticket... if they were truly developers. I wrote Code Your Way In so developers could solve algorithm challenges for free entrance.
Building Developer Communities
I've been extremely passionate (I hate that phrase... but it fits!) about building developer tool and communities for the past 5-10 years. My blog is very popular with developers and it's grown to roughly 2,000 visitors a day. I like providing solutions to developer problems, tutorials on new technologies, code for quick-starts and tools of all sorts! It's great to meet people at conferences and have them tell me that a piece of code, an application or a tool I wrote made their life/work much easier!
I'm probably proudest of the work I did (and am still doing) while building the CloudSpokes and topcoder communities. I love interacting with the developers, getting them access to cutting edge technologies, writing blogs that explain some new technology or topic and showcasing their work. There have been a lot of high points so far but here are a few that come to mind:
Summer of Swift
In June 2014 Apple released their new Swift language. Since we always love shiny things at topcoder, we pushed an effort to get developers up and running with Swift by kicking off a development series with over $500,000 in cash and prizes. I ran the program from the community side which included developing the Swift site, writing challenges, interacting with members on the discussion boards and social networks, grading challenges and reaching out to guys that were much smarter than me in the Swift community for help and guidance. We had over 3,000 submissions in roughly 6 weeks and it was such a complete success that this template has been used as a model for other topcoder communities. It was so successful that it resulted in this relationship with Apple.
Topcoder "Partner" Communities
Companies love topcoder because of the talent we have inside the community. I've run developer communities for HP Idol OnDemnd, Cico, and IBM Bluemix. I'm responsible for developing the site to attract target members, help them get started with the technologies and actually competing in real world challenges. I'll do this through a series of blog post, fun challenges, sweepstakes challenges and any other way to excite the community. For HP Haven, I wrote a Scavenger Hunt application that was playable only through cURL! It was quite fun and popular with the community,
Salesforce1 Lighting Components
In late 2014 at Dreamforce, Salesforce.com launched their new Salesforce1 Lightning Components in beta. Before the launch I got early access to the program and worked with Salesforce Developer Relations to jointly push the development of these components in the topcoder community. When Lightning was announced at Dreamforce, Salesforce encouraged everyone to participate in our Salesforce Lightning Community. I launched the first Lightning tutorial and started running challenges in the community. I rolled out the marketing program in conjunction with Salesforce, developed the challenges and graded them. My resulting Showcase blog had a large number of great apps and components that Salesforce showed off.
When DynamoDB was launched in early 2012, I got on the private beta and worked with Amazon to obtain early access for our CloudSpokes developers. I wrote a quick demo the day after it was launched and proceeded to run some challenge to build some cool applications with it. I guess-blogged on the AWS site with the results of our challenges!
Over the last couple of years I have really been excited about DevOps, even developing a CI model for Salesforce.com projects. While at CloudSpokes I developer Thurgood for automated build, quality and security analysis of submitted challenge code. The microservice is hooked into various Appirio technologies and the topcoder platform. The project wiki has more detailed info.
I've been really excited about Docker since I met them at Monktoberfest a couple of years ago. I've written a number of blogs about Docker including Deploying Go Apps with Docker to Elastic Beanstalk and Deploying Docker to Heroku. I've been evangelizing the technology at Salesforce.com and within the topcoder community. I'm excited to see that a number of customer projects are using docker for submissions! I'm not sure if it's really DevOps per se, but I'be been trying to promote AWS Lambda with a number blog posts including AWS Lambda aka Node.js meets IFTTT as a service!
Force.com Utility Belt
The Force.com Utility Belt is a Google Chrome Extension that I wrote to make my life easier. While developing on the Force.com platform I consistently need access to Salesforce documents, message boards, code snippets, etc. and opening PDFs, searching documentation and looking up Visualforce component signatures becomes tedious. The extension evolved out my necessity to make myself more productive. It currently has more than 4,500 installs!
The Salesforce Handbook
A newcomer’s guide to building applications on Salesforce.com and the Force.com Platform. This book is not intended to be a deep-dive on security, programming, reporting, configuration, etc. but more of a high-level overview on salesforce.com, Force.com development, tools, methodology and other resources. You can find out more info at the book's blog site, read the reviews of the book or get a copy at Lulu.com.
Beginning Java Google App Engine If you are a Java programmer, this book offers you a Java approach to beginning Google App Engine. You will explore the runtime environment, front-end technologies like Google Web Toolkit, Adobe Flex, and the datastore behind App Engine. Available at Amazon.com.
I've written a number of articles for salesforce.com and the developer.force.com site.
- Introduction to the Force.com Web Services Connector
- Using OAuth to Authorize External Applications
- Single Sign-On with SAML on Force.com
- Loading Large Data Sets with the Force.com Bulk API
- Chatter Workbook Tutorial #3: Accessing Chatter From a Java Client
Open Source Projects
I'm involved in various roles with the following projects:
- nforce-tooling - A Force.com Tooling API plugin for nforce.
- nforce - A node.js salesforce REST API wrapper for force.com, database.com, and salesforce.com
- forcifier - Ruby gem that provides utility functions for dealing with Force.com fields to make them pretty and easier to work with.
- forcifier-node - Node.js package that provides utility functions for dealing with Force.com fields to make them pretty and easier to work with.
- sfdc-wsc - The Force.com Web Service Connector (WSC) is a high performing web service client stack implemented using a streaming parser.
- sfdc-oauth-demo - A demo Force.com web application using OAuth to authorize access to Salesforce to view account and contact records. Written on Google App Engine in Java.
- sfdc-bulkapi-demo - A demo Force.com Java command line app that uses the Bulk API to load data from a CSV file or JDBC database.
- twilioforce - Force.com library for Twilio
- gae-timecard - The source code for the timeentry application from my Beginning Java Google App Engine book.
- telesales - A demo application for Google App Engine using the Force.com WSC.
- Salesforce Lightning Week (San Diego Developer User Group 2015)
- Build Consumer-Facing Apps with Heroku Connect (Dreamforce 2014)
- Building Command-line Tools with the Tooling API & deck (Dreamforce 2014)
- Build your API with Force.com and Heroku (Dreamforce 2013)
- Wrestle your NoSQL Data with DynamoDB (Gluecon 2012)
- Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com (Dreamforce 2012)
- Connect Your Clouds with Force.com (Dreamforce 2011)
- Azure vs. Database.com: Lessons Learned from Replatforming CloudSpokes.com (Dreamforce 2011)
- Leveraging Public Social Networks (Dreamforce 2010)
- Architecting in the Cloud: Choosing the Right Technologies for Your Solution (Dreamforce 2009)
I have a ton of videos on my Youtube channel but here are a few of the older ones:
- Using the Salesforce.com OAuth Playground
- Salesforce Chatter for Android
- Authorizing Force.com Web Applications with OAuth
- Salesforce Chatter for Twitter demo
- Force.com Demo with Twilio
- Salesforce.com Robot for Google Wave
- Offline Adobe Air Application for Salesforce.com with the Stratus Framework
- Talend Open Studio
- PeopleImport from CRMFusion
- DemandTools from CRMFusion
- Informatica Data Loader
We received the following awards when I was the CIO at Medisend International:
2008 CIO 100 Award by CIO Magazine for Creating Business Value With Technology Innovation for establishishing an online global education center to provide technical training and education to students from developing countries on the maintenance and repair of biomedical equipment and healthcare management.
2007 CIO 100 Award by CIO Magazine for Exemplifying Operational and Strategic Excellence in Information Technology for processes and applications architected, designed and built.
2006 CIO 100 Award Winner for Innovation by CIO Magazine for the processes, technology and supply chain applications architected and built.