Posts Tagged 'Tips And Tricks'

February 5, 2016

Enable SSD caching on Bare Metal Server for 10X IOPS Improvements

Have you ever wondered how you could leverage the benefits of an SSD at the cost of cheap SATA hard drives?

SSDs provide extremely high IOPS for read and writes and are really tempting for creating volumes, which are IOPS centric. However, because SSD prices are significantly higher than SATA drives, IT managers are at a crossroad and must decide whether to go for SSDs and burn a fortune on them or stay with SATA drives.

But there is a way to use SATA drives and experience SSD performance using some intelligent caching techniques. If you have the right PCI RAID card installed on bare metal servers, you can leverage certain SSD caching feature benefits.

Make sure when configuring a bare metal server, which has sufficient drives bays (8+ the least), to have a LSI (AVAGO) MegaRAID card as the chosen RAID card. You can select the appropriate RAID configuration for OS and other workload data during the order process itself so that the RAIDs come preconfigured with them. As an additional resource for high speed cache device, consider ordering at least two or more SSDs. You can add this to your server even after deployment. These drives are the SSD caching drives that can be used to improve the overall performance of the cheap SATA drives from which one has carved out the volume. 

Install MSM for Easy Management of the RAID Card

Once the server is deployed, consider installing AVAGO MegaRAID Storage Manager (MSM) for the OS that has been installed in the server. (You can also perform a remote management of the RAID controller from a local machine by providing the IP of the server where the controller is installed).

Users can directly download MegaRAID Store Manager from the AVAGO website for the installed card in the machine. For the most popular MegaRAID SAS 9361-8i card download the MSM from the AVAGO website here.

How to Create CacheCade - SSD Caching Volumes and Attach to the Volume Drives

Follow these three steps to improve the IOPS on the existing Volumes on the bare metal server.

Step 1: Creating CacheCade Volumes

Once SSDs are deployed on bare metal servers and Regular Volumes are created, users can create a CacheCade volumes to perform SSD Caching. This can be easily achieved by right clicking AVAGO Controller and selecting the Create Cachecade – SSD Caching option.

Create Cachecade

Step 2: Choosing the right RAID Level and Write Policy for CacheCade Volumes

It is recommended to use a RAID 1 SSD Cache Cade Volume. This will eliminate a single point of failure at the SSD device level. This can be done by selecting available SSDs on the system and choosing RAID 1 as the RAID level. Click Add to add all available disks and Create Drive Group. Also, be sure to select Write Back as the Write Policy for increased IO performance for both Read and Writes to a Volume that needs to be cached. 

RAID Level and Write Policy for CacheCade Volumes

Step 3: Enabling SSD Caching For Volumes

If the Virtual Drives were created without SSD caching enabled, then this is the right time to enable them as shown below—selectively enable or disable set of Virtual drives which needs SSD caching.

Right click on the volume and select Enable SSD Caching.

Enable SSD Caching

Performance Comparison

We tried a simple comparison here on a 3.6TB RAID 50 (3 Drive with 2 Spans) volume with and without SSD caching using IOmeter tool (available here). The workload was a 50/50 (Read/Write) 4kb Pure Random IO workload subjected for about an hour on the volumes. 

Without SSD Caching – IOPS 970

Without SSD Caching IOPS 970

With SSD Caching – IOPS 9000 (10X Improvement)

With SSD Caching IOPS 9000 (10X Improvement)

The result shows a 10X IOPS and workload dependent benefit. Results also show how repeatable the Read/Writes are happening with the same LBA.

This could certainly help a database application or IO centric workloads, which are hungry for IOPS, get an instant boost in performance. Try this today at Softlayer, and see the difference!!



February 3, 2016

Use TShark to see what traffic is passing through your gateway

Many of SoftLayer’s solutions make excellent use of the Brocade vRouter (Vyatta) dedicated security appliance. It’s a true network gateway, router, and firewall for your servers in a SoftLayer data center. It’s also an invaluable trouble-shooting tool should you have a connectivity issue or just want to take a gander at your network traffic. Built into vRouter’s command line and available to you, is a full-fledged terminal-based Wireshark command line implementation—TShark.

TShark is fully implemented in vRouter. If you’re already familiar with using TShark, you know you can call it from the terminal in either configuration or operational mode.  You accomplish this by prefacing a command with sudo; making the full command sudo tshark – flags.

