Thank You Salesforce…

no-limits-road-sign-260nw-72594046So this was my last week at Salesforce. For over a year, I had a blast working with some of the most talented writers and editors on the Trailhead team. We did some incredible things and it was a bit like riding on the top of a rocket ship. I’m super proud of all that I accomplished during my time with the team, but it’s time to move on.

What’s Next?

It is time for me to take a step back and return to the things that I really love the most- teaching people about technology and doing development work. I am already in talks with the fabulous people at Pluralsight about doing some new courses. I am also talking with other people about development work.

For the time being, I am just going to function as a freelance developer and author. I may consider accepting a full-time role in the future if it is just the right fit. But, for now I am super excited to be able to return to course development work. As much as I liked and appreciated the great writing on Trailhead, I really miss doing videos. I think they add so much more to the learning process. I am super excited about all the new interactive capabilities that Pluralsight now has and can’t wait to learn all about it.

Oh, and if you know of any good development opportunities, feel free to give me a shout. I would love to hear about it.

As my blog and twitter handler indicate, I have NO LIMITS, so anything and everything is possible right now. It’s a VERY exciting time for me.

Onward and Upward.

Does someone mentioning Artificial Intelligence make your pulse race?

It’s ok if it does. Most people – even the ones that “know” a thing or two about artificial intelligence are a bit nervous about it right now. Not only is there a lot of uncertainty, but there is just an over abundance of information out there. And not all of it is accurate.

So, if the subject makes your head spin and you would like to know the answer to these questions:

“What exactly is Artificial Intelligence?”

“Why is it such a big deal now?”

“How will it make my life better?”

“Where can I learn more about it?”

Come check out one of my two Dreamforce sessions titled, “How to Embrace Artificial Intelligence”

Wednesday, September 26th at 5:30 pm


Thursday, September 27th at 1:00 pm

Screen Shot 2018-08-29 at 5.57.08 PM.png




Come Check out Managing Application State with SPA’s at TDX18

I am very honored to be participating as a panelist asking questions about Managing Application State with SPA’s. The session will be on Thursday, March 29, 2018 from 1-3:00 pm and is titled, “The Extracurricular: “Why Did That Do That?” Managing Application State w/ SPAs”.

It is a really cool format and one I think will be very fun and interactive (with lots of audience participation), so if you have any interest in this topic, I highly encourage you to attend. The main speaker is the incredible Matt Lacey and he will be talking about the challenges he has faced building a Visualforce application that used VF Remoting and React + Redux to manage application state.

The best part of this is it is not just your typical session in which the speaker just tells you a bunch of stuff and shows a bunch of boring slides. Not, this one is special. It will involve Matt briefly telling and showing us his app and then the rest of the time will be a very interactive discussion about managing application state that will involve not only the panelists and myself, but you the audience member as well. How super cool is that?

Ok, so if you are going to TDX18 and have some time on Thursday, please stop by.

And also be sure to check out Camp Quick Start  (that is where I will be most of the time), as well as the new and incredibly fun Robotics Ridge.

See you there…

Goodbye IDE Beta…Hello Visual Studio Code

Back in 2016, I wrote a post here about how the IDE was making an epic comeback, with support for Lightning.  At the time I was very excited to see that Salesforce was refocusing it’s efforts towards improving that tool in the form of a Beta. Even though the IDE was the original tool that Salesforce offered and it had a long history with the development community, it had failed to keep up with the bevy of tools now being offered by third-parties.

Fast forward to today and the recent announcement by Salesforce that the IDE Beta has been officially discontinued.

So where does that leave Salesforce developers?

Well, not as bad as you might think. Salesforce is not giving up on supporting a local IDE. Nor are they giving up on the original version of the IDE (at least not just yet). So far, only the new Beta will be discontinued.

It is just that they are focusing their efforts towards improvement of the Salesforce Extensions for Visual Studio (VS) Code. It just made no sense to support two tools and after analyzing feedback from the Beta of the IDE, the team had to make a clear choice and Salesforce Extensions for VS Code came up the winner.

I personally prefer Visual Studio Code and there is no question that it is easier to install than Eclipse (which was always a bit of a nightmare imho with all the required Java installs it required). I also like how intuitive it is and that I can use it to do all sorts of other modern development. If there is a popular modern language out there, you can safely bet that VS Code supports it.

If you have not had a chance to check it out yet, I highly suggest you do so and just remember to keep an open mind.

