Best Practices for Developers


Have you ever being involved in a project where you had to develop a script and suddenly you lose track of how many versions you have? Or how about a time when you were almost finished with your project and suddenly your computer died and your changes were not saved? Well, in this article we will be discussing a few best practices for developers that will help you solve some of these problems. My name is Ricardo A. Chavez, and I am currently a Senior Software Engineer here at SFCG and have been for about 4 years. During this time I have come to learn some coding tricks that will help any developer make their code and scripts easier to understand. My learning experience also involved some best practices that any developer should follow in order to make their work experience the best one. Below I will share three best practices that I follow every time I am developing a new application for any of our clients.  


  • Use a Good Developer Tool

Your biggest weapon when developing a script or project is to use a good developer tool. They are software specifically designed to help developers write code in different languages. There are some built specifically for a single programming language like C#, but most of them are multi-purpose, being able to process several languages like PHP, HTML, Javascript, etc. I have found out throughout my years as a developer that the best and easiest tool to understand and use is NetBeans. It allows for easy and efficient project management, highlights places where there might be bugs or errors, and allows you to write applications in several programming languages. If there is a tool you were looking for, this is the one!


  • Always Save Your Code

You would not believe how many times I have been writing code on my laptop when suddenly something might make it crash or shut down. At this point the whole project will be lost and the need to start from scratch will arise. A good practice is to always save your code whenever you finish a small piece of logic. This could be a function, a loop, or just some comments about what your logic will do. A good practice is to also save a “master version” of your code that will be used in case you might need to revert to a previous version.


  • Backup Your Project

This is the big one. Let’s say that you are working on your project, you finished it, you tested it, and everything works great so you push it to production and everything is right. Then suddenly the server where your code is hosted might crash and all your hard work is deleted without you being able to recover it. It is then that you realize your code was not backed up and there is no way for you to get it back. A good practice is to also save your code locally, however what would happen if your laptop/computer suddenly crashed and you have to delete your hard drive and install a new one? This is where websites such as BitBucket come in handy. This is a site where you can create repositories, upload your different script versions, download and copy previous projects and best of all, all of your stuff will be private meaning that only you will have access to your projects. Having a website where you can back up all your scripts is a good way of preventing situations as the example described at the beginning.


  • Communicate

This is habitually something that developers have trouble with. Most of the time, developers will let someone know when they start a project and once it is done. That is only two times that they communicated with someone, however this is one of the most important practices that need to be used. Clients are usually happy when they are given progress reports of the app they requested, and at the same time, your team members' work will be easier to manage if they know at what stage of development you are. A good practice is to communicate with your clients at least twice a week and let them know what the status of their app is while  also communicating with your team members about any potential roadblocks, updates, progress, etc, on a daily basis. This way you will be able to make sure expectations are set and everyone is on the same page to ensure a good project, 


These are only a few of the best practices recommended for developers, but they are the ones I apply every time I am building something for our clients. This way you will never lose track of how many versiosn you might have or worry about your code reverting to a previous version and you having to build it from scratch. Your clients can rest assured that their app will always be available and that they would have the latest and best version of it.

Introducing Events Module – Your Campaign Management Master in Eloqua


We all know that Oracle Eloqua's campaign canvas is an easy tool to manage a multi-step campaign, however, what if there is a series of events under the same topic?  Or, if you have recurring events happening at different times and different locations? Let’s take a break and think about that process using campaign canvas

Assuming we want to promote our new product in ten cities across the country, we would need to set up 10 campaigns in campaign canvas. Thinking about all of the assets, each one would then need a landing page, a form, and an average of 3-5 emails. If we have ten sessions (meaning ten campaigns), we would need 10 landing pages, 10 forms, and possibly 50 emails! Monitoring and/or manually updating the attendees once they interact with that campaign also takes time. Not to mention if there is limited access and you would like to set up a waiting list. Think about all of resources needed to make that happen.

As you can see, it can be a very effective process, but tedious at the same time.  

The Eloqua Events module is the perfect solution for those looking to get the same results with less effort. Let’s take a look:

First, navigate to Eloqua, Orchestration, Tools, Events. 


Click Events on the top left and open a new event registration:


Name the event and fill out the information. As you can see here, in the event module, we have four sections: Event Overview, Registrant Info, Event Details and Event Actions. Let’s look closely at each of them:

Event Overview

In this section, you can see the name and description of the event, view the number of registrants, and manually manage their status.  

Registrant Info

