Posterous
Chrys is using Posterous to post everything online. Shouldn't you?
Profile2_thumb
 

Find me on:

Tales of an Entrepreneur by Chrys Bader

Inside the life of a Silicon Valley pilgrim

3 Symptoms of Successful Entrepreneurs

November 10th, 2009

Since I moved to the Valley after graduating from YCombinator (YC) Summer '08, I've spent over a year observing startups in multiple stages. Some are well funded, some are brand new, some have just raised funding, and some are just an idea. I've noticed several trends that define entrepreneurs who are destined to succeed as well as several leading indicators of a startup's failure.

Successful entrepreneurs are relentless in their pursuits

I can't count how many times I've been taken aback by an entrepreneur's dedication to solving a problem, reaching a milestone, or achieving something everyone thought impossible. A good entrepreneur will baffle you with their relentless dedication in pursuit of a goal. I've been amazed by the number of times I've heard an entrepreneur make a claim that I thought was ridiculous, risky, or undoable, and then watch them accomplish it. It's inspiring. It has changed me from an entrepreneur who would only set the bar only as high as I could rationalize to an entrepreneur who is willing to chase the impossible.

Successful entrepreneurs move in packs

Successful entrepreneurs are like wolves. They survive in packs. Since graduating YC S08, several of our fellow YC startups have remained in touch while others have drifted and either died or disappeared. We're very close with the founders from our YC batch, and we share things with each other in the utmost confidence, which is not something most startup founders can do. It's almost like group therapy. Having a trust circle is an invaluable resource in the Valley's competitive battlefield.

The startups that are still alive are the ones who remained in touch. We've fundraised together. We've introduced each other to potential investors and deals. We've vouched for each other. We've constantly been exposed to each other's triumphs and defeats.  We've inspired each other's products. At least one feature you see in every remaining YC S08 product was inspired by another YC S08 founder.

If we ever feel a member of our pack lagging behind or straying in the wrong direction, we do what we can to get them back on track.  We've seen too many entrepreneurs fall to the wayside, and it hurts us to see them go.  And when they go, they usually remove themselves slowly and fade into the fog of war. In the words of Paul Graham, startups don't die "loudly and heroically... mostly they crawl off somewhere and die". And like wolves, they die alone.

Successful entrepreneurs crave knowledge and are eager to share it

An entrepreneur who is not starry eyed and dreaming is an entrepreneur that will fail.

Almost every time I meet with a successful entrepreneur, I see that spark in their eyes. Maybe they just had a vision or just read a great blog post.  Maybe they just solved a problem or they just learned about a new product.  Whatever it is, they are excited to talk about it.  Entrepreneurs are always searching for knowledge, and they can't wait to share it with you. You'll find that this is reflected in their products.

This passion for knowledge is what makes a pack of entrepreneurs so unstoppable. It's essentially a collective cognitive force that is determined to take over the world.  Some of the bigger packs are referred to as "mafias" in the Valley, e.g. the YC Mafia, Paypal Mafia, XG Mafia (ex-Googlers), etc.

To sum it all up, successful entrepreneurs live in a distorted reality that they create for themselves. They have a vision that they pursue like food during a famine. Satisfaction is rare and never immediate. To be a successful entrepreneur, you need to live in a world that doesn't exist yet: the world that you want to create.

--

If you liked this post, you should follow me on twitter.

The core feature

September 17th, 2008

While working on Fliggo, I've learned many things over the past year of developing our site. We iterated two major versions of the site recently launched our newest product: create your own video site. With each revision, we learn some features we've created are rarely (if ever) used. In retrospect, developing them was a major time sink. From these experiences, we have derived some important philosophies.

Create your core feature, then get your first beta users

You might feel that when you first present your product you should have an impressive feature set and avoid ridicule. No. Save time and make a better product by focusing on the feedback that you're getting from users about your core feature. I don't mean only feature requests, but interpret how they are using your product and make the connections to provide them with new features they didn't even know they could have.

You can spend all day hypothesizing what someone will do with or want from your product, but as the saying goes, "the proof of the pudding is in the eating".

Expand on your core feature through user feedback

User feedback is the most valuable piece of information you can get your hands on. With this information you can figure out what your product *really* is. The users are what make your product, not you. You are an interpreter of needs and demands, and you're good at it. That is what puts you in the position to be developing the product.

Generally, most feature requests shouldn't be implemented verbatim. You need to read into the reason they want the feature and how it ties into the grand scheme of things. For example, I created a CRM tool for a client to manage incoming applications. Today, they asked me to create a "clone application" feature so they wouldn't need to re-enter company information into applications of repeat customers. I could implement this feature just as they requested, but then I would be missing what they *really* need, which is a database of repeat customers so they could easily associate and create applications from already existing customers.