Also, be aware that Salesforce Extensions for VS Code does not yet support everything that the IDE does. Like I said earlier, the original IDE is not going away, just the newer Beta version which included support for Salesforce DX and Lightning. It is going to take some time for the development team to get all the features that the IDE offers into Salesforce Extensions for VS Code.

But keep in mind, that VS Code is where they are headed, so if you have not yet checked out Visual Studio Code, now is the perfect time to do so. I think you will be pleasantly surprised and impressed with it.

And let me know what you think…

New Dream Job at Salesforce

THLogoI have very exciting news to share. The first day of Dreamforce will also be my first day as a member of the Trailhead team. I have accepted a job as a Technical Curriculum Engineer.

Doesn’t that just sound cool?

And the best part is that I will be working for the legendary, Jeff Douglas!!! Yep, that guy. The one and only. I bet you are way jealous now.

The thing that I love so much about Trailhead is the quality of the content they produce. I truly believe they are leading the way in terms of how to produce effective technical instructional material and I am just thrilled to be a part of it.

The thing I am most passionate about in life is the process of taking something that is very complex and difficult and presenting it in a way that is easily understandable to almost anyone. It is kind of like the ultimate crossword puzzle (and yes, I happen to love crossword puzzles).

As far as this blog and my courses at Pluralsight, we will have to see how that goes. I still have my latest course about Lightning Best Practices coming out soon (since I am almost finished with it). But after that is published, I may take a break for a while so I can really focus on my new and exciting job.

Cheers everyone,



Lightning is to Visualforce what .NET was to Visual Basic

When I began my programming career, Visual Basic (version 3.0) was just emerging as a popular alternative for creating Windows-based applications. Ironically, it was a component-based approach to development that brought forth an army of programmers developing third-party components. Programmers could quickly spin up applications by simply dragging and dropping components onto a form design surface and then wiring everything together with events.

Visual Basic grew in popularity and for a few wonderful years, it was the hot new kid on the block. It brought about a sort of programming renaissance and lowered the barrier to entry for many up and coming developers.

Of course, the reign of Visual Basic was not meant to last. No programming language (or platform for that matter) stays golden forever. In 2002, Microsoft launched the object-oriented successor to Visual Basic called VB.NET. I can remember being so excited when it was released and I dove head first into learning all about the new Framework.

I have a confession to make. In all my excitement over the introduction of the .NET Framework, I hurriedly convinced one of my clients to let me rewrite one of his VB applications using VB.NET. Unfortunately, I made a mistake that many developers at that time did. I assumed that rewriting an application like this would be a simple conversion process. That I would just go in and simply swap one set of code for another and magically everything would work wonderfully.

That did not happen. In fact, the application I rewrote started to fall down in production almost immediately. It experienced huge performance problems. In short, it was a disaster. I had actually taken something that was working quite well and turned it into soup.

The problem was that VB and VB.NET were so fundamentally different. Design patterns that worked well in VB, failed miserably in VB.NET.

What I should have done was to start slowly.  Rather than try to convert an existing VB application to using the new .NET Framework, I should have looked at what I needed to do to make the .NET application perform well from the very beginning. I should have learned about best practices and really understood how different the new object-oriented approach to application design would be.

Eventually, I did do all those things, and also switched to using C# (which is much better imho), but only after I messed up my poor clients original VB application. Live and learn, I say. No one is perfect and we all make mistakes. The trick is to learn from them.

I feel like I have learned from mine. But the funny thing is that I can see a familiar pattern emerging now in the world of Salesforce development. I can see how the introduction of the Lightning framework will bring about some of the same challenges for Salesforce developers transitioning from Visualforce as there was for Microsoft developers transitioning from VB to .NET.


Some VB developers transitioning to .NET were never able to make the transition successfully and their careers suffered as a result. I imagine this might happen in the Salesforce world too and there will be Visualforce developers that stay Visualforce developers.

Of course, Visualforce is not going away anytime soon. But, anyone that believes it will not go away eventually is just kidding themselves. Salesforce is firmly committed to Lightning and it is no doubt the future of Salesforce development.

So, what should you do if you are a Salesforce developer that knows a lot about Visualforce?

You should embrace the new Lightning development framework and seek to understand how it differs from traditional Visualforce development. It really is like comparing apples and oranges. Begin by checking out this excellent Trail called Applying Visualforce Skills to Lightning. It helps to warn you about some of potential pitfalls you may encounter.

