Monthly Archives: September 2014

Quora Answer: I know almost nothing about the stock market but have strong programming skills. Will I be able to make profitable trading software?

I originally wrote this as an answer to a question on Quora.

The world is littered with the empty wallets of engineers that approached the stock market as a math, algorithmic, or engineering problem.

The largest investment banks all have algorithmic trading programs, and they often lose large chunks of money. And sometimes they make large chunks of money. You might be able to compete in the gaps, but they have what amounts to infinitely deep pockets to hire the absolute best people and give them the highest-quality tools and set up servers that have sub-millisecond market access to systems you couldn’t begin to afford the connection fees for.

Something that makes money by trading algorithmically is one of the worst forms of parasite. Like a tapeworm, it removes nutrients from the market and offers nothing in return. But creating something like that is an interesting intellectual problem.

You might be able to build profitable trading software, but if you make it your life’s work, it’s entirely possible that you’ll end up with nothing to show at the end of the journey.

Quora Answer: Before joining as a CTO and only coder of an early stage startup, what knowledge should I have?

I originally wrote this as an answer to a question on Quora.

Full question:

“And, which kind of questions should I make to the initial founders?
I am not only talking about technical skills, all kind of knowledge matters.”

Knowledge

You should already know most of what you need to know to build version 1.0 of the product. You’ll learn the rest as you go.

You should also know how to deploy it, secure it, and manage it.

You should know how to document what you’re doing, at least enough that a smart person could pick up and maintain it later.

You should know enough to plan for disaster recovery. That’s not too hard at the early stage — just don’t keep everything on one computer in one building.

You should also know how to evaluate, onboard, and delegate tasks and projects to future hires.

You should be VERY good at estimating how long it will take to develop a new feature.

You should be comfortable with networking, presenting at user groups, and going out into the world to get to know other CTOs, developers, and people in your industry. If things work out you’ll be hiring these people someday.

You should be good at researching the competition and finding out what strategies they are using.

You should be good at the technical aspects of sales/marketing. A/B testing, mailing list management, promotional codes, etc. None of this is hard, but you should expect to do things that make it easier for the non-technical people to get the product tested and sold.

Questions to Ask

You should dig VERY deeply on what validation they’ve done and who they already have on the hook as potential users, investors, and beta testers.

You should find out whether they have the skills to do their job. Their main jobs are:

– Getting people to care about the product enough to buy. (selling).

– Getting people to the top of the sales funnel in the first place (marketing).

– Getting product-market fit (customer validation).

– Getting the resources the company needs (fundraising).

You need to find out whether they’ve done the work to validate their idea and whether they have people interested in at least trying (or better yet, buying) once it’s built.

You also need to find out how much of version 1.0 they’ve already designed. Find out what feature set they’ve designed, and be sure to ask how much they’ve validated each feature or aspect of the design.

You also need to find out what their expectations are and how rewards and equity are to be split up — what will your reward be for your efforts? What’s the existing equity split?

Quora Answer: What did Steve Jobs mean by programming ‘teaches you how to think’?

I originally wrote this as an answer to a question on Quora.

It forces you to figure out how to solve a problem in a way that can be explained to a computer.

By doing this you learn to break down a problem into its components, how to define the problem using constraints (you have to figure out what’s going to go in and what’s going to come out of your code), you have to be precise, and you have to have a full understanding of all of the components of the problem and its solution in order to solve the problem.

This define and disassemble approach to problem solving is something that is very applicable to problems across many domains, especially science, engineering, and mathematics.

Quora Answer: When people at tech companies or startups in Silicon Valley refer to “cultural fit” with a company, what exactly do they mean?

I originally wrote this as an answer to a question on Quora.

It’s code for “is this person like us”. That almost always means that the company lacks diversity in any form. Most of the employees tend to look the same, have similar backgrounds, and similar interests. In tech that usually means white males under 40, but that’s not always the case. It could be all Indian males under 40.

While this may lead to increased harmony and fewer conflicts, it’s also a terrible form of laziness. Companies that emphasize cultural fit will tend to be terribly deficient in HR and likely be inept at interacting with people who aren’t just like them (including customers). It’s basically a cop-out for those who can’t be bothered to make the effort to be inclusive and learn to work with people who are different.

Most places that emphasize cultural fit bear a striking resemblance to fraternity houses. That’s not my thing and I’d rather work with grownups who make an effort to function within the context of the rest of the world rather than creating their own isolated little bubbles of groupthink. I also learn more from people who aren’t just like me.

Quora Answer: What are some ways that programming was better in the past?

I originally wrote this as an answer to a question on Quora.

In the “bad old days” the actual programming work wasn’t much different, just worse. Monitors were smaller and lower-resolution, chairs more uncomfortable, you had to spend a lot more time waiting for the computer to finish what it was doing, hardware was much more expensive, tools were barely capable, there weren’t pre-existing libraries for much of anything, open source wasn’t a thing, and there weren’t good marketplaces for selling what you created.

There was no internet, no StackOverflow, and no communities to go to for help. You did not have a Meetup group in your town where you could talk to other people working with similar technologies.

The one thing that was better in some ways is that fewer of the “interesting” problems had been solved yet, and many of the solutions and applications that were built were created by a single person with an itch to solve a particular problem.

Though sometimes I wish I could go back to a time where Java did not exist yet, programming really was awful in the old times. The same goes for the web. Sometimes it feels like it would be nice to go back to a time before it was hypercommercialized and mainstream – a time before the popup ad existed and before you couldn’t avoid being inundated with inane celebrity gossip on sites like Twitter and Facebook – but no. It was nearly useless back then.