Conclusion

Launch to your initial beta testers with one or very few features. They should immediately feel things are missing; good. Now you will receive valuable feedback regarding which steps to take next. This will save time you would have wasted developing features based on your own presumptions.

10 Tips for Budding Web Programmers and Designers

September 25th, 2007

1. Use Firefox

This is the most important platform you have at your fingertips. Firefox is essential for developing websites. I'm not saying you need to use it as your browser -- you can use whatever browser you want for surfing.

Since the birth of Firefox, there have been a few extensions developed that are a MUST HAVE if you want to speed up development and learn faster.

Web Developer Extension by Chris Pederick.

This extension has many useful tools, though most of them have been trumped by FireBug (which I will talk about next), some are still useful. Features include:

  • Resize the browser window

    Quickly and easily resize the browser to 800x600, 1024x768, or any other size you want. This tool helps you see how your site looks from your visitors' point of view. Check Google Analytics and see which resolution is the most popular. Design for that one. Firebug does not have this tool.

  • Edit CSS/HTML without refreshing

    This tool is useful for writing free-form CSS without having to refresh the page, something that is not as easy in Firebug. As you edit your CSS and HTML you will see the changes instantly. This is a major time saver.

  • View all Javascript loaded on the page

    For those of you that have Javascript code or are trying to see someone else's Javascript, you can view all the JS code that your browser has loaded on a single page. (Firebug shows you all the JS files, but you can't search through all of them at once like in this extension)

  • View generated source

    This is an excellent trool if you have portions of your pages loaded by AJAX or via Javascript. Regular view source won't show you the HTML that is dynamically generated. (Firebug will also show you dynamically generated code. You can actually see it on the fly.)

Firebug Extension by Joe HewittOften at the office we ask the question, "Remember life before Firebug?". This extension has changed my life. Here are some of the major pros of this extension:

  • Inspect the DOM (Document Object Model)

    Click 'Inspect' and hover over elements of the DOM to see where that element is in the HTML code and what CSS styles it has.

  • Live CSS editing showing style inheritence

    This is money. This will save you literally hours in layout design. For example, you can select a DIV and then tweak it's margin by selecting the margin property in Firebug and pressing up and down to tweak it pixel by pixel. Page up and down to change by 10 pixels. You can also add new properties to current styles. Once you have made your changes, highlight the CSS and copy and paste it back into your actual file.

  • Detailed Javascript debugging and profiling

    The Javascript console is slightly better here than in plain Firefox. It gives you more details and is a fine replacement for the default console. You can also profile your javascript and see the execution time as well as the number of calls are made to every function.

  • See all files being loaded and total size of your webpage

    This is so key for optimizing your website's load time. You can see how long each individual file associated to your webpage took to load. Images, Javascript files, AJAX calls. At the bottom of the "Net" section of Firebug, you will see the total size of the page you just loaded.

2. Be Compatible

Being cross-browser compatible is very important. It's not something I personally have fun with. I told you to develop in Firefox, but don't forget to check your work in IE 6 and 7, Safari, and if you want to, Opera.

Once again, check your Google Analytics to see what browsers your visitors are using. The most important ones are the ones that your visitors are using.I've been watching the decline of IE6 in the Google Analytics of many of my sites, and it is steady. I will throw a party the day it drops below 5% and I don't need to support it anymore.

To have an easier time being compatible, keep your approach simple. If you try to do something fancy that takes a lot of work and tweaking in one browser -- it's more likely that it won't work properly in another browser, which takes me to my next tip: Less is More.

3. Less is More

Be tasteful. This applies to everything. Graphic design, programming, page layout. Keep it simple!

  • Designing Graphics

    There's always a tendency to overdo a gradient, bevel, or drop shadow. If things just aren't working out, it's probably because you have too much going on. Keep it simple and the effects minimal or tasteful.

  • Fancy Javascript

    It's always nice to write some really cool Javascript that enhances the user interface. On the down side, it can be taxing to a user that doesn't have the supercomputer that you do. You can also run into issues across multiple browsers. Again, don't rely too heavily on Javascript to do everything for you. If you want to do basic user interface stuff, I'd highly recommend jQuery, which I talk about in the next section. AJAX has it's time and place.

4. Want Javascript? Use jQuery

Javascript is great for showing/hiding information to give your page more space to breathe. If you want to write Javascript in a new, very easy to write fashion, I'd highly recommend using jQuery.

One of the major benefits of jQuery is that it has been tested across multiple browsers for you. This means that all of the methods you use in the jQuery system are guaranteed to work. The next major benefit: jQuery is extremely simple to use.jQuery uses CSS selectors to target items and then lets you manipulate them however you want. Below are some examples.

