Some Questions to Ask Before You Join a Startup

I realize that in this job market, maybe you can’t be choosy about a job offer, but you should still understand what you’re getting into. If you are considering working at a startup, you should ask these questions.

1. How much money do you have in the bank? This is a simple question. You just want a number. If you’re told that “investors are ready to put in more” or “we have a line of credit,” beware because a promise of money isn’t the same as money. Ask yourself this question: If I promised money to a company and it’s about to crash and burn, would I put the money in it anyway?

2. What is your net outflow per month? What you’d like to do is take the answer to question 1 and divide it by the answer to question 2. This will tell you how long before your company runs out of money and dies. If the answer to the question centers around “We will achieve revenue soon so our net will improve and give us more runway,” it means the company is in trouble because no product ever ships on time nor achieves the company’s “conservative forecast.”

3. What is the post-money valuation of your last round? “Post-money valuation” is the value of the company after the last round of money was put in (again, lines of credit and promises don’t count). If the company doesn’t have either seven digit annual revenue or tens of millions of page views per month and post-money valuation is greater than $10 million, it usually means that raising another round will be difficult because previous expectations were set too high. If it cannot raise another round, it will die.

4. What can you do that your competitors cannot? This is good to know because it speaks to the defensibility and value of the company. Life is challenging for a company that has undistinguished products and services. This doesn’t mean the company will fail, but it has be “special” in some way soon.

5. What can your competitors do that you cannot? This is how you can determine if the company management is optimistic (good), delusional (sometimes good, often necessary), or just plain pathological liars (always bad). The actual capabilities are not as important as much as the moral character of the answerer, so listen carefully.

6. Who are your investors? Hopefully, there are one or two well-known venture capitalists. However, a perfectly acceptable—and perhaps even better—answer is that there are no investors other than the founders, and the plan is to bootstrap the company as long as possible. These days revenue is the best source of capital.

7. Who is on your board of directors? If there are outside investors, they are likely to be on the board. That’s cool. But you should beware of boards that are only the founders and their family and friends. You need at least one “adult” on board who can be the hardass bull shiitake detector.

8. Has anyone in the engineering team actually shipped a product? You may think I’m kidding. I’m not. Shipping a product is very different from being a programmer. A company only gets paid for products that ship—not for trying hard to ship.

9. Assume that you have $0 for marketing, how would you market the product? Any bozo can market a product with a million dollars. What you want is a team that can (a) make a great product that markets itself and (b) catalyze people to believe in the product enough to market it for you. If the answer you get is, “When we’re ready to ship, we’ll raise more money to market it,” you should run for the door.

10. What keeps you awake at night? This is an excellent question to figure out what the major challenges are for the company. If the answer is, “Nothing, we’re on the brink of worldwide domination,” look for the door again. If the answer is, “Scaling fast enough for our anticipated demand,” try not to laugh. The right answer is, “We’re a startup. I worry about everything: money, sales, engineering, support, and recruiting. I hope you will join the team and relieve me of some of this burden.”


9 skills developers will need in the next five years

With the recent changes in the economy, a lot of developers are focused on their short-term job prospects. At the same time, it’s important to make sure that you get the most bang for your buck when it comes to taking the time and energy to learn new skills. Here is a  list of 10 skills you should be learning right now to make sure that your resume is relevant for the next five years. The list is hardly exhaustive, and there are huge swaths of the industry it won’t cover (mainframe developers, for example). Nonetheless, for average mainstream development, you can’t go wrong learning at least seven of these skills — not only to the point where you can talk convincingly about them at a job interview, but actually use them on the job.

