10x more selective

There's this common notion of "10x programmers" who are 10x more productive than the average programmer. We can't quantify productivity so we don't know if it's true. But definitely, enough people appear unusually productive to sustain the "10x programmer" notion.

How do they do it?

People often assume that 10x more productivity results from 10x more aptitude or 10x more knowledge. I don't think so. Now I'm not saying aptitude and knowledge don't help. But what I've noticed over the years is that the number one factor is 10x more selectivity. The trick is to consistently avoid shit work.

And by shit work, I don't necessarily mean "intellectually unrewarding". Rather, the definition of shit work is that its output goes down the toilet.

I've done quite a lot of shit work myself, especially when I was inexperienced and gullible. (One of the big advantages of experience is that one becomes less gullible that way – which more than compensates for much of the school knowledge having faded from memory.)

Let me supply you with a textbook example of hard, stimulating, down-the-toilet-going work: my decade-old adventures with fixed point.

You know what "fixed point arithmetic" is? I'll tell you. It's when you work with integers and pretend they're fractions, by implicitly assuming that your integer x actually represents x/2^N for some value of N.

So to add two numbers, you just do x+y. To multiply, you need to do x*y>>N, because plain x*y would represent x*y/2^2N, right? You also need to be careful so that this shit doesn't overflow, deal with different Ns in the same expression, etc.

Now in the early noughties, I was porting software to an in-house chip which was under development. It wasn't supposed to have hardware floating point units – "we'll do everything in fixed point".

Here's a selection of things that I did:

  • There was a half-assed C++ template class called InteliFixed<N> (there still is; I kid you not). I put a lot of effort into making it, erm, full-assed (what's the opposite of half-assed?) This included things like making operator+ commutative when it gets two fixed point numbers of different types (what's the type of the result?); making sure the dreadful inline assembly implementing 64-bit intermediate multiplications inlines well; etc. etc.
  • My boss told me to keep two versions of the code – one using floating point, for the noble algorithm developers, and one using fixed point, for us grunt workers fiddling with production code. So I manually kept the two in sync.
  • My boss also told me to think of a way to run some of the code in float, some not, to help find precision bugs. So I wrote a heuristic C++ parser that automatically merged the two versions into one. It took some functions from the "float" version and others from the "fixed" version, based on a header-file-like input telling it what should come from which version.
  • Of course this merged shit would not run or even compile just like that, would it? So I implemented macros where you'd pass to functions, instead of vector<float>&, a REFERENCE(vector<float>), and a horrendous bulk of code making this work at runtime when you actually passed a vector<InteliFixed> (which the code inside the function then tried to treat as a vector<float>.)
  • And apart from all that meta-programming, there was the programming itself of course. For example, solving 5×5 equation systems to fit polynomials to noisy data points, in fixed point. I managed to get this to work using hideous normalization tricks and assembly code using something like 96 bits of integer precision. My code even worked better than single-precision floating point without normalization! Yay!

For months and months, I worked as hard as ever, cranking out as much complicated, working code as ever.

And here's what I should have done:

  • Convince management to put the damned hardware floating point unit into the damned chip. It didn't cost that many square millimeters of silicon – I should have insisted on finding out how many. (FPUs were added in the next chip generation.)
  • Failing that, lay my hands on the chip simulator, measure the cost of floating point emulation, and use it wherever it was affordable. (This is what we ended up doing in many places.)
  • Tell my boss that maintaining two versions in sync like he wanted isn't going to work – they're going to diverge completely, so that no tool in hell will be able to partially merge them and run the result. (Of course this is exactly what happened.)

Why did this end up in many months of shit work instead of doing the right thing? Because I didn't know what's what, because I didn't think I could argue with my management, and because the work was challenging and interesting. It then promptly went down the toilet.

The hardest part of "managing" these 10x folks – people widely known as extremely productive – is actually convincing them to work on something. (The rest of managing them tends to be easy – they know what's what; once they decide to do something, it's done.)

You'd expect the opposite, kind of, right? I mean if you're so productive, why do you care? You work quickly; the worst thing that happens is, nothing comes out of it – then you'll just do the next thing quickly, right? I mean it's the slow, less productive folks that ought to be picky – they're slower and so get less shots at new stuff to work on to begin with, right?

But that's the optical illusion at work: the more productive folks aren't that much quicker – not 10x quicker. The reason they appear 10x quicker is that almost nothing they do is thrown away – unlike a whole lot of stuff that other people do.

