Is this what it’s supposed to feel like?
42floors.com
42floors.com
"Shiny Apple Products Seriously, get whatever you want (PC users may have to justify themselves)."
That will simply turn off some people and there is no reason for a self-interested business to do that. Apple computers actually are PCs, and always were but especially now they are PCs, so you should make a distinction regarding Linux. The top machine learning company in the world even has their own distribution of Linux[1](or flavour of Ubuntu, however you want to put it). They and many others who don't make such snarky remarks almost certainly pay more than you and are working on more interesting problems than you, you are just narrowing down your potential employees without any reason. So, even though it's in jest, remove that statement from your hiring page if you are serious.
Probably a looooooooong stretch from just saying "Justify a PC" to you are building a uncompromising team but I would just say "The Best Equipment (We mostly use Apple)" would accomplish the same goal with less annoying language
not a valuable mindset at an early startup?
This is what irks me, too. The startup I was working at (somewhere in Europe) was always short on money (there wasn't any VC funding), and I get it that this meant having to cut corners anywhere. But then the owner started to outfit every new employee with the latest mac book and a cinema display - for roughly 9000$. I had a (good) Thinkpad and a standard 24" monitor for a third of that price. Why they decided to throw out that much money on Apple while I couldn't order a spare keyboard I don't know....
> to build quality
What, praytell, did you buy?
* Intel Core i5 processor, 8GB RAM, 160GB SSD
* 1600x900 14" IPS "Radiance" panel
* Switchable graphics (Intel integrated / Radeon discrete)
* Backlit island-style keyboard with oversized multitouch touchpad
* Amazing build quality (aluminum-magnesium alloy case, no plastic, slot-loading disc drive, edge-to-edge glass)
It was, essentially, an MBP clone, with an objectively better display panel, lower price tag at the same configurations, and Windows 7 instead of OS X. 3 years later it's still in perfect condition it was built so solidly. Unfortunately HP ruined the brand name by applying it to cheaper, inferior laptops in the years since, so you can't compare it to an "Envy" today.
@bluedino: It was just as sleek, with the same pixel density as the best screen you could custom order for an MBP, but better brightness & contrast. Here's what it looked like next to an MBP of that time: http://cache.gawkerassets.com/assets/images/4/2011/11/d929dd...
You're falling into the consumer trap of thinking of the value of an item as its initial, un-depreciated cost. Apple products are almost liquid assets--you can sell them for large fractions of their original purchase price for years after you buy them. Whereas most PCs, like cars, plummet in value the moment you take them off the "lot." Which do you think a startup would rather put on its balance sheet?
Also, because Apple products don't tend to depreciate very quickly in the market, Apple is willing to re-attain their own products after lending them to you for a while: they maintain a very competitive leasing program for businesses (http://www.apple.com/financing/business.html), which you can get into as soon as you want to lease $5000 worth of hardware (i.e. as soon as you're at least a two-person shop.) This is basically the Heroku/AWS of computer hardware: you need fifty laptops for a year? Pay as you go. Want to upgrade? Return them and get new ones, no charge. Business fail? Send everything back, you're good. Business succeed? You can buy the stuff out.
I would bet [fairly large amounts of money] that the majority of startup in SV/SF who keep Apple hardware are on that leasing plan. As soon as you mention anything about "starting a business" around an Apple Store employee, they throw someone in a black shirt at you to explain it.
Your anecdote was exactly the refutation of this statement. :) Game developers are often encouraged to work on median-spec systems because games are expected to run on a variety of configurations. You don't want to develop The Sims on a quad-core Xeon with multiple GT680s, only to find that it doesn't run on your mom's 2005 Core 2 Duo with integrated graphics. The people working with the asset pipeline/level editor might want some extra horsepower (end-users aren't expected to be able to run the level-editor, so it's usually not very optimized) but the programmers don't frequently need it.
Also, though, I disagree with this:
> a startup doesn't have to think of liquidating their assets unless they are going out of business
The most important thing to keep in mind, as any sort of business owner, is your BATNA (http://en.wikipedia.org/wiki/Best_alternative_to_a_negotiate...). It drives all your major decisions--should we raise funding, should we get acquired, should we IPO, should we declare bankruptcy, etc. And the "baseline" BATNA is always "how much money would we have as runway if we just liquidated everything, fired everyone, and started over?" It shouldn't be a consideration, but it should always be a benchmark to observe your distance from. More liquid assets means more negotiating room, basically.
But really, my point wasn't about liquidating assets, it was mostly about cashflow. A startup, like any business, both earns and spends money. Leasing means you have more cashflow. It's the same reason you don't buy physical servers right away--you don't want to lock that money up if you don't know if you'll need it.
Actually, judging by your comment and the ensuing replies, it looks like listing the benefit this way is doing a great job attracting the people they want and filtering out those who wouldn't fit in there.
Even PG's Lisp versus Blub argument is tenuous. Languages and OSes are a dime a dozen. What matters are algorithms and real world results. If you don't see that that's fine, but some real machine learning company thinking at the level of algorithms and not tools will eventually come along and eat your (company provided) lunch.
If you don't see that that's fine ....
You sound very defensive about this, which leads to the flip side of your argument: any prospect who can't take the lightest of jabs at their pet platform is not a person many "high level" startups would be interested in at all.
I understand you are making an app on iOS though and it would be perfectly legitimate for you to have constraints on employee setups because of that. But for a company working on a RoR project where the window manager doesn't matter, who seem to be having trouble recruiting, I'd suggest the data here clearly indicates they should drop the phrase as there is no way (looking at those numbers) it is helping them filter out some trouble making characters with a bad attitude towards Apple, it's turning a huge number of people off. And as I said elsewhere, there are companies certainly paying more and certainly working on more interesting problems who don't do this.
It makes sense to standardize and to have a reason if you want to deviate (said from the perspective of someone that would want to deviate). However, I'd still reword it if I were them, based on this reaction.
Hypothetically, if Mac went under and ceased to exist, do you really want to be that business that relies entirely on Mac ecosystem?
IMO Linux is simply the safest OS to rely on because it's open source.
Anyone who buys brand new hardware can attest to the contrary, because of the lack of drivers.
Windows is the safest OS to rely for business. It's also way overpriced, in part, because of business.
I know I will not buy an AMD HD 7000 series yet for my Ubuntu rig because some things don't work in the OS driver.
We both love OSS, but please be objective and look at the issue from all perspectives.
That's important to a business; not so much at home.
This is why I don't want people building their own PC, even though generally they can pick any tool they like: it shows they have the wrong priorities (at least for our team). Unless your job involves something really resource intensive, a high-end laptop (combined with external screens, keyboard and such) is more than good enough and much more practical.
Don't get me wrong, I love building my own machine, I build my own home server from scratch just for the hell of it every few years.
But simply the fact that you call it "half as expensive" suggests you have no realistic idea of actual costs. The time you spend searching the parts together is already more expensive than a MacBook.
"Pick whatever will make you most productive: we'll order it overnight."
Even if there are one-time integration costs involved in adding a PC user to the team, that candidate may still be more productive in Ubuntu. Trust their judgement.
There was a story of a failed startup on HN a month or so ago that had a co-founder who stated (jokingly) that they'd no-hire engineers who used Linux as their primary OS. They ultimately folded in part because of technical issues with their infrastructure.
In that respect, it wouldn't surprise me if there's a real correlation between crummy sysops and PC-hostileness in startups.
This blows my mind. I'd think that would be a prime quality, since you're almost certainly going to be deploying on Linux platforms. Intimate knowledge of your production platform is invaluable.
I even had Linux on a laptop, around 2000
Think about it. If you're a Mac user, would you work for a startup that says " This is a pure .NET shop and proud of it! You won't find any of those Apple hipsters here!"? If not, why do you assume the opposite is somehow very attractive?
It's like saying a Windows user wouldn't want to work at a Node.js shop. What does the dev tech have to do with the OS? And yes, it's a fair comparison, especially since Xamarin.
And they have basically the same policy: Fancy Macs, but MS Windows is frowned upon.
I think more and more startup CEOs are figuring this out. At least, I'm telling every one I meet - for technical talent, you are not competing against the other startups in your neighborhood. Or even ones doing the same thing. Or startups in general. You're competing against the awesome developer doing their own thing.
The cost of booting a startup is trending to zero. 10 years ago you'd need massive capital investment (servers, networking, etc.). I can spin up a Heroku server for free (or a series of AWS for nearly-free). I have super-powerful development environments (Ruby/Rails, Clojure/Lighttable, whatever) that are free or nearly so. Great infrastructure (Postgres, Unicorn, whatever) - free!
All I need is a product idea and a vision and I can bootstrap my company. I can charge money on day one without needing a business checking account, LLC, and all that.
What does this mean for you? As a startup founder, you are competing against a person owning 100% and running the show as they see fit. This is a completely different power dynamic and one that is going to be the new normal. You really need to have your stuff completely together in order to get the best people. It's very hard, but possible (I advise founders how to do that all the time).
I'd also caution against "this person needs to be passionate about my idea or we won't" hire them. I see that all the time, too. Look, it's your baby; it's going to be very difficult to get them to love it as much as you do. Figure out what this person wants out of life (their career, whatever) that you can provide that they alone cannot (work from home, presenting/attending conferences, learning new technologies, mentoring, leading a team, education, building their personal brand, whatever). THAT'S how you get them. Constant tending to their needs and giving them opportunities to further their growth is how you KEEP them.
What value are YOU bringing to the table other than an idea and some cash? Those are table stakes now.
Good luck! :D
Is this a unique problem to our industry? In a housing boom do construction people start making their own construction companies instead of working for others?
Yes, they do.
You never know that until hindsight, and the opportunity cost for finding out for yourself, whether a new college grad or an established (financially cushioned) engineer, is historically low.
From what I saw, some individuals regretted that decision because as it turns out, despite some added flexibility, they just wanted to work as a plumber or an electrician. They didn't want to have the added responsibility of being a business owner.
Yeah, see the rise of the rich tradesperson in Australia for an example.
* First off, doing a startup is not just about sitting in a dark room and writing code without a boss. It isn't even mostly about that. Your average engineer has no idea how much non-technical crap there is to do, and consequently has no idea that the things they like to do don't strongly overlap with the set of things they think they'll be doing as a startup founder. It isn't just pizza and coding sprints -- it's about talking to customers and coordinating with other people and marketing and finding photos and making spreadsheets and raising money and bookkeeping and filing idiotic paperwork with bureaucracies and diffusing personality conflicts and a million other things that good developers never think about and don't ever want to do. And if you succeed, your reward is more of that stuff and less coding.
* Second is that you'll work like crazy and have to bear a lot of stress. That's the way it goes. Most people aren't cut out for that lifestyle. Doe-eyed college graduates, especially, haven't ever done a project that lasts more than a semester or two. They have no idea what they're getting into.
* Third, if you don't have a co-founder, and you don't have any experience, you're doomed. Go work for someone else for a while. I know, I know...$FAMOUS_PERSON did it. They're the exception, not the rule. If you're in that situation, there's a litmus test: is your product currently built and exploding in popularity? Then you may be the next Zuckerberg. Otherwise, go work for someone else for a while.
* Fourth, these days, most people confuse "doing a startup" with "making a cool feature". They're not even close to the same thing. I can't tell you the number of resumes I've seen from developers who made a half-baked marketplace website that they called a "startup", then gave up when the users didn't come and they realized that 99.999% of the work was ahead of them. Building the product is the first step, not the last one.
* Fifth, just because it's cheap to rent server space and open-source means that you don't have to write CGI by hand doesn't mean the competitive landscape is easier. In fact, it's harder. For any idea you come up with, there are either 50 sophisticated, me-too competitors, or there will be within 10 minutes of you getting any publicity. The flip side of everything being cheap is that any bozo with a credit card can do it.
...I could go on and on with this. Point is, most developers have this hazy, romantic, idyllic notion of "doing a startup" that bears no resemblance to the actual thing. Communicate this honestly and clearly to someone when they're waffling between taking a job and going off on their own, and you've got chances. After all, anyone who's really ready to do a startup isn't going to be talking to you about a job. They're going to be doing a startup.
I think that notion is actually, more often than not, "doing a lifestyle business." People tend to get confused--I think because they're both talked about so often on HN--and connect the excitement of the startup scene, with the four-hour work-weeks of "hands-off" B2SMB businesses like Patrick McKenzie espouses.
I think, if people took a hard, rational look at their own desires, they might realize they are okay with less excitement and more four-hour work-weeks. You can do hackathons and contribute to OSS in your spare time if you still feel an urge to be speep-deprived ;)
And it is not that difficult for decent developers to create such a life-style business. Certainly, no where near as hard as you suggest creating a start-up is.
Such lifestyle businesses might include a SaaS, a few iOS Apps or a consulting business. I have such as business myself. And I know personally other developers who have done the same.
Lifestyle businesses don't have to be hard. They don't even necessarily require you to speak much to customers (if your products are games in the app store, for example). And you really don't have to work that hard, if you don't want to.
You only have to work hard if you create a business that makes you work hard (ie bet on winning big with dollops of VC cash). Try creating a business that doesn't require you to work hard, and you may - surpise, surprise - find you don't actually have to work that hard.
Actually, that's probably the most naive of the romantic notions of doing a startup. First of all, the things I described apply to businesses, not only VC-backed startups. Just because your company is small doesn't mean you're suddenly immune from talking to customers and dealing with bureaucracy. If anything, you spend more time talking to your customers when the base is small, because everything is so much more precarious.
Second, the number of "lifestyle businesses" that exist as single-founder-tech-guy-and-a-computer are so vanishingly small as to be unicorns. The people who claim to do that are either secretly making most of their money doing consultancy (which is fine, but it ain't a 4-hour work week), or they're in such a bizarre niche that they've built a knowledge and/or distribution moat around their business that is virtually impenetrable, through years of backbreaking work. Your example of "app store" developers is particularly on-point: it's notoriously rare and difficult to find a product that has a sustainable business model in that marketplace.
Law of the universe: if you want something, there are millions of other people out there who want it just as much as you do. Any business opportunity that is simple enough to be achievable by a relatively unskilled single-founder-with-a-computer, yet lucrative enough to support that founder indefinitely with a four-hour work-week, will invariably attract competition from the undifferentiated masses who don't want to work, either. So you're either competing with those people (hard) for a small pie, or you're trying to build a growth business in a large market (hard), or you're failing (hard), or you're getting a good job (hard). There's no free lunch.
The "person" described here in the parent to your first reply:
"Or startups in general. You're competing against the awesome developer doing their own thing."
With regards to that even "awesome" people make foolish choices all the time. It's up to the person trying to recruit the described person to give them, in plain terms, what's involved in doing it all yourself. My guess is that they don't do a particularly good job at this. Nor does the entire startup community either other than to make generalizations about difficulty and how most ideas don't work. But we're talking about the same community that thinks it actually makes sense to pass on Harvard acceptance and do YC.
There is the problem of telling whether there's a market for a given thing before you invest six months or a year building it, so I'm not advocating sinking a whole year without shipping, but there's definitely merit to starting with something that can't be built as a rails app.
Most lifestyle business are full time jobs, just not ones where you have a chance exiting with 20 mil in the bank.
There's nothing stopping people bootstrapping their freelance business into small digital agency if they want to expand.
Small businesses, at least in the UK, do not involve that much bureaucracy. You hire an accountant to deal with that.
And, seriously, you don't need to put back-breaking effort in for years to create a (non-consulting) lifestyle business. I used to work with a developer who coded a niche social network on the train to work each morning. The site now makes him far more than he ever did working as an employee.
There are plenty of other niches where developers can make good money. Competition does not work like you think - it is nowhere near as intense as you seem to think and, regardless, there is room for more than one player even in a niche market, if all you are aiming for is a lifestyle business.
Sure, there is no free lunch, but it ain't anywhere near as hard as you are trying to make out. Other readers, don't let this guy put you off setting up on your own.
I remember reading a case study about two different brands of water filters. One was, on paper, clearly superior (removed things that demonstrably cause illness) but removed a mineral that made water "taste good". The other, inferior filter brand, left that mineral in the water and thus beat taste-tests hands-down.
The study was about the immense marketing challenges that the superior brand had in turning around the perception (as I recall, they had to tweak the filter to enable pass-thru of that mineral, then run taste-test switch ads).
Anyway, the point is the same - yes, it's really really hard to actually get a company off of the ground. But none of that matters if your candidate hasn't tried it once or twice: you've gotta find ways to neutralize that argument.
I like the one where "If you want to leave here after a few years we'll give you xx-thousands of dollars" - because the great work environment, combined with now an inside view of just how hard a startup is - they probably don't get very many folks taking them up on that offer.
This is true and it's great.
Meanwhile, turning your just-booted startup into an actual growing business with payroll, HR, investors, customer support, etc is just as hard as it ever was.
With our recruiting we too have people who pass in order to do their own thing. I wish them the best of luck, but wonder if they really know what they're in for sometimes.
>The cost of booting a startup is trending to zero. 10 years ago you'd need massive capital investment (servers, networking, etc.). I can spin up a Heroku server for free (or a series of AWS for nearly-free). I have super-powerful development environments (Ruby/Rails, Clojure/Lighttable, whatever) that are free or nearly so. Great infrastructure (Postgres, Unicorn, whatever) - free!
>All I need is a product idea and a vision and I can bootstrap my company. I can charge money on day one without needing a business checking account, LLC, and all that.
I wonder, when you have enunciated it this clearly, whether you are able to at the same time entertain the thought that an idea is worthless? (or worth far less than 50% of the business)?
you have just drawn an extremely vibrant photorealistic picture of a developer with everything at his or her disposal, who can bootstrap anything, from nothing.
he or she is just sitting there. "All" he or she needs is a product idea and a vision.
would you say that he or she wins by sitting there doing nothing as opposed to buying into someone else's dream who gives up 50% of it so this person can 'easily' execute on it?
or would you still say that this is a market that shouldn't 'clear', and that the one owning the product vision should try to cobble together PHP, because his equity is worthless, and the one owning the engineering skillset should think what he's missing doesn't have any market value?
thanks.
Every developer can come of with delusional visions, ridiculous sales projections or greedy scamming schemes, but not every business person can develop software.
I think you're omitting a key thing here. You can't do anything without time. Time comes at a cost. If you're building this startup as your day job then that cost is directly monetary, as you will either be living off savings or be supported by someone else. If you're bootstrapping in your part time then your cost is your free time and family time.
I personally love trying to optimize and speed things up. On the flip side, I really hate doing CSS and Javascript front-end things (I can do them, but just prefer not to). Speed/optimization stuff (which I'm still getting better at every day) just feels more quantifiable and is a more interesting problem.
If the writer can open themselves to remote people, they've definitely got a better chance at pulling in some good people to help. But the one caution is against someone who wants to some in and do a rewrite of 90% of the stuff- optimize, don't start over.
I like to gently tear apart the tangled spaghetti code and figure out what data store goes with what process.
One thing I absolutely refuse to do is compromise on tools.
Telling the factory-trained Mercedes-Benz mechanic at the dealer where you bought your $120K SL550 that you want him to use only a hammer and a screwdriver to service the brakes on your car will get you laughed out of the dealership.
By that time, you're having to solve the "hard" problems. That's where a back-end guy shines.
This is where you need the pragmatic developers who you probably wouldn't have hired at the start. They are (relatively) slow and tedious, but the job will be done right. This tends to be a natural flow of from start-up to mature company.
Unfortunately companies rarely make this distinction when perusing candidates. After all, software is software, right?
I tend to find that these are long-term projects that could take 4 to 5 years to get done. You need a different type of person - and definitely the support of management - to make this a reality.
The weak point is there tends to be little interest from management. 'Why do we need to invest in fixing that? It's working already! We need feature [1, 2, 3] first.'
> Is this what it’s supposed to feel like?
Yes, this is exactly what you should feel like if you compete for a limited pool of hipster developers in San Francisco.
I know three different guys who can come in and clean up someone else's shit, but they aren't in San Francisco, and they all currently have jobs, so none of them would come cheap. But if you offer a ton of money to someone with 10 years of experience architecting and deploying web apps with 1M+ users, they will do the boring work of fixing your scalability problems.
If its any comfort this isn't even unique to startups. Every software project I've ever done has felt like this. The list of possible tasks to do always far outpaces the resources on hand to do them.
I figured out the focus and priority part, but that angle, each person, is still an eyeopener.
It's something I've been struggling with, I know what the priorities for the product are, but not everyone can contribute (equally) to those priorities, and I don't want to make them feel like their work is less important.
I think looking at it from this angle will help a lot.
And, if high quality photos are your issue, talk to Pete Warden over at Jetpac. He's wicked smart, friendly, in SF, and deals with high quality travel photos on Jetpac.
Or (And?), talk to AirBnB. They deal with photos, are in SF, and are also YC alums. Don't you all have each other on speed dial?
As a founder, I wish I had your problems. But, I have to say, I also wish I had your level of access to potential solutions and advisors.
My YC interview is on Sunday. Hopefully by Monday we'll have each other on speed dial. :)
I'll do a mock-interview with you to prep-- jason at 42floors
I feel obligated to pass on what I learned:
1) Don't forget what it's like to not have your background in your industry.
2) Be very good at explaining what you do. Succinctly. Clearly. And be able to give that explanation without assuming prior industry knowledge (see point 1).
3) If it takes a long time to explain who your customer is, you're doing it wrong.
4) Don't forget that YC partners are also looking for your potential on demo day.
I've loved working with remote folks. You can hire the best, it's cheaper, there's people that love working remotely and are even more focused and productive because they can work without the typical office distractions.
Experiment with some Location: Anywhere job posts?
This is kind of an insane problem to have, with a clear solution. I'm not sure what it is about startups that makes them think that basic economics don't apply to them?
There's something satisfying about doing things the hard way. If this stuff were easy or fun all the time, it would get boring.
The difficult part is maintaining that drive to do things the hard way. When hard things get harder, and then impossible, its hard not to start to feel depleted. Zen and the Art of Motorcycle Maintenance[1] calls this reservoir of inner strength "gumption" and points out that you have to make an effort to keep the tank full. I see it as a kind of faith, not in God, but in yourself; faith that you can and will overcome whatever insurmountable obstacle you face. I try to keep that tank topped off by running, reading, and, despite how hard it is, taking regular vacations where I step away to disconnect altogether. That way, I can feel anticipation in the face of a challenge rather than fear or despair; anticipation of a journey that won't be easy, but will certainly be rewarding.
[1]http://www.amazon.com/Zen-Art-Motorcycle-Maintenance-Inquiry... - I read this book every 5 years and each time I find something completely new. It's a remarkable work.
People are constantly trying to sweep their problems under the rug, hiding them from customers, investors, employees, and themselves. Smart employees are never fooled by this, and they'll end up viewing leadership as delusional, dishonest, or incompetent.
This guy at least recognizes and identifies the problems (or at least the symptoms of underlying problems). That's something.
The best person for a struggling company to hire is someone who believes they can help solve the challenging problems and will work relentlessly until the issues are resolved.
I think he posted it because sometimes the most helpful thing is knowing that you're not the only one who wakes in the middle of night thinking about payroll and customer acquisition. I think he's wondering if other people have doubts and struggles. And anyone trying to start a company right now would know that as soon as they read it.
So, yes Jason, this is how it's suppose to feel and it's okay that it sucks. Just remember, you're more important than your work.
For the past two years (since I joined), we've all been feeling the same thing. Scaling, running out of disk space, needing that one Product hire terribly, hearing from investors about that one feature we discussed back in Dec 2010 that is still 'a few releases away.'
I have fallen into this trap a few times as the dirextor of product.
However what I've realized, is one thing that helps me sleep at night: Despite feeling like we're losing the race and not making progress, we've overhauled our architecture, revamped our entire consumer and internal software to be much more user friendly, built a strong release heartbeat to crank out one solid feature a week, rebranded the company, and built confidence in our org that people's ideas will be heard.
We've made great progress, and even though there are things that our CEO and investors still want us to build, I'm damn proud of how far we've come. I'm still scared shitless about conpetitors and hitting our goals for the year... And it drives me nuts when I see another company launch something that I'm excited about, but then I look back to our product 2 years ago, and I can't help but smile at how far we've come.
The only advice I can give you (apart from saying thst this is totally normal!) is to continue to focus on what's most important, not most urgent. Sure, many of the fires you described today sound terrible, but what is the #1 most important thing today? Is it revenue? Is it growth?
Once you've identified that, pick the single most significant thing you can do to make an impact, and do it. Then re-evaluate.
If you find yourself fixing the most urgent thing constantly (I.e. servers are slow, investor is calling), you will just run in circles and constantly feel like you're behind and not making progress.
If you as a company can agree on the most important thing at any time and run towards it at 200% velocity, that momentum will always make you feel like you're making forward progress.
Good luck, and feel free to email me (address in my profile) if you have questions or need a pep talk :P
Building with cache: guaranteed added upfront cost, complexity, and time to ship, without knowing if/where caching will serve you best.
Building without cache: Guaranteed upfront savings, faster time to ship, with automatic horizontal scaling as a backstop if the need ever arises, while you work to integrate the cache.
And, remember, databases cache too. Throwing extra RAM and tweaking the DB cache config can also be a viable backstop short-term.
Why add extra complexity into your system (and complexity which I've seen the smartest of engineers get wrong on the invalidation side just by overlooking one small detail) before you know your macro-level bottlenecks and product questions like "how many users will even use this feature"? Additionally caching can mask more serious systemic performance issues like missing database indices and accidental extra round trips to the database.
Better to focus on fundamentals and keep your code simple, then add caching only when it's needed.
You're right, you can get into some serious trouble putting the cart before the horse. But, what gets me in this particular instance, is that 42floors is a service that's been on the market for well over a year. Their core competency, hell, core business, is search, and they still haven't implemented any form of caching.
I can't shake the feeling that caching search results, especially in this scenario, should have been a huge priority.
It seems like too many developers hear the mantra of avoiding "premature optimization" and interpret it as "unnecessary optimization."
Then they end up over a year into their business without having addressed something that should already be an integral part of their architecture.
For an MVC framework like Rails, however, cache is going to be needed much earlier. I'd launch without it but once I got some traction it's one of the first things I'd work on. Since Rails has built in cache support it's pretty easy to setup some basic caching.
Hire remotely. I know right now in CL and BG there are good and not very expensive developers. And they would love to work for you.
I can't recommend IN developers, as they want to climb the corporate ladder more than coding.
And, no, I'm not interested, I'm in CO and I don't care about Ruby. The slowest framework I'm contemplating right now is Node.js, the other two are written in Lua and C++.
Quick SEO nitpick (and one more #ToDo item for you ;)
On bottom of home page, you have direct links to City/Neighborhood listings with relevant anchor text but all target pages (Search results) have just the title "Office Space Search" I would make them "<City/Neighborhood>+Office Spaces"
As far as 42Floors, from the outside it certainly seems like they're killing it. I've been keeping my eye on them for a while, and have been impressed by both their app (a likeness can be drawn to Lovely in the residential space - both are awesome) and by how genuine they seem about taking a bunch of awesome people and having a crack at improving a massive outdated industry. If I thought I was a good match [I'm a PC-loving C# fan ;-)] I'd definitely consider working here.
Part of hiring is understanding how different people respond to this sort of stress. For me, I really prefer this sort of off-the-record honesty. I know a start-up is challenging, and a failure to acknowledge a reality that I know exists is a huge turnoff. But I can definitely imagine that some hires would find this scary and would find a startup that seems much more "perfect." You attract who you want to attract.
I've come to accept that is a perennial feeling if you start a company in the valley. If you aren't one of the bright shining stars like DropBox or Facebook, you can't help but wonder how you could be.
I think that feeling might still nag Zuckerberg a little bit too, and it's even that feeling that helps make decisions like "we need to buy Instagram right now for a cool bill."
It's not all bad to want a bit more. Greed is good as they say.
All the descriptions on the left are about coding, and yet 5/7 open jobs have nothing to do with programming at all.
I've actually started to notice this a lot; companies focus on engineering to the exclusion of other sections.
I know, he's having engineering problems. But he's also having physical issues and clearly problems with the business plan and expansion model.
In this specific case there doesn't seem to be a working triage model. Find the things that are simplest to fix and do them first. Someone needs to keep organized and make sure the problems are being worked on in the right order and keep everyone motivated, without losing any ground in the day to day operations of the company.
While the page looks great to me there seems to be a lot of unprofessional text there. For me personally that's a red flag. I have no idea if that's an indicator of anything but unless I have a close friend who works there who can tell me otherwise I don't know if I'd trust a part of my career to a company that comes across the way it is portrayed on that page.
- The grey-on-grey of the overview map is an odd choice - why not use the green for the markers?
- Listings without a price should either be removable, or otherwise marked. Feels kinda scammy, and just introduces unnecessary friction
- Google is probably a partner for the listings images, but is it also a requirement for you to show a "y we have no imagery f" image with Google logos?
So yes, it's supposed to feel like that.
Not currently looking for a job, but if I do find myself looking in the future, 42floors will be near the top of my list.
For the record I develop my startup on a shitty 5 year old Compaq that dual boots with Vista and Ubuntu 10.4, and Ruby/Rails/Gems all work great!
Yeah, that's pretty normal. Growth doesn't make things easier. Just harder.