1: One of the “Big Three” (.NET, Java, PHP)
Unless there is a radical shift in the development world, most developers will need to know at least one of the Big Three development systems — .NET (VB.NET or C#), Java, or PHP — for the near future. It’s not enough to know the core languages, either. As projects encompass more and more disparate functionality, you’ll need to know the associated frameworks and libraries more deeply.

2: Rich Internet Applications (RIAs)
Love it or hate it, in the last few years, Flash is suddenly being used for more than just animations of politicians singing goofy songs. Flash has also sprouted additional functionality in the form or Flex and AIR. Flash’s competitors, such as JavaFx and Silverlight, are also upping the ante on features and performance. To make things even more complicated, HTML 5 is incorporating all sorts of RIA functionality, including database connectivity, and putting the formal W3C stamp on AJAX. In the near future, being an RIA pro will be a key resume differentiator.

3: Web development
Web development is not going away anytime soon. Many developers have been content to lay back and ignore the Web or to just stick to “the basics” their framework provides them with. But companies have been demanding more and more who really know how to work with the underlying technology at a “hand code” level. So bone up on JavaScript, CSS, and HTML to succeed over the next five years.

4: Web services
REST or SOAP? JSON or XML? While the choices and the answers depend on the project, it’s getting increasingly difficult to be a developer (even one not writing Web applications) without consuming or creating a Web service. Even areas that used to be ODBC, COM, or RPC domains are now being transitioned to Web services of some variety. Developers who can’t work with Web services will find themselves relegated to legacy and maintenance roles.

5: Soft skills
One trend that has been going for quite some time is the increasing visibility of IT within and outside the enterprise. Developers are being brought into more and more non-development meetings and processes to provide feedback. For example, the CFO can’t change the accounting rules without working with IT to update the systems. And an operations manager can’t change a call center process without IT updating the CRM workflow. Likewise, customers often need to work directly with the development teams to make sure that their needs are met.

6: One dynamic and/or functional programming language
Languages like Ruby, Python, F#, and Groovy still aren’t quite mainstream –  but the ideas in them are. For example, the LINQ system in Microsoft’s .NET is a direct descendent of functional programming techniques. Both Ruby and Python are becoming hot in some sectors, thanks to the Rails framework and Silverlight, respectively. Learning one of these languages won’t just improve your resume, though; it will expand your horizons. Every top-flight developer recommends learning at least one dynamic or functional programming language to learn new ways of thinking.

7: Domain knowledge
The  developers who understand the problem domain are able to contribute to the project in a highly visible, valuable way. A developer who can say, “From here, we can also add this functionality fairly easily, and it will get us a lot of value,” or “Gee, that requirement really doesn’t match the usage patterns our logs show” will excel. As much as many developers resist the idea of having to know anything about the problem domain at all, it is undeniable that increasing numbers of organizations prefer (if not require) developers to at least understand the basics.

8: Development “hygiene”
A few years ago, many (if not most) shops did not have access to bug tracking systems, version control, and other such tools; it was just the developers and their IDE of choice. But thanks to the development of new, integrated stacks, like the Microsoft Visual Studio Team System, and the explosion in availability of high quality, open source environments, organizations without these tools are becoming much less common. Developers must know more than just how to check code in and out of source control or how to use the VM system to build test environments. They need to have a rigorous habit of hygiene in place to make sure that they are properly coordinating with their teams.

9: Mobile development
The late 1990s saw Web development rise to mainstream acceptance and then begin to marginalize traditional desktop applications in many areas. In 2008, mobile development left the launch pad, and over the next five years, it will become increasingly important. There are, of course, different approaches to mobile development: Web applications designed to work on mobile devices, RIAs aimed at that market, and applications that run directly on the devices. Regardless of which of these paths you choose, adding mobile development to your skill set will ensure that you are in demand for the future.

Flash z-order — always on top?

I was trying to use a javascript pull-down menu that was just above a flash movie. The pull down was always BEHIND the flash movie, no matter how I set the z-order. Here is how I fixed it:

  • Adding this parameter to the OBJECT tag: <param name=”wmode” value=”transparent”>
  • Adding this parameter to the EMBED tag: wmode=”transparent”

With those added parameters, the menu now extended down over the flash portion properly.