And you don't count that thrown-away stuff as productivity. You think of a person as "the guy who did X" where X was famously useful – and forget all the Ys which weren't that useful, despite the effort and talent going into those Ys. Even if something else was "at fault", like the manager, or the timing, or whatever.

To pick famous examples, you remember Ken Thompson for C and Unix – but not for Plan 9, not really, and not for Go, not yet – on the contrary, Go gets your attention because it's a language by those Unix guys. You remember Linus Torvalds even though Linux is a Unix clone and git is a BitKeeper clone – in fact because they're clones of successful products which therefore had great chances to succeed due to good timing.

The first thing you care about is not how original something is or how hard it was to write or how good it is along any dimension: you care about its uses.

The 10x programmer will typically fight very hard to not work on something that is likely enough to not get used.

One of these wise guys asked me the other day about checkedthreads which I've just finished, "so is anyone using that?" with that trademark irony. I said I didn't know; there was a comment on HN saying that maybe someone will give it a try.

I mean it's a great thing; it's going to find all of your threading bugs, basically. But it's not a drop-in replacement for pthreads or such, you need to write the code using its interfaces – nice, simple interfaces, but not the ones you're already using. So there's a good chance few people will bother; whereas Helgrind or the thread sanitizer, which have tons of false negatives and false positives, at least work with the interfaces that people use today.

Why did I bother then? Because the first version took an afternoon to write (that was before I decided I want to have parallel nested loops and stuff), and I figured I had a chance because I'd blog about it (as I do, for example, right now). If I wrote a few posts explaining how you could actually hunt down bugs in old-school shared-memory parallel C code even easier than with Rust/Go/Erlang, maybe people would notice.

But there's already too much chances of a flop here for most of the 10x crowd I personally know to bother trying. Even though we use something like checkedthreads internally and it's a runaway success. In fact the ironic question came from the guy who put a lot of work in that internal version – because internally, it was very likely to be used.

See? Not working on potential flops – that's productivity.

How to pick what to work on? There are a lot of things one can look at:

  • Is there an alternative already available? How bad is it? If it's passable, then don't do it – it's hard to improve on a good thing and even harder to convince that improvements are worth the switch.
  • How "optional" is this thing? Will nothing work without it, or is it a bell/whistle type of thing that can easily go unnoticed?
  • How much work do users need to put in to get benefits? Does it work with their existing code or data? Do they need to learn new tricks or can they keep working as usual?
  • How many people must know about the thing for it to get distributed, let alone used? Will users mostly run the code unknowingly because it gets bundled together with code already distributed to them, or do they need to actively install something? (Getting the feature automatically and then having to learn things in order to use it is often better than having to install something and then working as usual. Think of how many people end up using a new Excel feature vs how many people use software running backups in the background.)
  • How much code to deliver how much value? Optimizing the hell out of a small kernel doing mpeg decompression sounds better than going over a million lines of code to get a 1.2x overall speed-up (even though the latter may be worth it by itself; it just necessarily requires 10x the programmers, not one "10x programmer").
  • Does it have teeth?If users do something wrong (or "wrong"), does it silently become useless to them (like static code analysis when it no longer understands a program), or does it halt their progress until they fix the error (like a bounds-checked array)?

You could easily expand this list; the basic underlying question is, what are the chances of me finishing this thing and then it being actually used? This applies recursively to every feature, sub-feature and line of code: does it contribute to the larger thing being used? And is there something else I could do with the time that would contribute more?

Of course it's more complicated than that; some useful things are held in higher regard than others for various reasons. Which is where Richard Stallman enters and requires us to call Linux "GNU/Linux" because GNU provided much of the original userspace stuff. And while I'm not going to call it "Gah-noo Lee-nux", there's sadly some merit to the argument, in the sense that yeah, unfortunately some hard, important work is less noticed than other hard, important work.

But how fair things are is beside the point. After all, it's not like 10x the perceived productivity is very likely to give you 10x the compensation. So there's not a whole lot of reasons to "cheat" and appear more productive than you are. The main reason to be productive is because there's fire raging up one's arse, more than any tangible benefit.

The point I do want to make is, to get more done, you don't need to succeed more quickly (although that helps) as much as you need to fail less often. And not all failures are due to lack of knowledge or skill; most of them are due to quitting before something is actually usable – or due to there being few chances for it to be used in the first place.