Just like with VB and .NET, design patterns that worked well in Visualforce, will fail in the world of Lightning. You could easily make an application perform worse if you just attempt to swap one set of code for another.

And so this is a good time for me to tell you about a new course I just started to design for Pluralsight. It will be titled Lightning Component Development Best Practices and I hope to release it before the end of the year.

In the meantime, you can also check out my latest course on Pluralsight titled,  Customizing Salesforce with Lightning Components. I have an entire module dedicated to Working with Lightning Data Service and using Base Lightning Components, which are definitely best practices Lightning developers should be using now.

And stay tuned because I will be covering many best practice topics (such as this one about Conditional Rendering in Lightning) on this blog in the months to come.


Trailhead + Pluralsight = Successful Salesforce Developer


When I discovered Salesforce in 2011, the best way to learn all about it was to go through the Workbook, which has now been retired. I want to say the workbook was over 400 pages long and even though it did contain a ton of useful information, it was a bit dry and hard to read.

Fast forward to today and the old retired workbook has been replaced by a much improved source of information in the form of Trailhead. Trailhead uses the phrase, “The fun way to learn Salesforce” and they sure aren’t exaggerating.

Since it began in late 2014, Trailhead has grown quite a bit and just recently got it’s biggest update, which you can learn about here. If you are a developer that is interested in learning more about Salesforce, this is the way to go. Not only is the content free, but it is top quality. It is a GREAT, and as they say “fun” way to get introduced to any Salesforce related topic.

If you are interested in learning about Lightning (and who doesn’t want to learn more about Lightning?), and you are new to Lightning, check out:

And if you are already comfortable with the basics of Lightning and looking for something a little more challenging, then check out the following brand new modules:

But don’t stop with Trailhead. If you are really interested in becoming a Salesforce Ninja and earning a 6 figure income, then you need a subscription to Pluralsight too. I know developers tend to shy away from paying for anything, but the low cost of a Pluralsight subscription is more than worth it. And after all, if you are earning a 6 figure income, the low cost of a monthly subscription is nothing really.

The quality of the content on Pluralsight is unmatched by none. I know this because before I became a Pluralsight author, I produced courses/books for other vendors and none of them come close to Pluralsight. No one does more to ensure their authors will be successful and produce unique, quality content like Pluralsight. Period!!!

Also, as great as Trailhead is, it usually is only a starting point. It tells you the most important things you need to know, but tends to skip over a lot of the details. This is part of what makes it fun, but sometimes the details are good to know. Especially if you want to become a Salesforce Ninja, like I know you do. Well that is where the Pluralsight courses will come into play.

I know my two courses on Lightning, which you can find here, are loaded full of details that you will find no where else. The kind of details you get from blood, sweat and tears. From banging your head on the desk for hours before you finally figured out how something worked (NOTE: While I have not literally hit my head on the desk, I have certainly considered it enough).

And besides my two glorious Lightning courses, there are a bunch more about Salesforce (with more coming out everyday). In particular, I recommend:

AI for Everyone? Kind of

Recently, Salesforce started a campaign concerning their latest product offering, Einstein. This einsteinplane1campaign promises, “AI for Everyone”.

That is quite a claim and Salesforce is certainly not the first to make it. As a self-proclaimed AI Enthusiast/junkie, I can say that I have seen this type of claim before. However, this is the first time that I think it might actually be somewhat possible. At least as far as a specific area of AI known as deep learning is concerned. And, also if were talking about relating this just to Salesforce in particular.

So, does this mean that soon everyone will have personal robot butlers?

Absolutely not. We are not even beginning to talk about robotics here. Nor some other areas that fall under the rather large AI umbrella.

So what can Salesforce customers do with Einstein?

Well that will certainly change as the product evolves, but right now the most relevant thing you can do with it is to utilize the Predictive Vision Service (PVS). This can be used to classify images into categories using supervised learning and very specifically optimized machine learning algorithms. These algorithms were developed by a company called MetaMind, which was last year aquired by Salesforce and since then they have been working feverishly to offer their services on the platform.

If you are interested in learning more about how this works, check out the docs here or this recently released webinar, which does a very good job of laying out what is currently possible with the PVS.

