Salesforce Developer Spotlight: Jason Hammerle

This is the first in a new series of posts that will spotlight one Developer who has successfully transitioned to Salesforce. The people in these posts were interviewed in order to share their transition experiences with other developers. This information was used as part of a Dreamforce 2014 session titled, “Career Strategies for Developers Transitioning to Salesforce“.

JasonHammerleJason Hammerle

Salesforce Architect for Cameleon Software, a PROS company

Jason, who recently passed the DEV501 certification test, has been working with Salesforce for the past two years. But Jason is no newcomer to software development. He has been a professional software developer since 1994, when he began his career as a computer programmer at NASA. It was there that he developed a C++ and X-Windows application used to plan Space Station and Shuttle missions. You can read more about his programming background here.

Jason has worked with many technologies and platforms over the years, but it was his exposure to a Dreamforce session one year ago that ignited a certain spark in him. The following are Jason’s own words about what led him to becoming a Salesforce Developer and why he likes it so much:

What was your main transition approach, or was your transition very sudden?

It was very sudden and exactly one year ago.  I had just taken a HOT session and I was sitting on a bean bag practicing what I learnt in an Interfacing with Salesforce using REST class while listening to 80’s music.  At that moment, I realized why Salesforce was so successful and why I was going to devote the rest of my career to this fantastic platform.  Specifically, Salesforce understood how to make the developer experience very cool and very fun.  We hear a lot about user experience but less about developer experience.  Good software requires good user experience and a good platform requires good developer experience – and Salesforce has the very best.  At that time, I was managing a large salesforce team, a dynamics CRM team, and two cloud teams.  My days were filled with double or triple booked meetings from morning until COB.  I decided in the bean bag that my life was about to change and that I was a developer again.  I took PTO the week after Dreamforce and spent 30 hours developing a Salesforce 1 app to validate my decision.  I have not stopped developing since.

Did you pursue any certifications? Did you take any online or in-person classes? What other types of training did you do to learn about Salesforce?

In the Spring of 2014, I travelled to Dallas TX to attend the DEV401 training class.  A few weeks later, I travelled to Salesforce offices in San Mateo, CA to attend the DEV501 training class.  Both instructors were really great teachers each with their own very unique style.  I passed the DEV401 cert in the Summer of 2014 and I hope to pass the DEV501 cert in Fall of 2014.  After I pass (while I wait for the programming assignment), I intend to purse two more certifications in Sales Cloud and Technical Architect.

 What are some of your favorite online resources for learning? Do you have any favorite blogs that you follow?

We have premier support so I heavily use the partner training portal to prepare for certification exams.  Also, I have a membership with pluralsight and think these video resource are a great way for developers to stay up to date and relevant.  I also follow several blogs like Sara Has No Limits, Bob Buzzard blog, Andy In The Cloud, Force365 – Cloud Architects, The Humble Salesforce Developer, et al.  I also started blogging myself on topics that I practice at work that I think might help others.  Recently, I have been working a lot with metadata api’s and so I probably reference Andy In The Cloud blog the most.  I have a lot of content from my recent experience that I would very much like to blog about when I can find the time.

Did you get any advice from other developers and if so what was the most helpful?

Yes, but it was a very weird situation.  I was managing (and leading) a remote team of very experience Salesforce developers (all in Bolivia) and then swapped roles with a technical lead (in Houston) that wanted to pursue management.  Most of my remote reports were now my peers and it was difficult at first to get advice from them.  Once the other developers saw that I was very serious about changing role – the certification helped – and they realized that I really did want to follow the technical path then they really helped me out.  Two of the Bolivians visited for two weeks.  During this time, they helped me to switch from Eclipse to MavensMate, work with Git and Stash (previously I only worked with Mercurial and other like versioning software), and – most of all – they really really challenged my code.  My years of being a professional developer came back to me very quickly during their visit which really motivated me. 

What are you doing now and how did everything you do prepare you for it?

After the Bolivians visited, we sprinted together for four three-week sprints developing a managed package.  It has been the best 12 weeks of my career by a long shot.  I am really looking forward to working with Salesforce over the long term to really master the platform.

If you had to do it all over again, what would you do differently in your transition approach?

Nope, I would not change a thing about the transition approach.  I use to go to work every day as a manager.  Now, I go to work every day to play with my favorite hobby.  I look at every work day like I would a fun vacation day on the slopes in Telluride or on the beaches in Maui.  I truly love my job and more than that – I love knowing what I am going to be doing for the rest of my career.  There is a clear difference between management and developer.  I liked management but development has always been what I truly love to do.  If I could do parts of my career over again, then I probably would not have gone into management.  With that said, I am a better developer now for it.