So I believe, having authored a lot of code that went down the toilet, that you don't get productive by working as much as by not working – not on stuff that is likely to get thrown away.

131 comments ↓

#1 GD on 04.19.13 at 10:27 am

Were you referring to yours truly in the article above? I guess you did. I just want to debate some of the thesis above. Yes, being selective/avoiding failures is important, but also having the courage to dare and fail in something is necessary. And yes, I think the 10x is certainly also an aptitude/knowledge and mind-set thing. You need to avoid wasted effort, that is for sure. Indeed I guess the 10x man will just write at the first try what an 'average' one will take 10 versions to achieve if at all …

I am not sure the 10x is also the correct metric, as you said, productivity can not be measured. The more important contributions are sometimes just things that would not have existed/thought of at all by the 1x / average person.

I am also not sure your personal example above was in place, as I do think you are in the 10x category, and apparently you did produce quite a lot of non trivial code/work during that time too. With hindsight you know it was wasted/doomed to fail effort, but that's because you've become more experienced over the years, like all of us …

#2 Yossi Kreinin on 04.19.13 at 10:46 am

Well if I accept your compliment then my example was surely in place, because avoiding wasted effort is much of the difference between then and now. More generally nobody can change innate aptitude (to the extent that aptitude is innate…), but you can change your attitude.

So yeah, there's more to it and I admitted that; I focus on this one thing because it contributes a lot and it can be changed. What kind of things you come up with might be innate or very "person-specific" somehow – I don't know; I know for sure that there are people with seemingly similar aptitudes, working on roughly equally hard stuff, except that one's stuff gets used and the other's much less.

Regarding courage to fail – sure, when it's hard and one can fail through the "fault" of one's own; but less so when circumstantially the thing looks like having poor chances even if you do a perfect job. In particular, I very easily see you taking the first type of risk; the second type, much less likely, not?

#3 Karl McFiff on 04.19.13 at 7:08 pm

That is why the most productive programmers use template based code generators. The programmer just has to click the boxes to specify the features needed and then finally click the Generate Code button and the generator creates the code for you.

All you need to do is connect the output from one code generator to the input from another.

#4 Yossi Kreinin on 04.19.13 at 11:21 pm

You ought to be kidding.

#5 John M on 04.19.13 at 11:26 pm

From my experience – a lot of coders end up writing 10x more code to do the same work than the 10x coders.

Often because they don't seem to step back and understand things and just throw more code at it until it "works"

#6 Michael Moser on 04.19.13 at 11:29 pm

Your notion of success/measure of selectivity will vary depending on the context of your work and on your position within an organization. I see the following contexts for programming work:
 
1) employee in a shop that works on 'product'
2) employee in a shop that works on 'site/service' / 'customer project'
3) independent consultant
4) work on open source project

working on 'products' values more such things as 'completeness' at the expense of 'efficiency'.
Working on 'service' your work must reasonably fulfill the customers use cases; most often at the expense of 'completeness'; As a consultant you might try to minimize the effort that has to be put into a task, while  completing the customers spec.
 
So what ever you do, you can be as selective as the realities around you allow you to be. Most freedom
you have with your own pet projects, that is; but how to achieve some wider impact so far has been beyond me ;-)
 
 

#7 Yossi Kreinin on 04.20.13 at 12:31 am

@John M: a part of it is seeing code as a good thing, so that more must be better; let's add this and let's add that. A special case of gladly doing needless work under the assumption that hard work is always a good thing.

@Michael Moser: I think you always want to minimize the effort you put into a task (including not doing it altogether because it can be avoided). It's not different for consultants and full-time employees, except if the employee has a manager that insists on getting needless work done, which is perhaps more likely than someone hiring a consultant and paying his own money insisting on getting needless work done.

#8 Assaf Lavie on 04.20.13 at 2:10 am

An interesting, thought provoking post.

I think this has to do with real programming craftsmanship being more like an art than a science. A seasoned programmer will know, almost intuitively, what efforts are worth pursuing. What doesn't need to be reinvented. What can be tolerated by "it works.." and what has to be avoided at all costs. The best artist isn't the one who paints at the greatest speed or with the highest accuracy – he's the one that does the most meaningful work.