Note that currently Salesforce is not offering a service that does Natural Language Processing (NLP).  But, I am sure that will be the next big thing Salesforce customers will be demanding. NLP is a huge field and one that has been around for many years, but with varying levels of success.  The most difficult challenge I suspect will come from the fact that the product will need to support several languages beyond English to be considered useful. It will also need to be able to handle untrained users with a high degree of accuracy, which is a very tall order to fill.

It appears to me that the majority of Einstein’s capabilities will be “Baked in” to many of Salesforce’s products and their use should be seamless to users. They will also be very specific to Salesforce CRM.

The most important thing to understand is that Einstein is NOT a general purpose AI engine. As enthusiastic as the Salesforce Marketing team obviously is, Salesforce has not reinvented the wheel and certainly not developed some new and unheard form of AI that will corner the market.

BUT, they have started to offer some very useful API’s that can be used to implement specific areas of AI that were once only accessible to the elite of AI researchers.

And the most promising news was just announced this month when a group from Salesforce Research created a neural network named the Dynamic Coattention Network and that model was the first to break the 80% mark when tested against the Stanford Question Answering Dataset. And for those of you that just said to yourselves, “and why should I care about that?”.

Well, ever since Stanford released their dataset, which now consists of questions posed by crowdworkers on a set of Wikipedia articles, lots of top AI researchers (including Microsoft, Google and IBM) have been racing to create models that will reach this golden threshold, but Salesforce was the first to reach it. It’s kind of a big deal.

I look forward to the next few years and seeing all the new services that will be added to the platform, bringing about the Enhanced Computing world I always envisioned.

The Next Generation of Programmers, Listen Up!

Want to know what you need to know to be ahead of the curve in the world of Software Development?

Look no further than the following YouTube video, which was recorded during last years Dreamforce. It was a talk about “Modern Architectures: Above the Platform, Beyond the App” and it details all the things YOU (the next generation of programmer) needs to know to be successful in the new generation of app development.

Unfortunately, as of today, it has only been viewed 145 times and yet should have been PeterCoffeeSalesforceDotCom_sq300-269x200viewed 145 million times. In this video, Peter Coffee, the VP of Strategic Research at Salesforce is going to give you a message that you really need to hear.

I hope you take the time out of your day to hear his message. It is a VERY important one. Make sure you make it to the 26 minute mark when he says that, “We need to go further and provide an experience y recomposing what we used to call apps. We need to write code that intuits desire from behaviour, learns history and applies it predictively…”




Is There Really No Work-life Balance for Software Developers?

balanceI was reading this interview with the CEO of Microsoft, Satya Nadella and one thing he said really stood out to me. When asked what advice he would have for readers struggling with work-life balance, he responded with, “There’s no such thing as balance.”


Well, if you are the CEO of Microsoft, I suppose there might not be, but I do not think that is true for all people in this field. I personally think it just depends on what your real priorities are and whether you are willing to sacrifice for them.

For myself personally, I think I have a wonderful work-life balance. While I do not earn a six-figure income and I do not have a fancy job title or an MBA, I do consider myself extremely successful. My priorities are not about how much I earn or what title or degree I hold, but how much of an impact I have on “my world”, the only world that really matters to me.

And what is my world, you might be asking?

Well, it is me and my immediate family, and my community.

Eleven years ago I left the trappings of Corporate America and became independent. While I have had my ups and downs, I would not trade this life for anything. It has brought be more peace and success than anything I have ever done in my life.

It allows me to work remotely from home and therefore be here everyday when my kids leave for school and when they return. We eat a home cooked meal every night as a family and most days of the week, I take time to go for a run in the woods, as well as take quiet time each day to meditate and pray.

Now one thing Mr. Nadella said that I do agree with is, “And I think about time spent, then my work had better be something that’s nourishing to my soul and my personal philosophy, and so on.”


And I think being independent allows me to do this more than ever. My day to day tasks are not dictated by corporate philosophy, but by my own personal choices. I engage in the jobs that are of the most interest to me.

Currently, I am completing my first course for Pluralsight about developing with Lightning. It has been tremendously fun for me to put together this course and know that it will likely have a positive impact on someone. I am very proud of it and look forward to it’s release, which I will tell you more about soon.

So, while Mr. Nadella has certainly made an impact on Microsoft. I wonder what impact he really had on his kids considering his statement, “Because if we look at it, I would have spent more time at Microsoft than living together with my kids.”


What a shame. Just glad I don’t have to say the same.