The author achieved a big speed increase with a faster disk, more RAM, adding indexes, and rewriting slow queries. The relevant skillset is "knowing a thing or two about databases", not "full-stack programmer".
Incorrect, the point about being a full stack programmer is knowing where to look. You only need to know about databases to FIX the problem but you need the full stack to FIND the problem. If you knew a little about assembler then maybe you'd waste a lot of time rewriting code. Instead of fixing the db. Full stack programmers are valuable for their knowledge that is an inch deep but a mile wide. Any fix a full stack…
Just Make It Faster
11–20 of 29 posts
Re: Just Make It Faster
#12Am I wrong in thinking that most technical founders are full stack developers?
Re: Just Make It Faster
#13Re: Just Make It Faster
#14There are non -full-stack programmers? That's a scary thought. I have trouble imagining what sort of mind could be able to write code, but only one kind of code.
There are really two types of coders: the scrappy Ill-figure-it-out-as-I-go-along full-stack coders, and the Im-working-9-to-5-and-have-50-certifications coders.
Of course I exaggerate a bit, but businesses like to put people in little boxes. That means that the vast majority of business programmers (which are most of them) are working in one specialized area. They can write code, but don't know how the database works. Or they can make a kick-ass website, but have no idea how the back-end works. They can make the best library you ever saw, but they have no people skills. It's very common.
In fact, "full stack" to me means making things people want, which includes a lot more than just bits and bytes. It starts with words coming out of somebody's mouth and ends with them being happy. Lots of little steps in between.
If anything, the generalist is a dying breed.
Re: Just Make It Faster
#15Earlier quoted context omitted.
Incorrect, the point about being a full stack programmer is knowing where to look. You only need to know about databases to FIX the problem but you need the full stack to FIND the problem. If you knew a little about assembler then maybe you'd waste a lot of time rewriting code. Instead of fixing the db. Full stack programmers are valuable for their knowledge that is an inch deep but a mile wide. Any fix a full stack…
A "full stack programmer" will be able to look at the whole and see what should be done differently, but a database performance person (not a generic DBA) will be bring a much deeper knowledge of that one area (just as a GPU programmer will know more about GPU optimization then the application developer). Sometimes you need that specialist to get you over the hump. An "inch deep and mile wide" sort of knowledge will…
Knowing enough to not do bone-headed things is what gets you acceptable performance. And, it gives you the ability to know where your critical paths are, and to hand those critical paths off to the most expert person in the room.
Re: Just Make It Faster
#16Earlier quoted context omitted.
Incorrect, the point about being a full stack programmer is knowing where to look. You only need to know about databases to FIX the problem but you need the full stack to FIND the problem. If you knew a little about assembler then maybe you'd waste a lot of time rewriting code. Instead of fixing the db. Full stack programmers are valuable for their knowledge that is an inch deep but a mile wide. Any fix a full stack…
A "full stack programmer" will be able to look at the whole and see what should be done differently, but a database performance person (not a generic DBA) will be bring a much deeper knowledge of that one area (just as a GPU programmer will know more about GPU optimization then the application developer). Sometimes you need that specialist to get you over the hump. An "inch deep and mile wide" sort of knowledge will…
Consider, too, that expert-level knowledge of the sort a DB performance person will bring is often (rightly or wrongly) more expensive than that of a generalist. Maybe the expert can bring the runtimes down by a further factor of 100 (to 6 seconds), but, at that point, you have to seriously question whether it's worth it. They might be able to get another factor of 100 and get the runtime for a single analysis down to 6 seconds, but at that point, you have to start seriously questioning whether it would be worthwhile to do it. In the article's example, the analysis step could only be run twice in a week because it took 24 hours to execute (and, then, presumably the other 3 days of the week were spent doing something with the results). Since it might take a full day and a half of work to actually do anything with the results, getting the time to run an analysis down from 10 minutes to 6 seconds clearly isn't worth it. If it were me, I might have even stopped once I got the runtime down below an hour, because then it could be run over a lunch break or during a meeting or something.
I suppose my point is basically equivalent to Knuth's quip about premature optimization. In this particular example, there seems to be no reason to optimize further, because the system is probably 95% as useful as it can possibly get. Eliminating 47.8 hours of runtime per week lets you squeeze in one more run per week, but cutting that runtime down to 12 seconds per week (which is essentially 0) would seem to have a very small marginal gain.
Re: Just Make It Faster
#17Good post. Don't forget to pay your full-stack engineer with a full-stack money. Don't be cheap on them mkay? On the other hand, I'd like to have a full-stack CEO as well. Not just someone who can only say "make it work", "make it faster", "make me some money".
I'm curious to know what do you think is a reasonable wage in SF for a "full-stack" developer. Feel free to break it down by years of experience. And by full-stack CEO, you mean someone who understands all the aspects of the business and isn't a pandering, disconnected, figure-head? In a lot of companies they'd be called the operating CEO, or in more cases, the COO/president.
Am I exaggerate in terms of salary? probably... these days, who can learn every single technology (from hardware to software) under the sun?
WebServices, REST, ORM, DB, data modeling, data warehouse, virtualization, security, capacity planning, storage, performance tuning, backup and recovery, test automation (you do test your own code right? not just throwing shitty code to QA right?), build and deployment strategy.
[No, NoSQL doesn't count]
Re: Just Make It Faster
#18Am I wrong in thinking that most technical founders are full stack developers?
Re: Just Make It Faster
#19Re: Just Make It Faster
#20Am I wrong in thinking that most technical founders are full stack developers?
In my case at least I'm "full stack" but as soon as it's feasible it'll be someone's job to do what I've done a whole lot better.
Until then though I'm full stack because I'm intimate with my entire platform cause I wrote it of course, not because I have some deep knowledge of everything I'm doing... most of what I'm learning is how not to do things.