Being 10x productive, I agree, has less to do with the speed at which a given task can be accomplished, and more with _which_ tasks get accomplished.
This, btw, is exactly the reason why every single software project does't finish on time. People love to focus on how _fast_ things get done (estimates, performance) and they neglect the fact that _what_ actually gets done is the tricky part. All that stuff you didn't realize you were going to do as part of the project, and all the stuff you ended up doing that ultimately went to the trash bin. That's why being truly productive often just means being more careful, considering things a little longer, planning ahead a bit more before diving in.

#9 Yossi Kreinin on 04.20.13 at 3:07 am

I think "project" is a red flag, by itself; I can tell as someone who underwent project management training by the Project Management Institute, qualifying me to attempt to pass an exam and become a certified Project Management Professional – PMP ™…

A project is basically something one-off with a rather precise ROI estimation, and that ROI is not a whole lot of different from what you'd get by lending money to someone else. So with "projects" if you're a bit late then you're probably losing money.

The decent thing to work on is products, where there's no "final" delivery but rather things are incrementally improved, and where the thing might be a big-enough hit to more than cover very large development expenses.

#10 Marcel Popescu on 04.22.13 at 6:22 am

I have to agree with John. In one of the projects I'm working on, to use a single example, I have a 68 line udf in the database that does the equivalent of this:

SELECT * FROM [table]

Seriously. It has comments, with nice stars and well aligned fields that nobody will ever care about. It has beautifully aligned field names. It has… stuff.