Anything else you want to add that you think would be helpful to developers transitioning?

If you already program in Java or C# then the transition will be very easy for you.  If you are a front end developer then your experience would likely be extremely valuable to a Salesforce development team.  And to all other developers (and even managers), you can be a Salesforce developer too by leveraging the great Salesforce training course, Salesforce resources, Success forums, blogs, and the many many people (like Sara) that have already transitioned and really want to help you.  I also very much would like to help anyone that wants to make this transition too.

HUGE Backlog for Registration of the Advanced Developer Programming Assignment

AdvancedDevCertBad news for anyone pursuing the Advanced Developer Certification. There is such a huge backlog, that I was just informed that I will not be able to register for the June, 2014 programming assignment as I had been expecting. Because of the backlog, I will now not be able to register until September, 2014. That sucks and I wanted to share this with you all.

According to Salesforce the following schedule now applies:

  • Candidates who completed the multiple-choice exam prior to December 1, 2013 and have not yet attempted the programming assignment and essay exam will be invited to participate in June, 2014.
  •  Candidates who completed the multiple-choice exam prior to April 1, 2014 and have not yet attempted the programming assignment and essay exam will be invited to participate in September, 2014.
  • Candidates who completed the multiple-choice exam after April 1, 2014 and have not yet attempted the programming assignment and essay exam will be invited to participate in December, 2014.
  • Candidates who have previously attempted the programming assignment will be invited to register for the programming assignment and essay exam in December, 2014, or in earlier windows as capacity is available.

For anyone stressing out about getting through with their multiple choice exam, you might want to factor this news into your preparation.

Sorry to be the bearer of such bad news, but I guess this just goes to prove how valuable this certification is – Salesforce is overwhelmed by the number of people attempting it. Capacity is limited to only 200 people per round.

Finally Passed the Advanced Developer Multiple Choice Exam!!!

This is no April’s Fool joke. Yesterday, I finally passed the Salesforce Advanced Developer Multiple choice exam!!! It was my second attempt. The first attempt was 6 months ago, but I now know that I was not ready then, so it was a good thing that I did not pass.

Back then, I barely knew the material. I thought I knew it because I had memorized it, but that did not mean that I “understood it”. I am now happy to say that I “know” this stuff. I know it like I know the back of my hand. And, that is a VERY good thing, because I now wait to complete the next stage of the process…the dreaded programming assignment.

Unfortunately, I have to wait until the next limited registration period (which is not until June 2). But, I am confident that the skills I have acquired so far will not atrophy before then. If anything, they will just continue to improve.

So, how did I learn this stuff like the back of my hand? I did it by following EVERY suggestion on Forceprepare. I basically did all of the following:

  • Obviously, I memorized all the notes I have posted on this site (but that was just the beginning and was not enough by itself to pass)
  • I watched the entire re-broadcast of the 501 Dev Class (which I posted about here). I took additional notes from that and posted them to this site (still not enough to pass). UPDATE, sorry to say but Salesforce has since removed the re-broadcast links from the 501 class.
  • I watched all of the 8 training videos on Pluralsight (which I posted about here)
  • I watched at least a dozen or more videos from Dreamforce.
  • I read countless blog articles from experts like Jeff Douglas, Matt Lacey, Bob Buzzard, etc
  • I worked through all the code in Bob Buzzards latest book, The Visualforce Development Cookbook (which I reviewed here).
  • I worked through ALL the Workbooks on DeveloperForce (they have been updated recently and they are REALLY GOOD).
  • I read through the entire Developers Guide (and YES, I know it is LONG).
  • The MOST important thing: I played with all the code on my Developer org (which is now packed with best practice code examples).

When I took the test yesterday, it was so easy to me. I could see through all the tricks they had put in. It seemed really obvious to me (which I think will make the programming assignment phase a breeze). Bring it on, I say. I just wish I could do it sooner.

Motivation and Tips for Passing the Force.com Advanced Developer Certification

AdvancedDeveloperCertVideoIf you are currently pursuing or even just thinking about pursuing the Force.com Advanced Developer Certification, I strongly suggest you check out this video. It is a recording of a panel discussion held at the most recent Dreamforce (late 2013), in which 3 people (seen in the image on the left) who have recently passed the Advanced Developer Certification shared their personal stories.

All three of the speakers had very different backgrounds and experiences in which to share. They each explained why they chose to pursue the certification, as well as specifics about how they studied for the exam and prepared for the coding assignment.

