Welcome to ElToro.IT!


My real name is Andres Perez, but in the Salesforce.com world I go by “El Toro” (which means "The Bull"). I was given this name by a very good friend of mine when I worked for Developer Support at Salesforce.com. It was not only because of my Spanish background, but also because I am very energetic, work hard and specially I’m very loud (which has served me well is great as an instructor).
Before I tell you how I built this site, I want to tell you a story that could be very motivational for some of you. 

The T-Shirt story

Back in 2008 I was unemployed and searching the job list at Monster.ca when “I saw a job posting that caught my attention” as I wrote in the cover letter, but this time I really, really, really meant it! The job posting was looking for a Developer Support Engineer whose responsibilities included:
  • Assist third-party developers to troubleshoot their integration with salesforce.com APIs and implementation of other salesforce.com developer products. This will involve debugging, troubleshooting, and taking responsibility to see that the issue is fully resolved.
  • Write sample code, client libraries, and contribute to Open Source projects.
As I continued reading the job posting, I could not believe it. They were looking for a person who likes the technical aspect of writing code, but also likes to help people! This was incredible, there was a job where I would get paid for doing the two things I love: Being a geek, and helping people.

But wait... Who is this “Sales-something.com” company? I’ve had never heard of them. What do they do?  I went to their website and started reading about something called “cloud computing” and how it was going to revolutionize the IT world. I immediately realized this new technology is definitely the future, and I kept reading and reading, taking notes and trying to understand all this.

By this time, I knew this was not just a cool job, but this was the only job I wanted. So the next logical question was “How do I get it?” This is when I found the “Force.com Sites Developer Challenge”; they wanted to see “how far [developers] can take the platform and the new Force.com Sites in particular. For each submission, we'll be giving away a t-shirt (while supplies last). We'll also be handing out iPod nanos and iPod touches for interesting applications that show innovation or creativity.”

What? Did they just say that each submission will get a free t-shirt? Wouldn’t it be cool, if I could go to the job interview wearing a Salesforce t-shirt and say “Look, I do not what you guys do and how you do it.. I still have a lot to learn, but I can do it! This t-shirt proves that I can learn.” It would definitely help me get the job... but first I had to build something in this “Force.com Sites” thing.

The website explained the rules of the challenge and few other details, along with some ideas on the sites that could be built. They suggested building a product catalog (I don’t have any products to sell), a blog engine (it sounded too complicated) or a survey application (I didn’t know what to ask) so I was out of ideas...

One day I got inspired and I found out the topic of the site I was going to build: A tool for job seekers to track the different jobs they are applying to, which resumes/cover letters they have sent and help them customize the cover letters they are sending, something HR loves to receive. Sure it would be cool, but there was a more important motivation for me, judges (Salesforce.com employees) would be looking at my resume and cover letter when they saw my entry for the challenge! 

So I started building it, but remember that I did not know anything about Salesforce.com few days before, when I found the job posting. So I started trying to find documentation, working on the workbooks, reading blogs, trying to make sense of many things... Few days later I had something I could submit and get my t-shirt!

Looking back at the site (which still runs) and especially at the code which is full of Governor Limits, I see many rookie mistakes I made. But I had a dream, getting a t-shirt for the job interview. The job that started my career in Salesforce.com where I currently work, enjoying every single day.

Why did I build this site?

When I was working in Developer Support, customer asked me tricky questions that required few days of investigation to come with a sample code. Sometimes these questions were repeated, so I decided to save them and I created a Word document called “My Brain.doc” which I kept on a network drive. When my colleagues in support asked me for those samples I would just tell them “it’s in my brain!” That worked great when I was in support and my friends could access the network drives, but when I moved to the training department and started teaching, I needed a way for my students to access my brain, I needed a Force.com Site to store those samples.

How was this site built?

I originally started with this website on a blogspot but I decided to move it to the Force.com Sites platform because I could have greater control as how I could write it and what features to put here.

Data Structure

There are three sObjects involved for this Site. Article__c contains the basic information about the article including the number of views, if the article is private or posted (I have some articles in draft mode that I am working on, and I do not want them to be posted yet), a checkbox indicating if it needs rewrite (I just pasted some code together, without explaining what the sample does) and couple more fields. The information for each article is stored in a separate Sobject called Article_Part__c where I store the content of the article in a simple text (code) or rich text format (paragraphs). When I render the article, I use the information on the Article_Part_Type__c to know how to render this specific part (header1, header2, header3, paragraph, Apex code, Visualforce code).

External Libraries

This Force.com site uses Visualforce and Apex, obviously, but I must also give credit to other very useful tools and libraries I used:

Thanks for visiting, and I hope this site helps you learn about this awesome technology from Salesforce.com