(And no, we don't have a DBA. We programmers have full access to everything we want in the project – we can redesign both the code and the database at will. For some reason, this programmer thought a 68-line UDF was just what was needed for this.)

#11 Marcel Popescu on 04.22.13 at 6:36 am

I just remembered another example – I can't even decide if it's worse than the previous one. I've seen a programmer write a 3-page switch to convert a string to its Enum equivalent (I think it was a list of country codes). I can understand not knowing about Enum.Parse, but I can't for the life of me understand *not asking*. After you write the same thing for the 10th time, shouldn't you figure out that there has to be a better way to do this?

#12 Yossi Kreinin on 04.22.13 at 12:07 pm

I saw a look-up table where table[i] gave you 1<

#13 Yossi Kreinin on 04.22.13 at 12:08 pm

…table[i] gave you 1<<i, I meant to say but WordPress wouldn't let me get away so easily.

#14 Bob on 04.24.13 at 5:43 am

I do think selectivity and negotiation have a huge impact in productivity. Being able to spot a rabbit hole before you start. Offer alternatives and give the customer the 80% solution that still solves their problem. But that usually comes with good logic skills and falling in the rabbit holes enough to know when they're coming.

#15 Albert1 on 04.26.13 at 1:27 am

Oh, don't mind me: I was "finally" studying the new C++11 features when I suddenly felt the need to scream but I didn't want to alert other people – then, after an epiphany(?), I found myself here…

#16 Yossi Kreinin on 04.26.13 at 1:58 am

I actually suggest to everyone to upgrade to C++11 from C++98/03; it sure has a ton of horrible stuff in it, but a few things making it worth the trouble – notably auto, "smart for", lambdas and initializer lists.

#17 Yuriy Zhilovets on 05.01.13 at 3:22 am

Russian translation: http://habrahabr.ru/post/178553/

#18 Yossi Kreinin on 05.01.13 at 11:45 am

I'd gladly write a Russian version myself if you asked for it, at least as a first draft :) While my Russian is admittedly not very well developed when it comes to programming terminology/slang (I say that programs "run", while Russians say that they "walk"/"go", etc.), I think it could come out nicely if edited by a true Russian programmer from Russia.

#19 Jacob on 05.02.13 at 9:47 am

@gd Failure and "failing fast" to iterate toward success are not quite the same thing. The later might better be called 'testing', 'iteration' or my favorite Succession. See: https://www.facebook.com/notes/facebook-engineering/software-design-glossary/10150309412413920

I've found some of the most successful engineers I've known to employ both your suggestions and Yossi's. Part of being good and not doing shit work – is figuring out what is shit work. This is hard, and beyond experience, the best way to do that is paradoxically doing shit work and failing fast. But the key here is to fail fast and and to use data to guide decisions. Being smart about choosing to do the easy things that you have some evidence of having the most impact and then iterating or switching manages the risk (and cost) of failure which means you may just end up achieving success.

#20 Yuriy Zhilovets on 05.06.13 at 2:28 am

You have such a colorful English that I cannot resist temptation to translate it myself.
For the next articles, I will gladly edit your drafts in Russian trying as much as I can to preserve your style

#21 Michael Moser on 05.19.13 at 11:05 pm

Hi Yossi,

Did you implement your ideas in practice? What where the results? I long for a sequel to this article.

#22 Yossi Kreinin on 05.20.13 at 12:48 am

Well, I don't know – do you expect me to say that I'm now 10x more productive than before or than someone else?.. Yeah, I think I got less gullible over the years, I think it helped… But others should be the judges…

#23 Unproductive Programmer on 06.18.13 at 9:48 am

Although I am still inexperienced, I thought that I should add my two cents. Interning at a company at the moment, I feel that I am definitely doing "crap work", (but difficult much like your example).

However, reading this article reminded me of a fellow programmer who never re-invents the wheel and gets a lot done. The only problem is that he has the creativity of a plank.

I think that solving difficult problems, and solving problems which have yet to be uncovered (these are usually revolutionary) requires a lot of useless work before an epiphany.

#24 Yossi Kreinin on 06.19.13 at 12:18 am

Well, it depends on context; an experienced programmer easily tempted into doing shit work or not protesting when ordered to do it has a real weakness, someone just starting out is a bit different.

There is in fact some tension between efficiency and creativity, but efficiency can also be a force multiplier, to some extent, if it makes you focus on those hard things which actually matter.

#25 joseph on 09.18.13 at 12:07 am

I'm a 1x, and I think it's at least in part due to the fact that my main motivation is to have fun rather than to get shit done. It's fun to learn a new language, or write a new tool, or read this blog, and it can kind of be considered productive, so it gets rationalized. I'm hoping that at some point I'll reach a level of maturity where my priorities will change.

#26 Yossi Kreinin on 09.18.13 at 7:29 am

Well, I think at some point getting shit done becomes the fun; as in, the first several languages arouse more curiosity than the next, etc., and at some point it's not as much fun to learn a new language as it is to get this particular piece of shit done already, and in fact people start to seek ways to learn as little new info as necessary just because so much of the info they learned in the past turned out perfectly useless either immediately or in the long run.

#27 paladins aimbot on 05.15.19 at 8:29 pm

Respect to website author , some wonderful entropy.

#28 fortnite aimbot download on 05.16.19 at 1:24 pm

I have interest in this, cheers.

#29 fortnite aimbot download on 05.16.19 at 5:18 pm

I consider something really special in this site.

#30 nonsensediamond on 05.17.19 at 7:34 am

I like this site because so much useful stuff on here : D.

#31 Alonso Rauhecker on 05.17.19 at 10:02 am

yosefk.com does it yet again! Quite a thoughtful site and a good post. Thanks!

#32 fallout 76 cheats on 05.17.19 at 10:58 am

Yeah bookmaking this wasn’t a risky decision outstanding post! .

#33 red dead redemption 2 digital key resale on 05.17.19 at 4:07 pm

I consider something really special in this site.

#34 redline v3.0 on 05.17.19 at 7:12 pm

bing took me here. Thanks!

#35 chaturbate hack cheat engine 2018 on 05.18.19 at 8:38 am

I consider something really special in this site.

#36 led ryggsäck on 05.18.19 at 3:29 pm

I was looking at some of your articles on this site and I believe this internet site is really instructive! Keep on posting .

#37 mining simulator codes 2019 on 05.19.19 at 7:31 am

Ha, here from google, this is what i was browsing for.

#38 smutstone on 05.20.19 at 12:10 pm

I’m impressed, I have to admit. Genuinely rarely should i encounter a weblog that’s both educative and entertaining, and let me tell you, you may have hit the nail about the head. Your idea is outstanding; the problem is an element that insufficient persons are speaking intelligently about. I am delighted we came across this during my look for something with this.

#39 redline v3.0 on 05.21.19 at 7:42 am

Hey, yahoo lead me here, keep up great work.

#40 free fire hack version unlimited diamond on 05.21.19 at 5:00 pm

I am not rattling great with English but I get hold this really easygoing to read .

#41 nonsense diamond on 05.22.19 at 6:50 pm

Enjoyed reading through this, very good stuff, thankyou .

#42 krunker hacks on 05.23.19 at 7:09 am

Enjoyed examining this, very good stuff, thanks .

#43 bitcoin adder v.1.3.00 free download on 05.23.19 at 10:49 am

Respect to website author , some wonderful entropy.

#44 vn hax on 05.23.19 at 7:32 pm

I must say, as a lot as I enjoyed reading what you had to say, I couldnt help but lose interest after a while.

#45 eternity.cc v9 on 05.24.19 at 8:20 am

Just wanna input on few general things, The website layout is perfect, the articles is very superb : D.

#46 ispoofer pogo activate seriale on 05.24.19 at 6:52 pm

This is good. Thanks!

#47 cheats for hempire game on 05.26.19 at 6:55 am

Good Morning, glad that i saw on this in bing. Thanks!

#48 iobit uninstaller 7.5 key on 05.26.19 at 9:40 am

I like this page, some useful stuff on here : D.

#49 smart defrag 6.2 serial key on 05.26.19 at 4:07 pm

Some truly good article on this web site , appreciate it for contribution.

#50 resetter epson l1110 on 05.26.19 at 6:54 pm

Thanks for this site. I definitely agree with what you are saying.

#51 sims 4 seasons free code on 05.27.19 at 8:12 am

I have interest in this, danke.

#52 rust hacks on 05.27.19 at 8:38 pm

Morning, i really think i will be back to your site

#53 strucid hacks on 05.28.19 at 10:56 am

Appreciate it for this howling post, I am glad I observed this internet site on yahoo.

#54 how to get help in windows 10 on 05.28.19 at 6:15 pm

Howdy this is somewhat of off topic but I was wanting to know
if blogs use WYSIWYG editors or if you have to manually code with HTML.
I'm starting a blog soon but have no coding skills so I wanted to
get advice from someone with experience. Any help would be greatly appreciated!

#55 expressvpn key on 05.28.19 at 7:58 pm

I conceive you have mentioned some very interesting details , appreciate it for the post.

#56 gamefly free trial on 05.29.19 at 8:17 am

Every weekend i used to go to see this site, because i wish for enjoyment, for the
reason that this this web site conations truly pleasant funny information too.

#57 ispoofer activation key on 05.29.19 at 9:16 am

I conceive you have mentioned some very interesting details , appreciate it for the post.

#58 aimbot free download fortnite on 05.29.19 at 1:16 pm

Enjoyed reading through this, very good stuff, thankyou .

#59 gamefly free trial on 05.29.19 at 2:27 pm

If some one needs to be updated with most recent technologies
then he must be pay a quick visit this website and be up to date all the time.

#60 redline v3.0 on 05.29.19 at 5:41 pm

Respect to website author , some wonderful entropy.

#61 vn hax on 05.30.19 at 6:58 am

I consider something really special in this site.

#62 gamefly free trial on 05.30.19 at 6:45 pm

Helpful information. Fortunate me I found your site unintentionally, and I'm surprised why this
accident didn't happened in advance! I bookmarked it.

#63 xbox one mods free download on 05.31.19 at 1:30 pm

I like this website its a master peace ! Glad I found this on google .

#64 gamefly free trial on 05.31.19 at 3:18 pm

Heya i am for the first time here. I found this board and I in finding It really helpful & it helped me out a lot.

I am hoping to give one thing back and aid others such as you aided me.

#65 fortnite aimbot download on 05.31.19 at 4:13 pm

I like this page, because so much useful stuff on here : D.

#66 gamefly free trial on 06.01.19 at 5:07 pm

Quality articles or reviews is the key to invite the people to pay a
quick visit the site, that's what this web page is providing.

#67 mpl pro on 06.01.19 at 6:56 pm

I simply must tell you that you have an excellent and unique post that I kinda enjoyed reading.

#68 gamefly free trial on 06.02.19 at 3:29 am

I was suggested this web site through my cousin. I'm not
certain whether or not this submit is written by him as no
one else realize such distinctive approximately my difficulty.
You're incredible! Thanks!

#69 hacks counter blox script on 06.02.19 at 7:06 am

Hello, here from baidu, me enjoyng this, I come back again.

#70 krunker hacks on 06.03.19 at 10:55 am

I conceive this web site holds some real superb information for everyone : D.

#71 gamefly free trial on 06.04.19 at 3:33 am

Hello, all the time i used to check webpage posts here in the early hours in the daylight, as i enjoy to learn more and
more.

#72 gamefly free trial on 06.04.19 at 2:56 pm

It's not my first time to pay a visit this web site, i am visiting this web page dailly and obtain nice information from here daily.

#73 gamefly free trial on 06.04.19 at 6:19 pm

Write more, thats all I have to say. Literally, it seems
as though you relied on the video to make your point.
You definitely know what youre talking about, why waste your intelligence on just posting videos to your blog when you could
be giving us something informative to read?

#74 gamefly free trial on 06.06.19 at 12:35 am

I really love your site.. Pleasant colors & theme.
Did you develop this website yourself? Please reply back
as I'm hoping to create my own personal blog and want to know where
you got this from or exactly what the theme is called.
Cheers!

#75 gamefly free trial on 06.07.19 at 12:41 am

It's going to be ending of mine day, except before finish I am reading this enormous paragraph to improve my know-how.

#76 Jerold Chubicks on 06.08.19 at 12:21 am

6/7/2019 Like yosefk.com– very user-friendly and a lot of stuff to see!

#77 playstation 4 games list 2016 on 06.08.19 at 2:57 pm

Thanks , I've recently been looking for info about this topic for a while and yours is the best I've came upon so far.
But, what about the bottom line? Are you sure in regards to
the source?

#78 ps4 best games ever made 2019 on 06.12.19 at 2:53 pm

Outstanding quest there. What occurred after? Thanks!

#79 Magnolia Winningham on 06.12.19 at 7:46 pm

Love the website– very informative and lots to see!

#80 quest bars cheap on 06.15.19 at 2:09 am

You actually make it appear really easy together with
your presentation but I to find this topic to be actually something which I think I would never understand.
It kind of feels too complicated and extremely vast for me.
I'm having a look ahead to your subsequent post, I'll try to get the hold of it!

#81 krunker aimbot on 06.17.19 at 12:42 pm

very nice post, i actually enjoyed this web site, carry on it

#82 http://tinyurl.com/ on 06.18.19 at 2:49 am

Hey there just wanted to give you a quick heads up and let you know a few
of the images aren't loading properly. I'm not sure
why but I think its a linking issue. I've tried it in two different browsers and both show the same
results.

#83 proxo key generator on 06.19.19 at 2:04 pm

I must say, as a lot as I enjoyed reading what you had to say, I couldnt help but lose interest after a while.

#84 vn hax on 06.20.19 at 10:37 pm

stays on topic and states valid points. Thank you.

#85 nonsense diamond on 06.21.19 at 11:42 am

I must say, as a lot as I enjoyed reading what you had to say, I couldnt help but lose interest after a while.

#86 badoo superpowers free on 06.23.19 at 9:00 pm

very cool post, i actually love this web site, carry on it

#87 gx tool pro apk download on 06.24.19 at 6:56 pm

You got yourself a new follower.

#88 geometry dash 2.11 download pc on 06.25.19 at 11:39 pm

Enjoyed examining this, very good stuff, thanks .

#89 skisploit on 06.26.19 at 10:07 am

You got yourself a new follower.

#90 ispoofer key on 06.27.19 at 9:09 am

I must say got into this post. I found it to be interesting and loaded with unique points of interest.

#91 synapse x serial key on 06.28.19 at 12:10 am

I dugg some of you post as I thought they were very beneficial invaluable

#92 strucid hacks on 06.28.19 at 11:06 am

Thank You for this.

#93 advanced systemcare 11.5 key on 06.28.19 at 3:49 pm

I simply must tell you that you have an excellent and unique website that I must say enjoyed reading.

#94 zee 5 hack on 06.29.19 at 10:09 am

I conceive you have mentioned some very interesting details , appreciate it for the post.

#95 cryptotab balance hack script v1.4 cracked by cryptechy03 on 06.29.19 at 4:30 pm

Found this on yahoo and I’m happy I did. Well written site.

#96 roblox breakjoints on 07.01.19 at 11:37 am

Hi, yahoo lead me here, keep up good work.

#97 fortnite cheats on 07.01.19 at 10:22 pm

Your website has proven useful to me.

#98 free cheats for rust on 07.02.19 at 10:27 am

stays on topic and states valid points. Thank you.

#99 skin swapper on 07.02.19 at 3:28 pm

Great writing to Read, glad that duckduck brought me here, Keep Up nice job

#100 vnhax download on 07.03.19 at 9:49 am

Yeah bookmaking this wasn’t a risky decision outstanding post! .

#101 cyberhackid on 07.03.19 at 9:45 pm

This is awesome!

#102 vehicle simulator script on 07.04.19 at 9:47 am

This is amazing!

#103 what is the point of seo on 07.04.19 at 1:44 pm

Parasite backlink SEO works well :)