I found the third speaker, Barry Hughes, tips to be particularly helpful, which included some of the following:

  • Prepare for the essay exam by keeping notes and commenting your code as you complete the programming assignment.
  • When doing the programming assignment, focus on the functionality and not the visuals or the security
  • Make sure when you do your unit tests, that they include tests for positive, negative, bulk and specific profile scenarios.
  • Schedule the essay exam when you have the development for the programming assignment nearly finished. You do not have to wait until after you submit it.
  • When taking the actual essay exam, DO NOT try to copy and paste answers from one section to another. If you do, the testing software will deliberately erase what you typed and you will have to re-type it all (or madly find a proctor to get it back, as Barry ended up doing).

All of the panelists seemed to agree on the following advice:

  • Practice as much as possible by going through all of the workbooks available to you on DeveloperForce.
  • Take as much time as you can for the programming assignment and start as soon as you receive it. You will only have 4 weeks to complete. It took the panelists an average of 40 – 80 hours to complete the programming assignment and all had to do it in addition to their regular jobs.
  • Focus heavily on creating good test code for your programming assignment.

If you have not already run across this document about the Road to Advanced Developer Certification, I strongly suggest you read it too.

Training Review: Force.com Training on Pluralsight.com

Anyone that reads my blog knows that I am big fan (and regular subscriber) of the Pluralsight training videos. I cannot imagine staying up to date as a programmer without them. At this time, there are only a limited number of courses that cover the Force.com platform (8 to be exact), but I expect new titles will be added very soon. logo-v4

I really think that viewing these courses can be beneficial to anyone studying for the basic or advanced developer certification, or just people working with the Salesforce.com platform in general. These courses can also be valuable to developers (of any platform) that want to determine whether learning more about the Force.com platform is beneficial to them.

Pluralsight offers a free trial that allows you to view 10 days and up to 200 minutes of training. That would allow you to view for free at least one, but maybe two of the courses I describe in this post. Below, I will summarize which courses you should view, depending on where you are coming from and what you are trying to achieve.

First of all, if you only have time to watch one of these courses, I would watch this one:

Force.com Platform: The Big Picture by Don Robins – This is a high-level course that would be very useful for someone brand new to the platform. It is short (1 hours and 24 minutes) and would also be of great interest to experienced developers that have not worked with the platform for long. Robins includes a lot of history about Salesforce and does an excellent job of describing the “Perspective Shift” that is necessary for developers that want to be successful on the platform.

If you are studying for the First-Level Salesforce Developer Exam, I recommend viewing the following course:

Force.com For Developers by Richard Seroter – This is the longest course in the series (5 hours and 47 minutes), but it is also the most thorough. It provides a good overview of the entire platform in a very clear and easy to understand way. Seroter covers many topics that are covered on the 401 Dev exams, such as Reports, Workflows and Approval Processes. He also covers topics on the 501 Advanced Developer Exams, so this course would be good for people studying for that exam as well.

If you are studying for the Second-Level Salesforce Advanced Developer Exam, I recommend viewing the following courses:

Force.com Design Patterns – Part 1 by Adam Purkiss – This course is definitely not for beginners or anyone new to the platform. Purkiss talks about advanced topics such as the use of wrapper classes to get around some of the inherent limitations of SOQL. Some of the code walk-throughs were unpolished and appeared to have not been practiced in advance, but the beginning of each section was very good. My favorite section was the one on Trigger Design Patterns.

Force.com Design Patterns – Part 2 by Adam Purkiss – This course has three distinct segments and I can see the first two (Test Design Patterns and VisualForce Architecture) being especially valuable to anyone pursuing the Advanced Developer Certification. I actually enjoyed this course more than the preceding Part 1, because the examples were more general and the author did not have to waste a lot of time describing how the sample application worked. Purkiss includes many best practices that if you follow will ensure that your code stands the test of time. I really enjoyed the section on how to use Knockout.js to do JavaScript Remoting to create an HTML page that saved custom settings directly to Apex.

Introduction to Visualforce by Matt Lacey – This was my least favorite course, mostly because the speaker had a heavy accent that was hard to understand. He also rushed through the content and the general audio quality of the video was bad. However, the course did provide useful content that would be relevant to anyone studying for the Advanced Developer exam.

If you are an Experienced Software Developer that wants to understand more about the Force.com platform, I recommend viewing the following courses:

Force.com for .NET Developers by Dan Appleman – This course does a very good job of describing the Force.com fundamentals in way that makes sense to .NET developers specifically. Appleman is an experienced author who spent many years creating content for the .NET community, but a few years ago he switched (almost primarily) to working with the Force.com platform. Like myself, Appleman does not dismiss the .NET platform and certainly sees it as still viable, but he also can see the alluring reasons to understand the Force.com platform as well.