Hide all paragraph elements in a div with the id of myDiv:
1.$('#myDiv p').hide();
1.$('#myDiv p').hide('slow'); // Hide w/ animation
1.$('#myDiv p').toggle(); // Click to toggle div

Learn more about jQuery here. For help, visit the jQueryHelp Forum

It's only fair to mention other alternatives, such as mootools, prototype and scriptaculous.

5. AJAX has its time and place

AJAX has been all the craze of 'Web 2.0'. Lots of people I know ask me 'Do you know AJAX' as if it's a stand-alone programming language. AJAX is just a method of communicating with your server-side scripting language to retrieve new data or update data without refreshing the page.I've noticed a large tendency to use AJAX for everything. This is not always a wise choice. Why?

  • Page Views

    By making everything AJAX, you're losing valuable page views.

  • Usability

    This one is debatable, but I feel that the average web user (which you do not represent) is still getting used to this. Average users still take the page refreshing as an indication that something is happening.

AJAX definitely has it's place and it should be used in some conditions. Again, less is more. Be tasteful and moderate your usage of Javascript and AJAX.

6. Search engines like structured code

It's been all the rage to get to the top of search engines for your target keywords. As the developer, you have a responsibility of following code structure to make your site's code as optimal for search engines as possible.Here are some important structure tags:

  • H1 - It's the most important header, and that's how search engines see it.

  • H2, H3, H4, H5 - Subsequently important headers. Use these to disseminate your information properly and search engines will give the words within these headers weight.

  • A - The link. Always give it a TITLE property.

    1.<a href="" title="Contact A Clever Cookie">Contact A Clever Cookiea>
  • IMG - Ye olde image tag. Always give the image tag an ALT property. This will add to the keywords search engines pick up on. Also, if your image doesn't load for some reason, users will still see a caption of sorts.

Here are some other important tags for your document:
  • TITLE - The title tag is what will be shown as the search engine result, so title things carefully. Try to include the most descriptive keywords in the title.

  • META - Always fill out your keywords and description META tags. Search engines still read these old suckers.

    1.<meta name="keywords" content="blogging, web design, clever cookie" />
    2.<meta name="description" content="Try to have a different and detailed description for every page that includes important keywords related to your document" />

7. DIVs not TABLEs

We all used to do it. Making layouts in TABLEs nowadays is extremely frowned upon. Only use TABLEs to display tabular data.It takes a lot of practice, but once you get the hang of it, it becomes really easy and you actually gain more flexibility than you ever thought you had.It's as easy as float and width.I wrote a very basic two column tutorial on Virb, read it here.

8. Minimize inline styles

While coding, sometimes it's easier to just write styles into your element rather than giving it a class or property in your CSS file. You want to minimize that for one reason: supportability.You're going to come back to your code that you made in the past. You will sleep in the bed you made. After doing this for 10 years, I've learned that taking the extra time now will save you lots of time in the future. Which brings me to my next tip: Code with the future in mind.

Bad practice
1.<p style="font-size: 14px; margin-bottom: 0pt;">This is some header textp>
2.<p>This is my contentp>
3.<p style="font-size: 14px; margin-bottom: 0pt;">Anotherp>
Good practice
01.
02.<style type="text/css" media="screen">
03.p.header {
04. font-size: 14px;
05. margin-bottom: 0;
06.}
07.style>
08.
09.<p class="header">This is some header textp>
10.<p>This is my contentp>
11.<p class="header">Anotherp>

9. Code with the future in mind

Comment your code. Be neat. Be organized. Don't be lazy. If you're feeling in a rush, take a little break and come back to it.In many cases, that is, if you plan to be successful, someone else will be looking at your code in the future. Sometimes, that person may be you.When you come back to your code after a couple years and it's not commented and it's not formatted properly, you're going to be upset with yourself. Avoid future self-confrontations by simply commenting code where things don't immediately make sense.It is also possible to have too many comments. Please don't comment things that are blatantly obvious, because then the actual worthwhile comments get lost in the mix.

10. Know the standards, but you don't always have to follow

Don't use center, font, and other deprecated tags; it makes you look bad.

Valid XHTML and CSS badges on a website are mostly a matter of showing people you can follow some rules. Maybe it makes you feel special. But, it does not imply anything about the quality of your website. Try to find one large, successful website that has valid HTML. The standards can't keep up with growth of new techniques and technology.

Always start coding your site in valid HTML for as long as you can. There will probably be a situation where you need to bend the rules to get a feature of your design to function properly in all browsers. Don't sweat it. In the end, that's really all that matters.

You can use the W3's HTML Validator to validate your mark-up if you so desire

That's all folks!

Keep all of these tips in mind and start getting familiar with the tools I recommended. If you didn't already know, you have just stepped up your game.