#104 phantom forces hack on 07.04.19 at 9:38 pm

I have interest in this, thanks.

#105 open dego file on 07.05.19 at 10:02 am

Hello, here from yahoo, me enjoyng this, i will come back soon.

#106 tom clancy's the division hacks on 07.05.19 at 10:16 pm

You got yourself a new follower.

#107 synapse x free on 07.06.19 at 8:31 am

I like this website its a master peace ! Glad I found this on google .

#108 Dillon Katon on 07.06.19 at 10:18 am

The next stage of the enigma is to decipher the order of the pyramid. This is your 3rd confidential lead… 517232125

#109 ea sports ufc 3 pc download + full version crack free on 07.06.19 at 12:37 pm

very nice post, i actually love this web site, carry on it

#110 rekordbox torrent on 07.07.19 at 3:47 am

Thanks for this website. I definitely agree with what you are saying.

#111 cod black ops 4 license key on 07.07.19 at 12:12 pm

I must say, as a lot as I enjoyed reading what you had to say, I couldnt help but lose interest after a while.

#112 spyhunter 5.4.2.101 serial on 07.08.19 at 12:56 pm

I dugg some of you post as I thought they were very beneficial invaluable

#113 quest bars cheap 2019 coupon on 07.09.19 at 8:07 am

I love what you guys tend to be up too. This type of clever
work and reporting! Keep up the great works guys I've included you guys to my personal blogroll.