tshark graphic

For those of us less versed in the intricacies of Wireshark and its command line cousin, here are a couple of useful examples to help you out.

One common flag I use in nearly every capture is –i (and as a side note, for those coming from a Microsoft Windows background, the flags are case sensitive). -i is a specific interface on which to capture traffic and immediately helps to cut down on the amount of information unrelated to the problem at hand. If you don’t set this flag, the capture will default to “the first non-loopback address;” or in the case of vRouter on SoftLayer, Bond0. Additionally, if you want to trace a packet and reply, you can set –i any to watch or capture traffic through all the interfaces on the device.

The second flag that I nearly always use to define a capture filter is –f, which defines a filter to match traffic against. The only traffic that matches this pattern will be captured. The filter uses the standard Wireshark syntax. Again, if you’re familiar with Wireshark, you can go nuts; but here are a few of the common filters I frequently use to help you get started:

  • host will match any traffic to or from the specified host. In this case, the venerable Google DNS servers. 
  • net works just like host, but for the entire network specified, in case you don’t know the exact host address you are looking for.
  • dst and src are useful if you want to drill down to a specific flow or want to look at just the incoming or outgoing traffic. These filters are usually paired with a host or net to match against.
  • port lets you specify a port to capture traffic, like host and net. Used by itself, port will match both source and destination port. In the case of well-known services, you can also define the port by the common name, i.e., dns.  

One final cool trick with the –f filter is the and and the negation not. They let you combine search terms and specifically exclude traffic in order to create a very finely tuned capture for your needs.

If you want to capture to a file to share with a team or to plug into more advanced analysis tools on another system, the –w flag is your friend. Without -w, the file will behave like a tcpdump and the output will appear in your terminal session. If you want to load the file into Wireshark or another packet analyzer tool you should make sure to add the –F flag to specify the file format. Here is an example:

Vyatta# sudo tshark –i Bond0 –w testcap.pcap –F pcap –f ‘src and not port 80’

The command will capture on Bond0 and output the capture to a .pcap file called testcap.pcap in the root directory of the file system. It will match only traffic on bond0 from that is not source or destination port 22. While that is a bit of a mouthful to explain, it does capture a very well defined stream! 

Here is one more example:

Vyatta#sudo tshark –I any –f ‘host and not ssh’

