There might not be such a thing as 10x engineer, but there are for sure 0.1x engineers, and I’ve been bitten by them very badly.
Perhaps the problem isn’t that there are no such things as 10x engineers, but that some 0.1x engineers can drag a whole team down.
(I’ve worked with a couple of guys who quite literally made the worst possible design decisions. Like…I almost wondered if it was sabotage. $120,000 - $150,000 a year and didn’t understand foreign keys or unique constraints on databases, thought that hex-encoding something counted as encryption…)
If there are 0.1x engineers, then by definition, there’s relative 10x engineers.
I think labeling either (or seeking an elusive 10x) is usually a waste of time - you have to try to adjust the people to the circumstances - a 10x here is a 0.1x there, environment plays a BIG role.
We also tend to confuse “10x” output vs outcome (it’s obvious producing 10x more code isn’t a goal, unless you’re selling CRUD forms) - and particularly with technical details (there can be an engineer that generates 100x more value than other without having to understand foreign keys).
(there can be an engineer that generates 100x more value than other without having to understand foreign keys)
(there can be an engineer that generates 100x more value than other without having to understand foreign keys)
No doubt. The problem with these particular guys was that they claimed to be good at databases.
All I can say here is nothing on this article (from the number of WeWorks to what Kafka is used for to the volume of data to the comment that WeWork IPOd) is accurate.
It’s the typical “I don’t work at company X but pretend I know how things happen” article…
I guess I hate the com/foo/bar/more/dir/stuff so much I want to flatten it.
Digging into Scala.js which is making me finally take the time to learn Scala.
God, it’s weird. Nice, but weird.
Scala.js is kind of a dream, though. Scala has enough OO to make JS interop really quite seamless.
There are just so many ways to do everything! I suppose I’m not yet understanding the “Scala way” but right now I’m trying to walk out some basic FP idioms as I know them and I feel like there are lots of relatively arbitrary choices I have to make at each step.
I got the exact same impression from Scala. Scala makes me think, “you folks just threw everything at the wall to see what would stick when designing this language, didn’t you?” It feels like Perl.
That’s funny, I just wrote how I’m working on bringing java.time to ScalaJS above. :-)
Let me know if you have any questions about Scala or Scala.js!
I’m curious about time libs, yeah. I really like Haskell’s time lib, actually.
The Haskell library looks nice, but it seems to suffer from what a lot of other libraries suffer:
Implementing the easy 80% and punting on the hard 20%, except that with time libraries, 20% are easy and 80% are hard.
I’m not a fan of Java, but java.time goes a long way covering all the ugly, hard corner cases and requirements people have in the real world.
I’d be curious what you put in each column. I feel like Haskell’s time library goes quite far to what I see as the hard 80%. You have to include another like (time-series) to chop off another big part of it (time zone nastiness) but then there’s little else extra I would ask for.
Not sure if I’d describe the effect as twisting my words. If I’m using messenger, I know how it’s likely to be presented. In response, I’m not going to be so verbose. I mean, if you talk to a stranger in a bar for three minutes, that’s fine, but leaving a three minute voicemail is definitely creeper like.
Quick nitpick: How do you know whether the other party is seeing the small popup chat, using messenger.com, getting a push notification, reading on their watch or in a tablet?
In my experience, one tends to plan defensively for the worst possible situation until you’re certain that it’ll be seen in a particular circumstance (not consciously, obviously).
(in other words, I’d probably never do this on Messenger, and even if I did, I’d be sure to send it as a single message with newlines)
I assume they’re reading it on their phone, which is how nearly everyone I know reads messenger (except the few people I know using messenger.com at work). It’s pretty easy to start with “hey, great to meet you” and then ask the other person out after they reply with “same”.
From the article: “A microservice is an isolated, loosely-coupled unit of development that works on a single concern.” … “ if one microservice has a hard requirement for other microservices, then you should ask yourself if it makes sense to make them all part of the same unit”
Aren’t these two aspects potentially conflicting?
I think the implication is that two microservices that are tightly coupled are actually acting on the same concern, so making them two microservices was premature.
Maybe I’m too old (and had to deal with the horrors of moving a file on CVS), but I never had any problems with merging on Git (I tend to avoid them because rebases are so much cleaner, but rebasing would use branchs anyway, so…). Perhaps I’m missing something?
Also, if your problem is really with merge conflicts, you will get them just the same if everyone is commiting to master/trunk, no?
Finally, lots of assumptions there (“this is faster”, “that is slower”) and the only references seem to point to articles defending branched approaches (trunk-based, which I particularly dislike + condemning feature toggles)
I’ve just put together a Docker image for Google’s Deepdream. I know, I know - a gazillion people did the same thing, but mine will run it as a command-line process, instead of opening an IPython notebook.
Working the “implementation details” of an idea - a vinyl-pressing-as-a-service. Basically talking, emailing and phonecalling - definitely not as fun as actually building things…
What is the point of adding an extra M?
it’s customary in accounting to indicate thousands as an M and millions as two Ms (that’s from the roman numerals, where M is a thousand).
What is interesting is that the original article that the guy links to doesn’t bother to do that.
Adding some more patterns to my comment blocker plugin for Chrome: https://chrome.google.com/webstore/detail/anti-social-hide-all-the/ngmpaodhbmmkamjlgdajipkanidojngm (source on GitHub) :-)
Instead of saying things like “don’t open such large pull requests” tell someone they should “open smaller pull requests.”
Is that really any different?
there’s a lot of cognitive research that says yes.
Yeah, to add a little more, the research says that when you give a negative direction, the person doesn’t immediately know what action to replace it with, and there’s also a chance they don’t hear the negation in the sentence.
You can see this when you tell a dog not to do something and they start randomly picking other actions to perform instead (including coming back to the one you told them not to, eventually!). As a human example, it’s my understanding that cops are told not use negations in orders they give civilians and each other for those reasons.
Yes! It certainly is. Yelling “don’t run!” at my three-year-old son is unlikely to make him stop. But yelling “walk” might. Focus on the action you want implemented.
You’d think people would interpret it that way, but not everybody does (and not necessarily because they’re idiots).
You’ll get somebody who instead emails you “before I submit this giant pull request, perhaps you’d like to look it over. (Bajillion lines of diff to follow.)”
Yes! The first expresses disagreement with the persons actual behavior, while the second is an instruction towards desired behavior.
“Don’t open such large pull requests” makes is unclear what the fix is. (It could also be not to create any any pull requests anymore)
Every time I set an alarm, I end up waking up around 10 to 20 minutes before it, then turning it off (before it ever rang) and getting on with my day…
Putting together a simple service for delivering Pocket + Instapaper + Readability content to my Kindle (which was on my backlog for almost 2 years): http://dailycrunch.mobi/
90% done over the weekend, now to some extra features (archiving/starring/sharing directly from the Kindle, etc)
This Saturday I finally switched the API keys from test to production on my side project. That was an incredibly nerve-wracking experience. Pestering some IRC friends to try it out resulted in a 0% conversion rate (which is still better than a 0% rate because you never launched). So this week I’ll be hacking on:
If anyone knows good writing on proper user onboarding, I’d love to hear it. Hopefully next week it’ll be ready to post here.
What’s the project? Mind sharing here?
The general idea is Birthday Cards as a Service - the software takes care of all the hard parts of handling birthday cards (getting the card, remembering to send it at the right time, etc) while still letting you pick the colors/message/etc.
I’m working on a quick tool for calling Thrift services + inspecting responses on the command line, much like you would cURL a JSON api: https://github.com/herval/thrurl
It’s interesting how you seem to put Apple and Google in such extremes in your comparisons throughout the site: “Apple doesn’t sell their users”, “they don’t do spyware while Google does”, etc. Perhaps I’m a cynic, perhaps I’m mixing up the news I heard, but could you elaborate a bit on these polar opposites?
One thing I find odd is that Windows fulfills their platform criteria: it’s a paid-for product, with no interest in selling your personal data, and all cloudy things are optional.
So why not build a Windows app first? They don’t even mention it.
As much as I dislike the “white elite” trope, I believe this sums up the universe this guy lives in rather well: https://twitter.com/evemassacre/status/554963254490202112
Egos cloud everything - including the potential for accepting that “M$” might fit their agenda… (he cites Microsoft as one of the “evil corps” in his blog because they “sell you out”, as opposed to Apple)
I also just found that they are explicitly named in their manifesto, but not in the linked article.
I understood it to be because MS doesn’t (usually?) sell the hardware, while Apple does.
I think there’s an unfilled niche of high quality, we’ll integrated software for Windows from small independent teams, like you see on OS X. But most Mac focused teams I see like this one don’t care and brush it off.
http://twitter.com/aral might have the answers you seek.
(Edit: I posted this here as the parent explicitly talks to the author - which is @aral and he usually can be contacted via twitter)
For fun, I started working on an ssh chat server in Go. Basically clients will ssh chat.whatever.com and boom, you’re in an IRC-style chat room with everyone else connected. Proof of concept is nearly ready, hopefully post it in an upcoming week.
No real great reason for why I’m doing this, mostly because I wanted to use the Go crypto/ssh module and learn more about the ssh protocol. Let me know if you’ve seen this done before.
One cool feature I hope to have from this is that all identity/auth will be done implicitly by the pubkeys, but not sure why this is actually useful, open to ideas. :)
Why not implement the IRC protocol? Might be an interesting exercise too!
Implement IRC on top of SSH? I am considering doing a subset of it, at least for client-side commands. The goal is to have a no-dependencies no-registration chat room experience. I like the idea of repurposing ssh clients (which are actually very powerful and versatile) for something silly like this. :)
Or a MUD
That is definitely on the list of ideas, but probably more work than I’m willing to sign up for this project.
I’d like to release a library to make these kinds of things super easy, though. Stay tuned!
I think using SSH as the base is an excellent idea. IRC encryption is a pain. PubKey FTW.
A silly idea, as I’m out on vacation: a random tweet generator using Markov chains and books from the Gutenberb project, in the lines of the “King James Programming” tumblr. Twitter: @markovian_lit (code is on github - https://github.com/herval/markovian_literature)
So is the only documentation for this a $10 ebook? None of the other links on the main site appear to have much substance.
This was posted in HN: https://leanpub.com/purescript/read
The book is free to read online.
The link called “Documentation” points here: http://purescript.readthedocs.org/en/latest/ - pretty thorough, I think?
How about a 10-minute quickstart?
My point is that the barrier to entry is needlessly high with an enormous eBook.
Which included links such as:
There are also pre-baked ready-to-go grunt/bower projects on Github for getting going quickly with PureScript.