In this section, you link your Eloqua enrollment form and configure the field mapping between events and form.

Event Details

In this section, you will fill out all the information you need to show in your communication emails such as date, time, topic, and access code. All of the fields in this section can be field-merged in emails.

Event Action

In this section, you will need to configure which actions should be triggered under certain circumstances. For example, you can send out a reminder email for your event one day before the date it will be held. You can even manage a waiting list in this section should it be applicable.

Again, while campaign canvas is an amazing tool, the events module in Eloqua can make the planning of any event a breeze. If you are interested in learning more about the Events module, email We are more than happy to help you!

Speed and Visibility: Two Biggest Benefits From Using PandaDoc to Generate Proposals

, ,

Before the year 2000, almost all contracts were only considered binding with a physical signature.  This obviously caused delays in operations and left a lot to be desired from a customer experience standpoint since the only holdup was a piece of paper. Today, in the world of the internet and immediate access to things with the click of a button, we have sped up the way we conduct business with the electronic signature. But that still doesn’t come without a headache.  How many of you have put in hours perfecting a quote, searched for the right parties to send it to, finally get it in what you think are the right hands, only to be left in the dark about what happens once it’s sent?


Well, with PandaDoc, we have eliminated that feeling altogether.  There are really two big issues the application addresses, and those are problems with the time it takes to create and send a document, and the lack of visibility across yours and your prospective client’s organization into the proposal process.  I will dive into how this application will allow you to speed up that process on multiple fronts, and also give your company a look into what is happening with your document from creation to execution with signatures.


First, let’s talk about speed…

Here are the top 3 ways that PandaDoc has sped up the closing process in a sales cycle…

  1. Tokens Integrated from CRM ( Oracle Sales Cloud ) – The first way it speeds up the proposal generation process is by automatically pulling information from your CRM into the actual document with tokens, which are field merges that leverage the integration between the two applications to have information such as Company Name, Address, Primary Contact Name, etc. already in your document upon creation. For information that is commonly placed in multiple locations, you can save time with these. (ex. [opportunity.CompanyName] )
  2. Templates / Content Library –  Another way PandaDoc decreases the amount of time spent on a proposal is by allowing you to create templates that you can reuse time and time again should you have boilerplate information that is standard with each proposal. Also, a tab called the ‘content library’ is a place you can store certain blocks of information to place into new documents should you need to reuse certain pieces of content, such as product SKUs and/or explanations of each product or service you are including. So instead of re-creating every proposal from scratch, you can save time by being able to reuse and edit prior documents at any time.
  3. Recipients –  The Recipients tab will let you decide what key stakeholders of the organization your are dealing with will receive notification through email with the proposal attached. Without having to create another email with an attachment, you can send the document directly through PandaDoc and have it signed electronically to send/receive it sooner than later, thus starting your relationship as fast as the two parties would like. Also inside this tab, there is an option to allow the organization you send your proposal to be able to forward the document should that be a need. So instead of crafting another email to another person within that company, they can forward it to the right person without you pressing another button.

The other major benefit is the increased visibility into each proposal.

Here are 3 ways to increase the visibility into the proposal process…

  1. Anyone with a sign-in or access to the document can view and write comments. This can be a manager or another contributor within your organization if there needs to be adjustments before it is sent out to the prospect. Or if there is any note you want to send the prospect yourself, it will also be visible so a dialogue about the terms and conditions and/or pricing could be hashed out through comments instead of back and forth redlining a document sent through email multiple times.
  2. The Analytics tab is another way to increase visibility. Once the proposal is sent out to your prospective client, all actions taken against this document such as viewing, signing, and forwarding is tracked. It even lets you see what pages were viewed and for how long each person was on any page. This will give you insight into what is most important to your customer while also arming you with what is most important to talk about in subsequent conversations.
  3. You have the ability to generate a “key” that allows others to view upon your authorization, so you can control who can and cannot see any document sent. If you are working with someone in an organization that doesn’t have signing authority, or even a channel partner that doesn’t have any direct action to take on your proposal, giving them a copy of the document is as easy as pressing a button. The key will also let you know any and everything they do with that document, thus giving you ultimate visibility into what happens with your proposal.


How much time and headache can these areas of improvement in the proposal generation save your team? It is not every day that you find something that fits your budget but also increases efficiency in something as tedious as generating a quote and getting it in the right hands at the the right time. Everyone could use more time and better information about what happens to their proposal once sent out.


For more information or to inquire about how easy it is to set up PandaDoc, please contact