This command will capture traffic to the terminal that is to or from the specified IP ( that is not SSH. I frequently use this filter, or one a lot like it, when I am SSHed into a host and want to get a more general idea of what it is doing on the network. I don’t care about ssh because I know the cause of that traffic (me!), but I want to know anything else that’s going to or from the host.

This is all very much the tip of the iceberg; you can find a lot more information at the TShark main page. Hopefully these tips help out next time you want to see just what traffic is passing through your gateway.

- Jeff 


January 27, 2016

Sales Primer for Non-Sales Startup Founders

The founder of one of the startups in our Global Entrepreneur Program reached out to me this week. He is ready to start selling his company’s product, but he's never done sales before.

Often, startups consist of a hacker and a hustler—where the tech person is the hacker and the non-tech person is the hustler. In the aforementioned company, there are three hackers. Despite the founder being deeply technical, he is the closest thing they have to a hustler. I'm sure he'll do fine getting in front of customers, but the fact remains that he's never done sales.

So where do you begin as a startup founder if you've never sold before?

Free vs. Paid
His business is B2B, focusing on car dealers. He's worried about facing a few problems, including working with business owners who don’t normally work with startups. He wants to give the product away for free to a few customers to get some momentum, but is worried that after giving it away, he won’t be able to convert them to paying customers.

Getting that first customer is incredibly important, but there needs to be a value exchange. Giving products away for free presents two challenges:

  1. By giving something away, you devalue your product in the eyes of the customer.
  2. The customer has no skin in the game—no incentive to use it or try to make it work.

Occasionally, founders have a very close relationship with a potential customer (e.g., a former manager or a trusted ex-colleague) where they can be assured the product will get used. In those cases, it might be appropriate to give it away, but only for a defined time.

The goal is sales. Paying customers reduce burn and show traction.

Price your product, go to market, and start conversations. Be willing to negotiate to get that first sale. If you do feel strongly about giving it away for free, put milestones and limitations in place for how and when that customer will convert to paid. For example, agree to a three-month free trial that becomes a paid fee in the fourth month. Or tie specific milestones to the payment, such as delivering new product features or achieving objectives for the client.

Build Credibility
When putting a new product in the market, especially one in an industry not enamored with startups and where phrases like “beta access” will net you funny looks, it helps to build credibility. This can be done incrementally. If you don't have customers, start with the conversations you’re having: “We’re currently in conversations with over a dozen companies.”

If you get asked about customers, don’t lie. Don’t even fudge it. I recommend being honest, and framing it by saying, “We’re deciding who we want to work with first. We want to find the right customer who is willing to work closely with us at the early stage. It’s the opportunity to have a deep impact on the future of the product. We're building this for you, after all.”

When you have interest and are in negotiations, you can then mention to other prospective customers that you’re in negotiations with several companies. Be respectful of the companies you’re in negotiations with; I wouldn't recommend mentioning names unless you have explicit permission to do so.

As you gain customers, get their permission to put them on your website. Get quotes from them about the product, and put those on your site and marketing materials. You can even put these in your sales contracts.

Following this method, you can build credibility in the market, show outside interest in your product, and maintain an ethical standing.

Get to No
A common phrase when I was first learning to sell was, “get to the ‘no’.” It has a double meaning: expect that someone is going to say “no” so be ready for it, and keep asking until you get a “no.” For example, if “Are you interested in my product?" gets you a “yes,” then ask, “Would you like to sign up today?”

When you get to no, the next step is to uncover why they said no. At this point, you’re not selling; you’re just trying to understand why the person you’re talking to is saying no. It could be they don't have the decision-making authority, they don't have the budget, they need to see more, or the product is missing something important. The point is, you don’t know, and your goal here is to get to the next step in their process. And you don’t know what that is unless you ask.

Interested in learning more? Dharmesh Shah, co-founder and CTO of Hubspot and creator of the community OnStartups, authored a post with 10 Ideas For Those Critical Early Startup Sales that is well worth reading.

As a founder, you’re the most passionate person about your business and therefore the most qualified to get out and sell. You don't have to be “salesy” to sell; you just need to get out and start conversations.


October 29, 2015

How to measure the performance of striped block storage volumes

To piggyback on the performance specifications of block and file storage offerings, SoftLayer provides a high degree of volume size and performance combinations for your storage needs. But what if your storage performance or size requirements are much more specific than what is currently offered?

In this post, I’ll show you to configure and validate a sample RAID 0 configuration with:

  1. The use of LVM on CentOS to create a RAID 0 array with 3 volumes
  2. The use of FIO to apply IO load to the array
  3. The ability to measure throughput of the array

Without going into potential drawbacks of RAID 0, we should be able to observe the benefits of up to three times the throughput and size of any single volume. For example, if we needed a volume with 60GB and 240IOPS, we should be able to stripe three 20GB volumes each at 4 IOPS/GB. You can also extrapolate the benefits from this example to fit a range of performance and reliability requirements.

To start, we will provision 3x 20GB Endurance volumes at 4 IOPS/GB and make it accessible to our CentOS VM but stop short of creating a file system; e.g., you should stop once you are able to list three volumes with:

# fdisk -l | grep /dev/mapper
Disk /dev/mapper/3600a09803830344f785d46426c37364a: 21.5 GB, 21474836480 bytes, 41943040 sectors
Disk /dev/mapper/3600a09803830344f785d46426c373648: 21.5 GB, 21474836480 bytes, 41943040 sectors
Disk /dev/mapper/3600a09803830344f785d46426c373649: 21.5 GB, 21474836480 bytes, 41943040 sectors

Then proceed to create the three-stripe volume with the following commands:

# pvcreate /dev/mapper/3600a09803830344f785d46426c37364a /dev/mapper/3600a09803830344f785d46426c373648 /dev/mapper/3600a09803830344f785d46426c373649
# vgcreate new_vol_group /dev/mapper/3600a09803830344f785d46426c37364a /dev/mapper/3600a09803830344f785d46426c373648 /dev/mapper/3600a09803830344f785d46426c373649
# lvcreate -i3 -I16 -l100%FREE -nstriped_logical_volume new_vol_group

This creates a logical volume with three stripes (-i) and stripe size (-I) of 16KB with a volume size (-l) of 60GB or 100 percent of the free space.

You can now create the file system on the new logical volume, create a mount point, and mount the volume:

# mkfs.ext3 /dev/new_vol_group/striped_logical_volume
# mkdir /mnt
# mount /dev/mapper/new_vol_group-striped_logical_volume /mnt

Now download, build, and run FIO:

# yum install -y gcc libaio-devel
# cd /tmp
# wget
# tar -xvf 3aa21b8c106cab742bf1f20d60629e3f
# cd fio-2.1.10/
# make
# make install
# cd /mnt
# fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=16k --iodepth=64 --size=1G --readwrite=randrw --rwmixread=50

This will execute the benchmark test at 16KB blocks (--bs), random sequence (--readwrite=randrw), at 50 percent read, and 50 percent write (rwmixread=50). This will run 64 threads (--iodepth=64) until the test file of 1GB (--size=1G) is size is completed.

Here is a snippet of output once completed:

read : io=51712KB, bw=1955.8KB/s, iops=122, runt= 26441msec
write: io=50688KB, bw=1917.3KB/s, iops=119, runt= 26441msec

This shows that throughput is rated at 122r + 119w = ~240 IOPS. To validate that it is what we expect, we provisioned 3x 20 GB x 4 IOPS/GB = 3 x 80 IOPS = 240 IOPS.

Here is a table showing how results would differ if we tuned the load with varying block sizes (--bs) :

As you can see from the results, you may not observe the expected 3x throughput (IOPS) in every case, so please be mindful of your logical volume configuration (stripe size) versus your load profile (--bs). Please refer to our FAQ for further details on other possible limits.


July 14, 2015

Preventative Maintenance and Backups

Has your cPanel server ever gone down only to not come back online because the disk failed?

At SoftLayer, data migration is in the hands of our customers. That means you must save your data and move it to a new server. Well, thanks to a lot of slow weekends, I’ve had time to write a bash script that automates the process for you. It’s been tested in a dev environment of my own working with the data center to simulate the dreaded DRS (data retention service) when a drive fails and in a live environment to see what new curveballs could happen. In this three-part series, we’ll discuss how to do server preventative maintenance to prevent a total disaster, how to restore your backed up data (if you have backups), and finally we’ll go over the script itself to fully automate a process to backup, move, and restore all of your cPanel data safely (if the prior two aren’t options for you).

Let’s start off with some preventative maintenance first and work on setting up backups in WHM itself.

First thing you’ll need to do is log into your WHM, and then go to Home >> Backup >> Backup Configuration. You will probably have an information box at the top that says “The legacy backups system is currently disabled;” that’s fine, let it stay disabled. The legacy backup system is going away soon anyway, and the newer system allows for more customization. If you haven’t clicked “Enable” under the Global Settings, now would be the time to do so, so that the rest of the page becomes visible. Now, you should be able to modify the rest of the backup configuration, so let’s start with the type.

In my personal opinion, compressed is the only way to go. Yes, it takes longer, but uses less disk space in the end. Uncompressed uses up too much space, but it’s faster. Incremental is also not a good choice, as it only allows for one backup and it does not allow for users to include additional destinations.

The next section is scheduling and retention, and, personally, I like my backups done daily with a five-day retention plan. Yes it does use up a bit more space, but it’s also the safest because you’ll have backups from literally the day prior in case something happens.

The next section, Files, is where you will pick the users you want to backup along with what type of data you want to include. I prefer to just leave the defaulted settings here in this section and only choose my users that I want to backup instead. It’s your server though, so you’re free to enable/disable the various options as you see fit. I would definitely leave the options for backing up system files checked though as it is highly recommended to keep that option checked.

The next section deals with databases, and again, this one’s up to you. Per Account is your bare minimum option and is still safe regardless. Entire MySQL directory will just blanket backup the entire MySQL directory instead. The last option encompasses the two prior options, which to me is a bit overkill as the Per Account Only option works well enough on its own.

Now let’s start the actual configuration of the backup service. From here, we’ll choose the backup directory as well as a few other options regarding the retention and additional destinations. The best practice here is to have a drive specifically for backups, and not just another partition or a folder, but a completely separate drive. Wherever you want the backups to reside, type that path in the box. I usually have a secondary drive mounted as /backup to put them in so the pre-filled option works fine for me. The option for mounting the drive as needed should be enabled if you have a separate mount point that is not always mounted. As for the additional destination part, that’s up to you if you want to make backups of your backups. This will allow you to keep backups of the backups offsite somewhere else just in case your server decides to divide by zero or some other random issue that causes everything to go down without being recoverable. Clicking the “Create New Destination” option will bring up a new section to fill in all the data relevant to what you chose.

Once you’ve done all of this, simply click “Save Configuration.” Now you’re done!

But let’s say you’re ready to make a full backup right now instead of waiting for it to automatically run. For this, we’ll need to log in to the server via SSH and run a certain command instead. Using whatever SSH tool you prefer, PuTTY for me, connect to your server using the root username and password that you used to log into WHM. From there, we will run one simple command to backup everything - “/usr/local/cpanel/bin/backup --force” ← This will force a full backup of every user that you selected earlier when you configured the backup in WHM.

That’s pretty much it as far as preventative maintenance and backups go. Next time, we’ll go into how to restore all this content to a new drive in case something happens like someone accidentally deleting a database or a file that they really need back.


April 27, 2015

Good Documentation: A How-to Guide

As part of my job in Development Support, I write internal technical documentation for employee use only. My department is also the last line of support before a developer is called in for customer support issues, so we manage a lot of the troubleshooting documentation. Some of the documentation I write and use is designed for internal use for my position, but some of it is troubleshooting documents for other job positions within the company. I have a few guidelines that I use to improve the quality of my documentation. These are by no means definitive, but they’re some helpful tips that I’ve picked up over the years.


I’m sure everyone has met the frustration of reading a long-winded sentence that should have been three separate sentences. Keeping your sentences as short as possible helps ensure that your advice won’t go in one ear and out the other. If you can write things in a simpler way, you should do so. The goal of your documentation is to make your readers smarter.

Avoid phrasing things in a confusing way. A good example of this is how you employ parentheses. Sometimes it is necessary to use them to convey important beneficial tidbits to your readers. If you write something with parentheses in it, and you can’t read it out loud without it sounding confusing, try to re-word it, or run it by someone else.

Good: It should have "limited connectivity" (the computer icon with the exclamation point) or "active" status (the green checkmark) and NOT "retired" (the red X).
Bad: It should have the icon “limited connectivity” (basically the computer icon with the exclamation point that appears in the list) (you can see the “limited connectivity” text if you hover over it) or “active” (the green checkmark) status and NOT the red “retired” X icon.

Ideally, you should use the same formatting for all of your documentation. At the very least, you should make your formatting consistent within your document. All of our transaction troubleshooting documentation at SoftLayer uses a standardized error formatting that is consistent and easy to read. Sometimes it might be necessary to break the convention if readability is improved. For example: Collapsible menus make it hard to search the entire page using ctrl+F, but very often, it makes things more difficult.

And finally, if people continually have a slew of questions, it’s probably time to revise your documentation and make it clearer. If it’s too complex, break it down into simpler terms. Add more examples to help clarify things so that it makes sense to your end reader.


Use bullet points or numbered lists when listing things instead of a paragraph block. I mention this because good formatting saves man-hours. There’s a difference between one person having to search a document for five minutes, versus 100 people having to search a document for five minutes each. That’s over eight man-hours lost. Bullet points are much faster to skim through when you are looking for something specific in the middle of a page somewhere. Avoid the “TL;DR” effect and don’t send your readers a wall of text.

Avoid superfluous information. If you have extra information beyond what is necessary, it can have an adverse effect on your readers. Your document may be the first your readers have read on your topic, so don’t overload them with too much information.

Don’t create duplicate information. If your documentation source is electronic, keep your documentation from repeating information, and just link to it in a central location. If you have the same information in five different places, you’ll have to update it in five different places if something changes.

Break up longer documents into smaller, logical sections. Organize your information first. Figure out headings and main points. If your page seems too long, try to break it down into smaller sections. For example, you might want to separate a troubleshooting section from the product information section. If your troubleshooting section grows too large, consider moving it to its own page.


Don’t make assumptions about what the users already know. If it wasn’t covered in your basic training when you were hired, consider adding it to the documentation. This is especially important when you are documenting things for your own job position. Don’t leave out important details just because you can remember them offhand. You’re doing yourself a favor as well. Six months from now, you may need to use your documentation and you may not remember those details.

Bad:SSH to the image server and delete the offending RGX folder.
Good:SSH to the image server (imageserver.mycompany.local), and run ls -al /dev/rgx_files/ | grep blah to find the offending RGX folder and then use rm -rf /dev/rgx_files/<folder> to delete it.

Make sure your documentation covers as much ground as possible. Cover every error and every possible scenario that you can think of. Collaborate with other people to identify any areas you may have missed.

Account for errors. Error messages often give very helpful information. The error might be as straightforward as “Error: You have entered an unsupported character: ‘$.’” Make sure to document the cause and fix for it in detail. If there are unsupported characters, it might be a good idea to provide a list of unsupported characters.

If something is confusing, provide a good example. It’s usually pretty easy to identify the pain points—the things you struggle with are probably going to be difficult for your readers as well. Sometimes things can be explained better in an example than they can in a lengthy paragraph. If you were documenting a command, it might be worthwhile to provide a good example first and then break it down and explain it in detail. Images can also be very helpful in getting your point across. In documenting user interfaces, an image can be a much better choice than words. Draw red boxes or arrows to guide the reader on the procedure.


April 24, 2015

Working Well With Your Employees

In the past 17 years I’ve worked in a clean-room laboratory environment as an in-house tech support person managing windows machines around dangerous lasers and chemicals, in the telecommunications industry as a systems analyst and software engineer, and in the hosting industry as a lead developer, software architect, and manager of development. In every case, the following guiding principles have served me well, both as an employee striving to learn more and be a better contributor and as a manager striving to be a worthy employer of rising talent. Whether you are a manager or a startup CEO, this advice will help you cultivate success for you and your employees.

Hire up.
When you’re starting out, you will likely wear many hats out of necessity, but as your company grows, these hats need to be given to others. Hire the best talent you can, and rely on their expertise. Don’t be intimidated by intelligence—embrace it and don’t let your ego stand in the way. Also, be aware that faulty assumptions about someone’s skill set can throw off deadlines and cause support issues down the road. Empowering people increases a sense of ownership and pride in one’s work.

Stay curious.
IBM has reinvented itself over and over. It has done this to keep up with the ever-changing industry with the help of curious employees. Curious people ask more questions, dig deeper, and they find creative solutions to current industry needs. Don’t pour cold water on your employees who want to do things differently. Listen to them with an open mind. Change is sometimes required, and it comes through innovation by curious people.

Integrate and automate everything.
Take a cue from SoftLayer: If you find yourself performing a repetitive task, automate and document it. We’ve focused on automation since day one. Not only do we automate server provisioning, but we’ve also automated our development build processes so that we can achieve repeatable success in code releases. Do your best to automate yourself out of a job and encourage others to live by this mantra. Don’t trade efficiency for job security—those who excel in this should be given more responsibility.

Peace of mind is worth a lot.
Once a coworker and I applied to contract for a job internally because our company was about to spend millions farming it out to a third party. We knew we could do it faster and cheaper, but the company went with the third party instead. Losing that contract taught me that companies are willing to pay handsomely for peace of mind. If you can build a team that is that source of that peace of mind for your company, you will go far.

When things don’t go right.
Sometimes things go off the rails, and there’s nothing you can do about it. People make mistakes. Deadlines are missed. Contracts fall through. In these situations, it’s important to focus on where the process went wrong and put changes in place to keep it from happening again. This is more beneficial to your team than finger pointing. If you can learn from your mistakes, you will create an environment that is agile and successful.

- Jason

March 20, 2015

Startups: Always Be Hiring

In late 2014, I was at a Denver job fair promoting an event I was organizing, NewCo Boulder. All the usual suspects of the Colorado tech community were there; companies ranging in size from 50 to 500 employees. It's a challenge to stand out from the crowd when vying for the best talent in this competitive job market, so the companies had pop-up banners, posters, swag of every kind on the table, and swarms of teams clad in company t-shirts to talk to everyone who walked by.

Nestled amid the dizzying display of logos was MediaNest, a three-person, pre-funding startup in the Catalyst program, at the time they were in the Boomtown Boulder fall 2014 cohort. What the heck was a scrappy startup doing among the top Colorado tech companies? In a word: hiring.

MediaNest was there to hire for three roles: front end developer, back end developer, and sales representative. They were there to double the size of their team ... when they had the money. In the war for talent, they started early and were doing it right.

I've often heard VCs (venture capitalists) and highly successful startup CEOs say the primary roles for a startup CEO are to always keep money in the bank and butts in seats. Both take tremendous time and energy, and they go hand-in-hand. It takes months to close a funding round, and similarly, it takes months to fill roles with the right people. If you're just getting started with hiring once that money is in the bank, you're starting from a deficit, burning capital, and straining resources while you get the recruiting gears going.

The number one resource for startup hiring is personal networks. Start with your friends and acquaintances and let everyone know you're looking to fill specific roles, even as you're out raising the capital to pay them. As the round gets closer to closing, intensify your efforts and expand your reach.

But what happens if you find someone perfect before you’re ready to hire them? Julien Khaleghy, CEO of MediaNest, says, "It's a tricky question. We will tend to be generous on the equity portion and conservative on the salary portion. If a comfortable salary is a requirement for the person, we will lock them for our next round of funding."

MediaNest wasn’t funded when I saw them in Denver, and they weren’t ready to make offers, so why attend a job fair? Khaleghy adds, based on his experience as CEO, "It's actually a good thing to show a letter of intent to hire someone when you are raising money."

At that job fair in Denver, MediaNest, with its simple table and two of the co-founders present, was just as busy that day as the companies with a full complement of staff giving away every piece of imaginable swag. I recommend following their example and getting ahead of the hiring game.

As long as you're successful, you'll never stop hiring. So start today.


February 25, 2015

To Raise Capital You Need a Startup Roadshow

In the world of big finance, before a company IPOs, the CEO along with an investment banker(s) go on a global roadshow to pitch their business to potential investors, including hedge funds, major investment funds, and other portfolio managers. The purpose is simple: Drum up sales of the forthcoming stock issue. In the startup world, there are no big investment banks scheduling meetings. However, there are opportunities to do a roadshow for your startup, which is even more important than the IPO.

There were 275 IPOs in 2014, the largest number since 2000. By contrast, there are around 500,000 new businesses founded in the U.S. each year (not all of which are tech startups), approximately 225,000 angel investors in the U.S., and as of a year ago, there were 874 venture capital firms [read more]. In big finance, a few companies compete for the attention of a small, accessible group of investors. In the startup world, a large number of companies must seek capital from a huge pool of often-hard-to-find, geographically dispersed investors. Because of this, a roadshow is even more important for startups than it is for IPOs.

The SoftLayer Catalyst team works with startups in communities as big as San Francisco’s Silicon Valley to as small as Cedar Rapids, Iowa. The number one thing entrepreneurs outside of the major financing hubs ask about is how to access capital. My response is always the same: Your job isn't to bring more capital to your local community; it's to build a great company. You know where the capital is, so build something worth investing in, and then do a roadshow.

Practice Locally

Thankfully, as the startup world grows & matures, the number of outlets for pitching increases every month. There are opportunities in most cities to stand up and pitch your idea to your peers or investors. Start by getting out in front of your local community as often as possible. In the Boulder/Denver community, there are a few companies that I see pitch all the time, and those companies have fantastic pitches because they are constantly practicing, getting feedback, and refining.

Look for meetups that focus on pitching such as 1 Million Cups and House of Genius, or simply do a search for startup pitch meetup in your city. During startup weeks or similar events, search and sign up for pitch practices and competitions. If your co-working space is like SoftLayer partner Galvanize, they might have a big member pitch competition or a peer-to-peer practice event. Participate in as many local and regional pitch competitions as you can find. As long as the competitions don't take a piece of equity or require a significant payment to participate—either of which should be very carefully evaluated beforehand—sign up, and compete. This constant exposure to your local market will help spread the word about your company, provide feedback on your pitch, and maybe even score some prizes!

For more advice on your pitch, read my previous post, Advice from the Catalyst Team: Pitching Like George Lucas.

Maximizing Your Startup Roadshow

Now that you've refined your pitch and practiced in front of as many local audiences as possible, it's time to start planning your roadshow. Traveling on a limited budget means you must plan a highly focused trip with a specific goal in mind. Maybe you're traveling from New York City to Philadelphia for a competition, or from Portland to San Francisco for an investor meeting; no matter the reason, it's imperative to maximize your trip. A good roadshow involves getting the absolute most out of your travel budget, and this means booking meetings with potential investors or customers.

For example, while attending StartSLC, I visited with a friend from Colorado, Ryan Angilly from Ramen. Angilly traveled to Salt Lake City to participate in the pitch competition, but he made the most out of his trip by filling his calendar with investor meetings throughout the week. Before his trip, he reached out to his contacts in the startup community in Utah and asked for introductions. After following through with the contacts, he met with investors he would have otherwise never met.

Start by either allocating a budget for travel or identifying the most important pitch competitions in your region or industry. Once you have your trip scheduled, immediately start looking for connections within your network. It's far more effective to say, "I'll be in town the 12th to the 14th; what does your schedule look like?" than a non-specific request such as, “When are you available?” Look for connections with ties to your local community as they are more likely to be helpful and make intros on your behalf. And ask around locally about who has ties to your destination. Get your meetings lined up, and get ready for a whirlwind of pitches on your first ever startup roadshow.

I'll leave you with this final point: In 2014, venture capital firms raised nearly $33 billion, a 62 percent increase over 2013 levels. They'll spend the next few years investing that money in startups. The money is out there, and you need to do a roadshow to find it.


December 10, 2014

Password Managers: One Password To Rule Them All

From banking to social media to gaming, the amount of accounts we have today is growing out of control. Let’s be honest—it’s easy to use the same password or a variation of the same password for all online accounts, but if a hacker can break one of those passwords, they are one step closer to hacking every account.

Who really has the memory to store all those passwords anyway?

That’s where a password manager can help. It controls access by storing (online or locally) every password in an encrypted file that is only accessible by one strong master password.

When a user wants access to their SoftLayer account for example, the password manager will ask for the master password instead of the SoftLayer account password. It automatically populates the username and password fields and logs in.

Password managers are very convenient, but more importantly they enhance security because of the ability to use longer and harder passwords without worrying about forgetting or writing them down on sticky notes posted to a desktop screen.

Do I need a cross-platform password manager?
Today, most people access the same accounts on desktops, tablets, and mobile devices. If that’s you, then yes, you need a cross-platform solution. These Web-based options require yearly subscriptions upwards of $50 for a single user. The convenience of logging in anywhere might be steep, but the additional features might make it worth it. Password managers like Dashlane, LastPass, 1Password, and mSecure offer:

  • Secure storage of bank cards and any identity cards like driver licenses
  • Password generators
  • Keystroke logger protection
  • Automatic backup
  • Multifactor authentication like biometrics or a token
  • Access to pre-determined contacts in case of emergency or death
  • Team password sharing (the team lead controls the master password for a single account like a FedEx account and grants access via the users individual password manager)

Do I need a locally-based password manager?
If you’re not comfortable storing passwords online or you just use your desktop to access accounts, choose a password manager that encrypts and stores passwords on your PC. This option is the least convenient but most secure. All password managers listed above come in the locally-based option for free or at a fraction of the cross-platform price.

User Error
Although much more secure than not using one, password managers do have some downfalls (that stem from user error). Just like any password, you still need to change your master password regularly, never share passwords with anyone, and once installed, a user should update existing passwords with really hard forgettable passwords or use a password generator for each online account.

And always remember to lock your computer or mobile device when not in use. Although password managers make it harder for hackers to virtually access your accounts, they do not protect against someone physically opening the file.

It’s also a good idea to check settings to ensure that when booting or waking up your device, the password manager requires you to re-enter the password.

Pa$$word1 ain’t cutting it.
If you’re not ready to commit to a password manager, think about the consequences the next time you are prompted to update your password. Adding a “1” to the end of your current password isn’t safe or smart.

We’ve all been there, and committing to a password manager in some cases is expensive and setting one up can be time consuming depending on the amount of accounts, so I understand the hesitation. But it’s worth it for that added layer of protection and security.


Subscribe to tips-and-tricks