#114 roblox fps unlocker download on 07.09.19 at 2:51 pm

Hello, google lead me here, keep up nice work.

#115 dillion_lauren on 07.14.19 at 1:58 am

Thank you for the great read!

#116 sluts online now on 07.15.19 at 2:07 am

some great ideas this gave me!

#117 plenty of fish dating site on 07.15.19 at 11:56 am

Hello, yup this post is truly good and I have learned lot of things from it regarding blogging.
thanks.

#118 legalporno free on 07.15.19 at 11:48 pm

great advice you give

#119 how to get help in windows 10 on 07.18.19 at 1:49 am

Hmm it seems like your blog ate my first comment (it was
extremely long) so I guess I'll just sum it up
what I submitted and say, I'm thoroughly enjoying your blog.
I too am an aspiring blog blogger but I'm still new to everything.
Do you have any points for novice blog writers?
I'd definitely appreciate it.

#120 plenty of fish dating site on 07.18.19 at 3:12 pm

Admiring the persistence you put into your site and detailed
information you offer. It's nice to come
across a blog every once in a while that isn't the same old
rehashed material. Excellent read! I've saved your site and
I'm adding your RSS feeds to my Google account.

#121 ilona_fox_ on 07.19.19 at 1:38 am

you are a great writer!

#122 buydrugsonline on 07.19.19 at 2:47 am