Force.com and Apex Fundamentals for Developers by Dan Appleman – Unlike the last course that was specifically designed for .NET developers, this course was designed for developers coming from any platform. It is not a course for people new to programming, but attempts to give experienced software developers a head start to writing “GOOD” code on the Force.com platform. Appleman will tell you about best practices and describe real-world scenarios that only come from hard-earned experience. Most importantly, he covers why design patterns used in other languages do not always apply in Force.com. He focuses on the 4 most important concepts (Execution Context, Use of Static Variables, Limits and Bulk Patterns) that you need to know to start working safely and efficiently in Force.com.

Patterns of Cloud Integration by Richard Seroter – This is NOT a course specifically about Force.com and instead focuses on many technologies that can be used to accomplish integration with cloud applications (on any platform, Force.com included). This course would be of great interest to any technical architects that need to understand to complexities involved with integrating cloud-based applications. Seroter is no doubt an expert in this field and he covers a variety of tools and platforms (such as Biz Talk Server, Windows Azure Service Bus, Mule Cloud Hub and custom code using .NET, node.js, Java, etc) used to integrate Ground to Cloud, Cloud to Cloud, or Cloud to Ground scenarios.

Setting Tab Order – Use TabOrderHint instead of TabIndex

In the last few days, I have been preparing for the Advanced Developer Certification by going page by page through the recommended Salesforce Developers Guide. I was shocked when I received an error trying to save a sample page using the code supplied in the online guide (page 39). The sample page involved setting the tab order for fields in a form and the code referenced an attribute named TabIndex. When I attempted to save the sample page, I got the following error:

Unsupported attribute tabIndex in <apex:inputField> in myPage at line 5 column 56

In my experience so far, Salesforce has been excellent about keeping their docs up to date, but I am afraid this one may have slipped through the cracks. After doing a search through some forums, I discovered that the tabIndex attribute was replaced with a new attribute named tabOrderHInt in Winter 12. So, any code created since then (which is about a year at this point), will not work using the code example supplied in their online Developers Guide.

Updated Podcasts of Apex Training

UPDATE: According to Chris Barry , the instructor in these pod casts, Salesforce has removed them because they are now focusing on new/better low cost training. As soon as I learn more about what that is, I will post about it here.

For anyone studying for the Salesforce Advanced Developer Certification, I strongly suggest you check out the following recently refreshed series of Podcasts posted on ITunes. They are recorded sessions of a fairly recent (from the Spring 2013 time frame) class given by Chris Barry at Salesforce.

There are some differences between the online premier training and the in-class training, but for the most part, you could follow the notes posted on this blog as you watch the Podcasts. Just keep mind that the episode about the Developer Console is very out of date, since the Developer Console has changed dramatically in the Summer release.

On Being a Certified Salesforce Developer

sf_cert_dev_rgbAfter six very intense weeks of study, I finally cemented my status as a Certified Salesforce Developer on March 9, 2013. As a former Microsoft MCSD, MCDBA and MVP, let me just say that Salesforce sure ain’t giving these things away. The test was VERY tricky and reminded me of the certification tests for Microsoft SQL Server (those were not easy either).

The funny part is that if you look at the official logo on the left, one might be led to think that the large slash through Software would indicate this stuff is a piece of cake. That is not exactly the case.

While I will admit that Salesforce has removed many of the complexities associated with software development, such as setting up and maintaining development and database servers, it has not totally done away with software (as their logo might suggest). What they have done is expose to small and mid-level businesses the potential of using some very highly functioning and scalable business applications through their affordable and subscription-based cloud-based platform.

As a software developer with twenty-years of experience building enterprise-level business applications for a variety of industries, adding the expertise of cloud-based development using the Force.com platform was a no-brainer. I simply cannot lose with this certification. The demand for highly-trained cloud-based developers is sky rocketing and I intend to strap myself to the top of that rocket.

In the next few weeks, I will continue my education as I prepare for the Salesforce Advanced Developer Certification. This distinction will be even harder to get, as I need to not only pass a grueling test, but I also need to complete a programming assignment and then defend my programming choices in a proctored essay exam. I feel like at the end of this I will have earned a Salesforce PhD.

I am using the excellent Premier Training available from Salesforce to do most of my training. In the coming weeks, I will be posting notes from the online training in hopes that it benefits anyone else out there trying for this certification. There cannot possibly be too many of us. The better trained other developers are in this field, the easier it is for me to work with them. It is also better for me, because they will be producing good solutions that highlight the platforms enormous potential and create opportunities for EVERYONE!

Please share with me your thoughts about cloud-based development and specifically the Force.com platform. I would love to hear from you.