This blog is amazing! Thank you.

#123 Dick Ladd on 07.19.19 at 5:01 am

Skyking, Skyking, this drop is your next bit of info. Feel free to message the agency at your earliest convenience. No further information until next transmission. This is broadcast #5525. Do not delete.

#124 plenty of fish dating site on 07.19.19 at 4:22 pm

Fantastic blog! Do you have any tips for aspiring writers?
I'm planning to start my own blog soon but I'm a
little lost on everything. Would you advise starting with
a free platform like WordPress or go for a paid option? There are so many choices out there that I'm totally overwhelmed ..
Any tips? Bless you!

#125 [prodigy hack] on 07.21.19 at 6:24 pm

Hi, glad that i saw on this in yahoo. Thanks!

#126 plenty of fish dating site on 07.23.19 at 9:25 am

For newest information you have to visit internet
and on the web I found this web page as a finest web site for most up-to-date updates.

#127 acidswapper on 07.23.19 at 5:26 pm

I have interest in this, cheers.

#128 natalielise on 07.23.19 at 9:45 pm

magnificent issues altogether, you simply gained a new reader.

What might you suggest in regards to your publish that you made some days in the past?
Any sure? natalielise plenty of fish

#129 da6te cougar on 07.23.19 at 10:36 pm

I am 43 years old and a mother this helped me!

#130 date cugar on 07.23.19 at 11:41 pm

I am 43 years old and a mother this helped me!

#131 date coygar on 07.23.19 at 11:58 pm

I am 43 years old and a mother this helped me!

Leave a Comment