I first learned of him from a post on Slashdot about a cool remote controlled door hack in a college dorm. His roommate posted and basically said, "this guy is brilliant, it's just the tip of the iceberg - he posts what he's working on at bradfitz.com, check it out." This was in...1998? 1999?
Seeing him start to post a daily journal, get frustrated, then write LiveJournal was fascinating. Posts on the problems he faced scaling it, open discussions on caching architecture (leading to a LiveJournal user suggesting he investigate slab allocation technique that led to memcached), identity (leading to OpenID), moderation, etc. were always illuminating. Moving to Go because he understood what problems needed solving just made sense. Rewriting Google's downloader because it sucked? Well, of course he would.
I don't know Brad other than occasional comments/responses from the early livejournal days (user number ~10K, after procrastinating actually joining for too long), but it's clear that he draws inspiration from overcoming roadblocks.
Taken in that context, leaving Google is completely understandable - having a trillion dollar organization there to remove roadblocks would subvert a key driver for his personal innovation and inspiration.
Good for him that he recognized this and is taking the leap into the unknown. Can't wait to see what he comes up with next, but I'm guessing the real treasures will be found in the process and not the final outcome.
How did you deal with people criticizing your masking tape construction? This has been a bane for me since I can remember.
I love prototyping but hate the instant terrible feedback. People often look at the construction instead of the results and/or can't/won't imagine it a first step or how awesome a final product it can turn into.
Don't even look at the comments. Turn them off if you can. They're not paying you, so you are under no obligation to please them.
On the other hand, if you know that you're going to get undesired feedback, why post your stuff in public in the first place? You don't get the glory without the risk. Before the internet, people did things because they liked to, and because they enjoyed them. They didn't need the praise of a thousand random strangers to feel good about their accomplishments.
Something you didn't address, unwarranted critisim or just plain mean comments can just hurt or drain you emotionally. It can rob you of desire to work or entirely demotivate you from your original goal.
While you may argue "deal with it", and rightly so in most circumstances, but then you are only addressing an issue of grit. I have plenty of grit in _some_ areas of my life, but not _all_ areas of my life.
And, sometimes the negativity is unexpected like when you are just showing something you find cool or neat that you built. (ie, I have never once put my code out in public nor sought praise for it)
Everyone has a limit where they can't take any more negative feedback on something.
And with prototyping I have found it better to wait to show the client until it's in an "appealing" state. Hence my question about masking tape prototype. (my favorite material to build with as a kid because it was plentiful and easy to rip, but was unappealing visually)
Criticism doesn't bother me. It will generally come into three categories: 1. Insults and trolling with no valid content: this tells me nothing I didn't know already, that there are morons in the world 2. Valid criticisms, but things that I already know about and either can't do anything about or where I decided it wasn't worth the effort: again nothing I didn't already know 3. Valid criticisms that I hadn't thought of: these contain new information and are potentially very useful.
The masking tape criticism would come into category 2.
"That sucks" is valid criticism for many people, as well as "who would want that?" and "why did you waste your time?".
Your categories are all logical responses, what about the immediate emotional effects of the responses?
If you have never experienced an immediate emotional response from criticism I count you extremely lucky that you don't have to face it. But for those of us that do, we are looking for answer to the emotional side of things.
Is there some technique you have used to blunt the emotions and look at them only logically?
>what about the immediate emotional effects of the responses?
Our brain/body is good at adapting so you simply ignore it or rather embrace the pain, yes it will be painful in the beginning but the more you are exposed to it the better it will be over time.
I suspected someone may say something like this. Is jumping in the deep end the only real answer to issues of fear or emotional turmoil? (ie, get back on the horse...)
I don't disagree with you, I was just hoping there may be something else to consider.
I am not immune to misguided emotional responses, but I believe I can generally recognize them for what they are, and ignore them. Especially when criticism comes from somebody you care about, like a partner, the emotional response is the strongest. But this is also the time to analyse what they are saying rationally and establish whether there's any truth in it. The emotional response seems to me to be to mindlessly defend.
Yes, and I wanted an answer from the guy who made stuff with masking tape and string (and seemed to get good feedback) and wanted to know how he took negative feedback from his prototypes.
Ha.
Around this same time my friends and I set up a vaguely similar system across campus in Haggett Hall. There was a :CueCat at the bottom of the door outside and you'd scan your student ID to trigger a solenoid to spin the doorknob on the inside.
It's not a fad, businesses aren't doing this just because it's trendy and cool and they think people will like it, they're doing it because it saves them a fortune and they care more about their bottom line than their employees well being.
It saves a fortune, but the companies are spending a fortune on their employees' salary and benefits too
I think we're talking the difference between $300/month on open desk space vs $1000/month on an office. It's a lot of money and it adds up, but these people are costing the company a total of $10k-$40k a month
My theory is that open space is extremely helpful to certain types of people, and those traits coincidentally overlap with the people calling the shots at a lot of companies. Sociable upper managerial-types probably value being able to collaborate more easily in open space more than being able to concentrate in private offices.
Plus it's harder to get away with blatantly goofing off if anyone can look over and see your screen at any time, but I dunno how big a deal that is when people are setting their own hours and picking the projects they're working on. At least in my case, I don't give a crap if my teammates have Facebook and Netflix onscreen at all times so long as they're getting their jobs done
> Sociable upper managerial-types probably value being able to collaborate more easily in open space more than being able to concentrate in private offices.
This is the opposite of my experience. One thing that shocked me about a move to an open plan office after a life with offices was how stifling to discussion.
It's so disruptive to have a conversation at someone's workspace, that to discuss anything nontrivial (or even slightly sensitive) all participants go somewhere else. This greater cost subtly means that people don't really discuss as much.
When people do, it's more often in formal meetings (though of course people can go find a whiteboard together for a chat here and there). These meetings tend to fill their timeslots whether they need to or not, a known problem with meetings.
Random, "What have you been working on" do not rise to the point of happening as often, since chitchat at someone's desk is disruptive. Obviously this still happens sometimes at people's desks, as well as in shared areas, between activities, etc., but it's decreased. A culture of more regular 1:1s tries to help make up for this, I think, but the formal nature of scheduled 1:1s makes it hard to have the same organic discussions.
Even fairly mid-level management (and certainly upper management) and the large open-plan office company I currently work for claims conference rooms 24/7. This is clearly not about the ability to concentrate, but about the increased ability to collaborate.
Some people are much better at thinking on their feet and out loud (I'm one of them). Ideas are fragile, and if you're trying to verbalize, for the first time, why something bugs you or how you think you fix a problem, and there's a bunch of fast-talkers around you they're going to kill your idea before they even get a chance.
I used to meet with these people privately, sort out what really bugged them, poke at their idea and come up with a compromise they'd still accept, then I'd go into meetings and try to out-talk the other fast-talkers.
Now you get one shot a day to do that, maybe, if we're both going out to lunch, going together, and don't bring the wrong people along.
I've worried sometimes that my soft skills were a little lacking. But I'm finding over time that my soft skills were actually pretty great, they just needed doors.
So I’m on the fence I like the social aspects of open offices but I find them highly disruptive to work.
But one observation I have made is that open offices force me to bring work home. I can sometimes accomplish more coding in one night at home than in 1 week in an open office. One time I kept a log of every 6 mins at work and found that <40% of the time was actually spent coding in an open office vs 95% working at home and communicating over slack (I don‘t think I need to tell anyone here one 8 hour coding session is not equivalent to eight 1 hour sessions).
I think do not disturb private desks with open office hot desks or an open office with telecommuting is ideal.
Sociable upper managerial-types probably value being able to collaborate more easily in open space more than being able to concentrate in private offices.
This is not my experience. Most of the upper management at my employer spend their days wandering the halls looking for open "huddle rooms". Or, they just camp out semi-permanently in one of those spaces. They absolutely do not collaborate in public. In fact, they can't - too much of what they do involves information that, if not strictly confidential, is at least somewhat need-to-know.
I know when Amazon was increasing density in some of their offices, they also built a few more meeting rooms (they did not, however, increase bathroom size, and I strongly suspect they were violating OSHA rules, if only due to gender inequality).
This is possibly the only place I've ever worked where they made even a half-assed attempt to maintain the ratio of employees to meeting spaces. And you're right. Post densification, managers are constantly having to schedule meeting hours or days later or settle for two smaller meetings because everything is full. And if you screw up the room reservation, you have to just cancel the meeting because there is nowhere to go.
But a lot of that pain trickles down onto the people doing the work, so I don't think it's fair to look at it as getting what they deserve. It sucks for them, it's debilitating for us, and we always have to make it up by cutting corners or working later.
>My theory is that open space is extremely helpful to certain types of people, and those traits coincidentally overlap with the people calling the shots at a lot of companies. Sociable upper managerial-types probably value being able to collaborate more easily in open space more than being able to concentrate in private offices.
Yes, and in addition, sociable developers value being able to collaborate more easily in open space. I don't know what your coworkers are like or what age range they are, but over my career, I've absolutely seen that engineers in their 20s absolutely prefer open spaces, and are extremely sociable. I haven't seen this so much with older generations. The type of people entering this profession has really changed over the decades.
If your developers skew towards those in their 20s, many of them have never experienced working in solitude. University culture is dominated by study groups and camping out in the library, so it's no great stretch to go from that to an open-office layout, or even one where you are forced to hot-desk.
And laptops have been the norm. It's a little different when you were accustomed to go back to your dorm room where you had your desktop setup to get anything done.
>And laptops have been the norm. It's a little different when you were accustomed to go back to your dorm room where you had your desktop setup to get anything done.
This isn't quite right: before having your desktop computer in your dorm room was normal, you had to go to a computer lab to get anything done, and those had no privacy whatsoever. Computer labs with PCs were quite common until colleges started requiring students to buy their own PCs, and before this, the computer labs had terminals (like VT100) which connected to VAX servers or mainframes.
Anyone who went to college up until the mid-1990s should be familiar with computer labs.
Virtually every university library has quiet areas and collaborative areas now. Most of my peers go to the library to concentrate (work in solitude) and visit the loud area of the library when they want to be more social or meet in groups. Also it's not like people are constantly talking in the loud area either, most people are by themselves focusing on work but will be interrupted by friends occasionally whereas in the quiet area interruptions don't happen at all. You sometimes end up texting your friend next to you because you don't wanna disturb others.
There was a post a few months ago on HN saying that librarians are rethinking how libraries should be structured because people are using them to go and focus rather than for books.
Your hot-desk point is true though, my peers at the office and at school are more accustomed to carrying around a laptop and setting up wherever rather than setting up a personal workspace with pictures of family and the sort.
It sounds to me like universities should just stop wasting space in the library on study areas, and downsize the library a lot so it only has rooms for books and nothing else.
Then, they should separately have buildings (or separate spaces within that building maybe, for existing structures) that are dedicated entirely to studying, with both quiet areas with cubicles (there were things like this at the library when I went to college), and more open areas where talking is acceptable. Then, the university can put a cafe there to sell overpriced coffee drinks and snacks, and the building should be very profitable.
Why does it matter if it is a single building or multiple buildings? My university has a library that has book space, quiet study areas, group study areas and multiple overpriced food/drink vendors.
It doesn't really matter that much, and it really doesn't matter at all if it's different wings of the same building. But separating these things for future construction might make some sense: for instance, you could put the study building in a really convenient part of campus, and stick the library off the side in a less-convenient location, since people don't use that as much.
I'm also thinking that you might not want lots of food and drink around the stacks of books. But in an open study area, why not?
Finally, if I go to the library to look at stacks of books, the last thing I want is for the bookcases to be surrounded by a somewhat noisy study area with groups of people talking. It should be as quiet as a tomb.
Even sharing an office with 2-4 people isn't that bad compared to open floor. You get used to each other's quirks pretty fast and keep the door closed when serious work is going on... it doesn't have to be solo offices for every person which would dramatically increase costs.
Working at a table with my small team (4-6 people) in a small office was my favorite working environment. Any discussions are likely at least somewhat relevant to everyone. Interruptions are not constant. Quiet environment. Yet still helps enable knowledge transfer among team members.
For startups it's really not a significant expense if you do it right. We're a small team and have multiple developers in the original private office, which I'm assuming the prior occupant CEO previously used solo, and then the sales/support guy share the larger main office area. Plus all food is eaten in a common kitchen area (keeping various smells contained, which matters more in smaller offices, is quite easy via perfumes/scent policies and simply not eating at your desk).
It works great for us and lets certain personalities control the level of interaction based on their tolerance. The sales guys love to chat naturally. For the employees who cross both sales/support + dev roles where we keep 1-2 "free" desks in the grouping which you can just pull your chair too.
Multi-person office rooms is really the ideal solution. For us we could scale it up as the company grows by building a 3rd wall creating 3 offices of equal size capped at 4-6 people each.
The hard part of course is scaling beyond that as almost every office property has been previously designed for with the open-concept in mind. Building your own walls or tearing down others isn't the easiest thing to do (or get approval for) in plenty of buildings, especially older ones. But as others have mentioned it's worth its weight in gold.
When this whole process was just starting to hit my radar I realized that there was such a thing as 'too big of a cubicle'.
As cube size goes up, eventually there's enough space for three people in a two person cube, or two people in a one person cube. You want exactly enough space for someone to be able to bring a chair and comfortably look over your shoulder, and not one iota more.
I would also guess that kind of hip architectural firms that get hired to design the offices of giant successful tech firms are 10-20 person companies who may have equally open offices but don't have the visceral understanding of the differences between an open 20-person office and an open 1000-person office.
I would assume that in open space you have somewhere around 100 sq ft per person (room for a 10x10 desk and access) and for a closed-in space they would have about 3x that.
Right but it usually isn't really between "open space" and "everyone gets their private office", but between "open space" vs "offices of few people in each, usually working on same stuff"
It matters in this conversation because it's NOT the same pile of money to the people making decisions about the office space, nor to the people in charge of hiring. Those people are allotted certain budget for the buildout of their roles and expected to justify budget increases, irrespective of other piles of money.
But if you have a million in funding, then who does it matter to if you spend it on infrastructure or operational expenses? You're still burning the same amount of cash.
Salary and benefits aren’t treated exactly the same as capital expenditures. That’s how your purchase of a ten thousand dollar piece of electronics becomes a thousand dollar charge every ten years, no matter when the check clears. Which looks better on your companies balance sheet?
Have you ever tracked your time as a salaried software developer? I used to, and used to think it was a stupid exercise. Then I learned that my payroll costs were being capitalized against the project in development. Two years later when the project launched, it hit the books and started deprecating over seven years. That meant my company essentially had two years where my salary wasn’t on their books; when it hit, those two years were skewed over seven.
Have you ever had to differentiate between tracking time spent doing development and time doing support? Support is an ongoing operational expense that can’t be capitalized.
Same pot of money, vastly different ways to split it up.
I am a salaried software developer, and my employer requires me to track my time, for precisely the reason you describe. And I still think it's stupid, despite having heard this very explanation at least twice (or thrice, if you count your comment). It doesn't make it make any more sense; it just makes corporate accounting sound like so much smoke and mirrors that accountants and investors willfully participate in. Maybe I'm focusing too much on the fact that those dollars are coming out of their bank account into mine every two weeks like clockwork regardless of the fact that they're pretending that they're trickling two years' worth of salary out to me slowly over a period of seven years or whatever, but it just seems so arbitrary and nonsensical to pretend that they're not spending that money to pay me right now.
> those dollars are coming out of their bank account into mine every two weeks like clockwork
Would it make you feel better to consider that those dollars aren't really coming from their bank account in any meaningful sense? They're almost always from a large creditor who extended a line of credit, or from the sale of unsecured debt against the company if you're big and bad enough. And that their "bank account" is almost entirely divorced from cash on hand, and it's built up from money other businesses and customers owe them for services?
We assume that businesses are going to be in business for the foreseeable future, that they'll pay their debts and collect profit on their assets and the world keeps moving. In that sense, corporate accounting isn't the smoke and mirrors; it's the way we give that assumption some basis in reality. We assume that your business will stay in operation and sell the product you helped build, so why penalize them for not being able to get money before the asset is built?
Ah, yes. I always forget that the entire global economy is built on debt. That actually makes it worse, in a way, but at least it makes sense in context.
It matters a lot to your board, your creditors and investors, the government. If you’re publicly held, it matters to a significantly larger number of investors and changes your legal obligations somewhat.
If you’ve ever heard someone talking about “the color of money” in a business context in regards to different types of incoming and outgoing accounts, this is what they’re talking about.
Whether capex is better or worse than opex from any particular vantage point is so heavily context dependent that I’m unsuited to provide a general overview, but it is easy to see how it could matter when you compare expenses attributable to salary vs expenses attributable to the purchase of real property in much the same way it matters to you as an individual whether you used your finances to buy a house or pay someone to mow your lawn.
That fortune's pretty small, really. About $5,100 per employee, per year. It would take a lot of employees for that to even be a noticeable line item for a company with profits in the billions.
It saves an average of 40 square feet (65 for open office, 100 for an individual office), plus a couple of thousand in construction costs.
So, at around $100 per square foot per year (figures vary wildly, but I saw a couple of concrete values in the $75 range for the bay area), plus a one time cost of $25 per square feet for construction, that's less than $5,000 a year per employee, plus an additional one-time $1,000 amortized over about 10 years.
Google just lost a top percentile developer over their open floor plan. Literally irreplaceable. But they saved a few dollars on space. That is being penny wise and pound foolish, particularly for a company like Google who is not capital constrained.
(He may not have quit directly because of the open office plan, but given that it's one of the few complaints he makes, it obviously is a factor.)
> Although there is some truth to the fact that Linux is a huge threat to Microsoft, predictions of the Redmond company’s demise are, to say the least, premature. Microsoft has an incredible amount of cash money in the bank and is still incredibly profitable. It has a long way to fall. It could do everything wrong for a decade before it started to be in remote danger, and you never know… they could reinvent themselves as a shaved-ice company at the last minute. So don’t be so quick to write them off. In the early 90s everyone thought IBM was completely over: mainframes were history! Back then, Robert X. Cringely predicted that the era of the mainframe would end on January 1, 2000 when all the applications written in COBOL would seize up, and rather than fix those applications, for which, allegedly, the source code had long since been lost, everybody would rewrite those applications for client-server platforms.
Google has more money than Microsoft had back then and Google's product-market fit has been amazing since day 1. Any 1 individual (or even 100 individuals, 1000 individuals) could mess up royally and Google would still be around in 2050 :-)
Though I'm tempted to agree, there is an old macroeconomic observation that might throw a wrench in the analysis, which is that the waves of new technology seem to be coming faster and faster, and likewise, the turnover of companies in major stock indexes has also gone faster and faster.
In an imagined hyper-accelerated future market where the trend continues, companies will be born, grow large, be disrupted and die in a figurative eyeblink. And Google's lifespan would be cut considerably shorter in such a circumstance, if for example something like Brave's business model were to hockey-stick and disrupt their golden goose.
However, the counterfactual to that is that there surely is some kind of end to accelerating turnover in the markets. And it's a statistical rule; individual companies can be hardy survivors given the right circumstances and management, and companies with longstanding platform monopolies, like IBM, MS, Oracle, and now Google tend to have a lot more freedom to redefine themselves; it's the customers that get screwed, not the company. All the company has to do is find a way to move its customers to the next-gen platform, and even when they start failing at that, like IBM, they have a lengthy fall.
It's not though. It's merely a qualification to the "Google is comfortable" comment. He says clearly the reason he's leaving is he's a bit bored. And that he doesn't want to be stuck in a comfortable rut. How would making him more comfortable with a private office address those issues?
I had a coworker years ago when developers were averaging about 1.25 monitors per capita who slapped his own hard drive and video card into his work machine so he could get two spindles and two monitors. BYOD, long before tablets and smartphones.
In a world where SV is paying a third of a million dollars to developers, are you really saving money? As a fraction of the cost of your developers this is tiny.
Maybe developers should start Bringing Your Own Cubicle...
Data: we can't get our shit together about who works on what and how many people we need where and when so our office needs to be an open canvass for our amazing executive creativity.
Companies absolutely are doing it because it’s trendy. Lost productivity and increase of communicable diseases / sick time have been shown over and over to outweigh any superficial real estate savings, even just in a bottom line basis, and it’s not even factoring in effect on morale, superficial “collaboration” and other sources of additional lost productivity.
Many companies spend huge, huge sums of money on open plan offices. Like, not just renting them but tricking them out with super expensive desk units, fountains, game areas, etc. They even pay money to tear down privacy features and replace them with functionless decorations like exposed ductwork or glass whiteboard walls, even when they have no plan at all to increase worker density.
Open plan offices are currently the cheapest way to cram bodies into office space, and the loss in productivity, quality of life, privacy and sanity doesn't factor into the facilities cost equation, which considers facility capital and operational expenses and ignores everything else.
As others have noted, the executives who make decisions also enjoy easy surveillance, which is facilitated by open plan offices.
I'm nowherer near his level, but I have, over the course of my career, rejected several job offers, explicitly saying the recruiter that their open office was the deal breaker. Nothing stops most developers from doing the same. It's just a question of priorities.
What dolt would think that more noise & distraction would make for a more productive workplace where the product requires sustained periods of focus? It's literally the dumbest thing you can do in that circumstance.
I don't think it's about monitoring, but it's probably about status, and your use of the word 'code cattle' seems relevant (I was also thinking about farms). Or a more apt comparison would be factory floors.
I don't think it's nefarious, not usually at least. It's just a lot cheaper and then it's justified after-the-fact as fostering collaboration or whatever. I'm not asking for my own office (though I would love it), but at least some physical division like a cubicle.
So many companies, even non-tech companies with tech divisions adopted this plague and now it seems there is no turning back. I find the constant movement to be the biggest distraction over noise.
>I find the constant movement to be the biggest distraction over noise.
I find movement to be distracting as well (esp. if I'm sitting next to a high-traffic aisle as I was in one short-lived position). However, what's even worse for me is when several different conversations all start up at the same time, in the same space. Americans are already extremely loud talkers, but then stick a bunch of them together in one room, having 2-5 different conversations simultaneously, and I truly don't understand how anyone can take it, or even understand whichever conversation they're part of.
Movement distracts our attention thru vision (as we need to put effort to ignore the moving objects) and sounds do the same thru hearing. I'd compare doing highly focused work in such conditions to balancing on one leg in a curious yoga position while random people walk by and push you without a warning.
If you have diagnosed ADHD and are forced to work in an extremely distracting environment like an open floor plan then talk to your manager and HR about getting an accommodation. They will work with you to find some reasonable way to limit the distraction based on the particulars of your workplace.
Alternately, they'll make no accommodations. The developer's productivity keeps falling. Eventually he's put on a PIP (performance improvement plan) and finally once it runs its course, they'll have a legal way to just kick him out.
Yeah, that depends entirely on the company and – most importantly – you current boss. Also, I don't think ADHD is a protected class so, even if accommodations are made, the next boss that comes over can totally do the PIP thing.
For anyone reading this: if you ever find yourself placed in a "PIP", leave. That's like being inside a black hole's event horizon, you'll never come back.
You can in fact refuse a PIP. I don't mean refuse to sign the paper they give you, I mean refuse the whole process. This will almost certainly result in the termination of your employment, but depending on the circumstances you may get far better terms than simply being let go.
That said, I have seen people come back from a PIP and kill it, to the point where on their next review they get all of the equity they lost in the prior cycle plus the comp from the new cycle. Obviously this is rare, but I have seen it.
Movement is a big one, noise bothers me more personally I think. I dislike the fact that I cannot function at work without headphones. I have 2-3 feet of my space between me and other co-workers and at any point in time, there's various conversations going on right next to me and it's making getting deep work done very challenging.
It's beyond terrible. I quit my last job (which I otherwise enjoyed and felt fulfilled by) because of the open floorplan and the impossibility of changing it.
I wonder if Brad has any idea how many lives he's affected.
At some point in 2013, I was a Linux sysadmin with 20 years of work under my belt and rapidly burning out, seeing the DevOps movement approach and feeling outmoded. I couldn't code. I saw a post here on HN about Brad's rewriting of Google's download system in Go and was intrigued. That night, almost out of a job and feeling like I had nothing left to lose, I sat down and started to learn Go. Hoping to write a control system for a high altitude balloon, I started writing a little every night after work. Soon, I attended The first Gophercon and really fell in love.
From there, doors started opening for me. I left the sysadmin job and got a job as a DevOps engineer. Wrote more and more Go. Better jobs and better pay followed. Job interviews became something to look forward to, not fear.
Anyway, it was Brad's blog entry that inspired me and totally changed my life. Things are amazing today. Thanks, Brad.
I remember this giant slide deck he presented at OSCON back in 2004 (guess) about scaling LiveJournal with MySQL, memcached etc. IIRC it was the first real “template” for how to scaling on an open source stack, and it massively benefitted the team and company I was working for at the time.
I used to work in C and PHP before. Then decided to look at Go, despite not liking big binaries it produces (at the first sight), I immediately fell in love. Go made programming fun for me again! Thanks everyone involved making Go happen. It has some drawbacks (like limited OOP) but you always have to trade something for something else. I like it as it is and it is my primary language I write the code in now.
Reading through his itemized list saw "Met Googler wife", which reminds me: Brad created LiveJournal where I met my wife and many new friends. Thank you for that, Brad! I have been watching your work on LJ, memcached, Camlistore ..err I mean Perkeep. You are an inspiration and I will be excited to see what you will invent next!
I'll never forget the convoluted story of Bitcoins for his haircuts. I'm no longer at Google, but still wonder from time to time what happened to them. (Long internal story)
He turns 40 on February 5 (at least according to https://en.wikipedia.org/wiki/Brad_Fitzpatrick ). I wonder if that was a factor in his decision. He could predict his path at Google and wants to chart his own course again.
from his update:
"When I first joined Google it was a chaotic first couple years while I learned Google's internal codebase, build system, a bunch of new languages, Borg, Bigtable, etc. Then I joined Android it was fun/learning chaos again. Go was the same when I joined and it was a new, fast-moving experiment. Now Go is very popular, stable and, while there's a lot to do, things--often necessarily--move pretty slowly. Moving slowly is fine, and hyper-specializing in small corners of Go makes sense at scale (few percent improvements add up!), but I want to build something new again.
I don't want to get stuck in a comfortable rut. (And Google certainly is comfortable, except for open floor plans.)
What next?
* Work on Go lang. implementations (or for that matter any other language/platform implementations) of fediverse servers, clients, platforms, etc...because we need more and more federated options for social networks. (Ok, maybe "need" is too string a term here.) There are existing options (mastodon, pleroma, etc.), but if I've learned anything, its that, diversity is essential.
* Work on LineageOS , or any other similar, viable alternatives to android or ios ...because - sorry, no offense - we need more and more options than simply google and apple for mobile phones/devices (and with liberty, freedom of choice, and privacy in mind).
I hope i wasn't being too presumptuous, but figured I'd at least it a shot at giving you ideas. Finally, I wish you the best of luck with your new endeavors!!!
I first “met” Brad via LiveJournal in 2000 or 2001, when I was 17 or 18. I wound up becoming friends with him and some of his mutual friends, even though I lived across the country.
Every few years, I’ve found my life intersect with his. Through various jobs (and even careers), he’s been a constant person in my online orbit. When I moved to Seattle 2.5 years ago, it was fitting that Brad lives here too and even more fitting that he knows many of my coworkers, albeit in a completely different way.
Brad is one of the smartest people I’ve bet met and probably ever will meet. LiveJournal was the basis — both in idea and in technology (memcached, oauth), the basis for Facebook, WordPress, and Tumblr. I’ve long said he’s the most important Web 2.0 pioneer most people have never heard of. He’s also a fantastic person.
I for one can’t wait to see what he decides do do next and how he’ll next change the world.
bradfitz’s career is inspirational because he has succeeded in prioritizing curiosity. never would have guessed a perl guy who wrote memcached to solve livejournal problems would move on to go - only to walk away for something more interesting. can’t wait to see what comes next.
I've followed Brad Fitz over the years because I also started in Perl and ended up in Go. His intellectual curiosity and interest in doing cool things well shines through. He is a great example of the leader-by-example category.
While this is true, he joined Six Apart after they bought LiveJournal. Movable Type was originally developed by Ben and Mina Trott. I suspect that Brad was chiefly working on Six Apart's ill-fated "Vox" hosted blogging platform, which looked an awful lot like an attempt to re-imagine LiveJournal in a more modern (by mid-2000 standards) form.
Movable Type isn't dead, except in the sense that every self-hosted blogging platform that isn't WordPress (and possibly Ghost) is dead. MT 7.1.3 was released in November 2019.
I had 4 desk changes and 2 managers in a 3 years FAANG career, and my sense was that I was probably in the bottom 25%, primarily because two of the moves were into entirely new buildings (desk movement usually happened to help teams work near each other, so a new building meant you had space to expand). Relative to the three other companies I've worked at for more than a few months, I think FAANG had the second lowest desk moves/year (although, again, my sense is that I was on the low end within FAANG).
I've had 9 in 4.5 years. 3 were from me choosing to switch teams. All others were moves within 500ft to adjust for growing teams.
Why do you think it's a big deal to switch desks every 6 months or so? My company does the move for me, so all I have to do is put my few things in a box and label it (and my computer stuff). Takes 30 minutes tops.
be a developer anywhere where development is considered a cost center and a smaller part of the company head count. They will move you around like a tumbleweed.
When i worked in healthcare I moved close to quarterly, square footage was at a premium and all the income generators fought tooth and nail for it. The worst was moving between campuses.
To go against the trend of the other anecdotes here, I just had desk change #8 of my 17.5-year career (across 5 companies). I am awaiting the result of manager change #4.
To Brad: What is your plan with regard to perkeep? My understanding is that it is your 20% project, and seems like you are one of the main force keeping it alive.
Just asking since I have multiple servers running it right now, and will need to migrate if it is going to be abandoned.
I no longer pay Mathieu to work on it full time, and my time is tempered by 2.5 and 0.5 year old kids.
I still use it, but don't have time to add to it much. Others work on it a bit. Mathieu and I did work on https://github.com/perkeep/gphotos-cdp just recently, to fix the Google Photos importer. So it's still moving a bit. Others still work on it too.
I'll pick up my involvement again as kids get a bit older. (One is almost potty trained and starting preschool soon! :))
> I'll pick up my involvement again as kids get a bit older.
I thought this would be true for me, but it turned out the other way. The chores of toddler care are slowly replaced as the kids become more verbal. Playing a game or having a conversation with my kids now is enormously pleasurable—to the point where I’ve become acutely aware of the time trade off of other projects.
Once kids get their own personalities you actually want to spend more time with them, understanding and developing their interests.
In between work and kid sports (or music, or scouts or whatever else) commitments the time the kids spend entertaining themselves is important parental 'downtime' and personal projects often just have to wait, potentially forever, depending on one's ambition and sleep requirements.
I now actively resist pulling many of the threads that interest me, just because I know it'll be yet another half-complete mess that's fundamentally less important than the development of the kids. Choose your side projects wisely (Perkeep sounds like a wise one).
I also have young kids and struggle to even find the time to set up and use a Perkeep instance much less learn the internals or hack on it. But yeah, the whole business of de-cloudifying our lives and reclaiming privacy is going to be so important in coming years and decades.
I was going to ask the same question about Perkeep - I need to find an open source, free and well maintained media storage manager and Perkeep sounded interesting to fork and add my own special sauce.
Good to know its going to be maintained but reading between the lines, it is not "the next thing" you are going to work on from your post.
The moment I read the title, the first thing that came to mind was perkeep. I don't use it atm but I would love to. It's such a futuristic project that needs to exist.
In my eyes, Brad is one of the proverbial 10X engineers. I think Google/Go was lucky to land him and keep him around for this long. Best of luck in your next step, Brad!
I think selection bias is involved here quite a bit as well. The best people in the field are more likely to take on pupils that they think are very good as well. And those people probably also do some self-selection.
It's interesting how fleeting software fame is. Perhaps that's just a special case of how fleeting fame is.
Folks who came of age in the early 2000s certainly remember him - he founded LiveJournal; wrote memcached, MogileFS, Gearman, and a bunch of other prominent software packages; authored the first version of the OpenID spec (which eventually became OAuth, which you see all over the web); and was one of the early Go engineers. He's featured in Coders at Work.
Same with other tech luminaries from that time period: Jamie Zawinski (xemacs, Netscape), Joel Spolsky (Fog Creek, StackOverflow, Trello), Paul Buchheit (GMail, Friendfeed), Kent Beck (Extreme Programming), Ward Cunningham (XP, WikiWikiWeb), et al. Don't hear about them much these days, and when one of Kent Beck's more recent posts was featured on Hacker News people were like "Who is this guy?"
That's true; some of those folks just left the software industry, though, I think, or are at or approaching retirement age.
Tangentially, it's still interesting -- and faintly depressing -- to me how much I think LiveJournal got right about social media that its bigger successors, well, don't, specifically related to privacy. LJ users had comparatively immense control over who could read and reply to posts.
This isn't to say that Twitter and Facebook don't get a lot of things right, too, in terms of ease of posting, lack of friction, and (for both better and worse) monetization, but I wish "granularity of acces control" had been a lesson we'd carried forward.
In any case, I'll be curious to see where Brad ends up next.
> This isn't to say that Twitter and Facebook don't get a lot of things right, too, in terms of ease of posting, lack of friction, and (for both better and worse) monetization, but I wish "granularity of acces control" had been a lesson we'd carried forward.
Facebook had incredible granularity with regard to who could view one's posts — then they nerfed it by letting the people who are on your "lists" view who else is on them. (I'm private enough to not want people to know that they're on my Close Friends list with 30 other people.)
There was a way to get around this nerf by including a "smart list" in your set, but Facebook recently removed "smart lists" altogether.
My Facebook post privacy settings are a mess now, and I also gave up and stopped posting anything personal.
(I wanted to add that I used LiveJournal a lot in the early 2000's, and their friend list feature was amazing.)
I was never an enthusiastic Facebook user and didn't really get into lists there, so I'd forgotten about that feature. But it does seem Facebook's philosophy has moved ever closer to "just post and let The Algorithm™ figure out who to show it to."
When Google+ was under development in 2011, I remarked to my team "So, our differentiator from Facebook is...basically everything that LiveJournal had in 2002?"
Circles were great! Google+ was among the least obnoxious social media platforms I have experienced.
I think it could really have replaced all the fragmented around Google comment forms, but it sure wasn't wise to force everyone on YouTube on it in such a shitty way. I think that initial public outcry was a significant stop to its velocity, yet it could have become moderately successful and very valuable long-term to slowly integrate all of Google's services. Just so many parts of the execution were questionable, including the mobile apps :\
Was the lack of a semi-immediate huge return the reason it was killed?
Heh. While I never really got into Google+, its "circles" idea definitely reminded me of LJ -- and it seemed like a great idea. It seems like it might not have been communicated very well to the audience.
At least one part of it is the faith that users can be smart people, rather than the current approach to customization UX which seems to be "take it all away from the fools".
I think part of that comes from the (reasonable) assumption that the simpler you make your UX, the less friction there is for people using your service. But it would be nice to see someone work on bringing more granularity and flexibility back to social media, even at the cost of a little more friction.
(I also suspect some of it comes from people looking at Apple's historic "make simple things simple" approach to UX and taking the wrong lessons from it, which arguably includes latter-day Apple, but that's a whole different post...)
I think it's more that the volume of information has massively expanded since. In the days before MySpace, Facebook, and Twitter, LiveJournal was the social network (along with blogs and personal websites), so naturally its founder and people who were active on it had higher profiles.
I’ve been running a website for over 10 years and have, at various points, made use of all those packages (mogileFS, memcache, gearman). Brad’s influence is enormous.
There was one more person I remember. Jim Kent. He worked on the human genome project. President Bill Clinton compared that to man landing on the moon.
Well, I disagree. His presence has been huge in social media and in a variety of Go-specific communities. Google has had a great impact in that because it was basically sponsoring the whole thing.
Great individuals should really reconsider joining Google. I saw this so many times, you get lured by the money and the big name and after a couple years what you do is associated with Google only.
I'm wondering if they will be able to sustain this now that the Google brand-name is not specifically being seen as a good thing anymore.
Google manages to turn even the most brilliant men and women into purse dogs. It's kind of their thing. There have been almost two decades of blog posts on this exact phenomenon, and I never get bored of reading them.
Also, turns out you can only have one outstanding reservation at a time (so I can't have one all-day massage on my last day) and can't gift them to other employees.
Brad's influence on Go has been huge, especially wrt HTTP and HTTP2 in the standard library. Slightly sad to see him leaving the team, but I'm excited to see what he's working on next!
Can some talented writer please make a book called "Boredom At Work" that compiles essays from people who quit due to boredom and then went on to do great things?
Livejournal was the most fun social network I ever used. The focus on moderately long texts rather than tweets/photos/videos, the one-way friending system where you could add anyone to your reading list, and the strict chronological ordering of the reading list were a winning combination. I wonder what's the best such network existing today?
Commit count can vary a lot, perhaps? I know I commit far more than my coworkers, but that does not reflect the LOC or "amount" of work. I just visualize and chunk things up into commits more frequently.
I supplied the 3,064 number. In Android, some of the changes get propagated to different branches by an automatic process. It's very much possible that the real number is lower by 10x or so (I didn't check)
Why wouldn't it be? Just checked my own commit count at work. Averaging 4 daily (including weekends and holidays), in our main repo for the past six years. There's some work going on outside the main repo, if I could be bothered to check all those minor repos the number might bump to ~5.
I'm certainly not exceptionally productive or skilled or anything - I just try to make my commits as small as possible. Commit early, commit often.
One of my favorite bradfitz moments (and there were a number) was when I was on the spam and abuse team, and the two of us were talking about chat protocols, likely in the context of preventing spam, and he brought up XMPP. I asked what that was (I had known it simply as "Jabber") and he looked at me in wonderment that I didn't know that.
Livejournal, memcached, go, those are three hugely impactful things. Let the number continue to increase!
It's a bit surprising to me that a great engineer can't be properly managed to find interesting work in a company as huge as Google. I'd expect all layers of management to be engaged in finding exciting challenges for Brad.
I think there would've been more of that had I asked for it or given a more explicit warning.
I also moved from San Francisco to Seattle recently without really asking for permission, and while there's a lot to do in Seattle, there's much more to do in the Bay Area.
You don't know me Brad but I am curious as to what's next for someone like you (if you are willing to share). What motivates you for your next thing ? I doubt it is just money but would love to know more.
Not having exceptions doesn't imply that. An alternative is ErrorOr<ReturnType> returning factory functions. It requires that ReturnType is movable tho (can be further wrapped in std::unique_ptr if not).
Not every error is exceptional so not every error should use exceptions. This is especially important in lower level code where someone's exception is someone else's expected code path.
Google C++ tends towards the convention of constructors that do only cursory initialization to a sane but non-functional state, things that almost-always succeed (and assert on failure), with the "real" initialization pushed to an Init() or Start() function.
I've been using software built by bradfitz for a very very long time - LiveJournal where I attempted to blog during a period of.. let's just say misguided rebellion against nothing in particular, memcached at my first job out of school, and Go - I introduced it at my current job and vast majority of our code base is now in Go. And there was that one time he reviewed my tiny CL in Go.
Thanks for everything, best wishes for your new venture!
Been following your work for a long time now (memcached, livejournal, camlistore/perkeep, etc.) but could not contribute to any of your work sadly (other life priorities, sigh).
Met you in a Golang conf and talked about some client libraries for Go for AWS. You were really helpful and motivating.
Best of luck to whatever you are building. On a personal level, I hope someday I get to work with you in some project :)
When I worked at eBay I changed desks more than once a year.
At Netflix it was really abnormal that I sat in the same place for three years. That was largely due to the fact that a special area was built for the SREs with an area for guests to hot desk during incidents and we didn't want to rebuild that.
Pretty much everyone else that reported to my Director moved away before we finally had to move buildings.
I've moved desks 6 times (between 2 buildings and 5 floors) in under 3 years. I guess when a company is growing rapidly, you've got to shuffle people around.
I worked at Microsoft for 12 years and I probably moved desks 20+ times. A handful of those was because I changed teams, but even in the same team, you do tend to have one or more office moves a year. Team focuses change and often people are re-grouped as a result. Other times you just run out of space in a building and they move your team to where there's more room (because maybe another team was disbanded or moved somewhere more suitable to their size).
Is it telling about something wrong at Google if he’s leaving partly because he’s bored? I mean there nothing cool in terms of things he could do there?
gVisor is pretty amazing and has enabled a lot internally. For a long time it wasn't clear we were ever going to open source it as opposed to keeping it as secret sauce for ourselves. I'm happy we did release it.
I'm very curious what happens to Fuchsia. It's very ambitious and might be amazing, but in a weird state right now where it's open source but they don't talk about it (or document it) much.
He has been quite a significant member of a project (Go, or portions there-of, and possible other things I'm not aware of myself) that has impacted people here through their use of the language, and has affected other languages/frameworks less directly.
Leaving Google means he won't be working (at least not directly as he is currently employed to) on that stuff, so the interest is from two angles: what affect might this have on the direction of the projects he is leaving, and what is he moving on to influence next.
Me leaving my current job wouldn't make HN because I don't have any such significance. I'd wager the same could be said of almost everybody, but, demonstrably, not him.
It's not just anyone, it's Brad Fitzpatrick. He created LiveJournal and is the author of many free software projects such as memcached, PubSubHubbub, OpenID, gearman, and Perkeep.
people are saying golang but some of us knew brad before go. remember livejournal? memcached? that's your guy. amazing and inspiring person. i wish him all the best!
I met her in Munich 5 years ago while I was en route from San Francisco to Brussels for FOSDEM. (I stopped in the Munich Google office for a bit on that trip.)
I first learned of him from a post on Slashdot about a cool remote controlled door hack in a college dorm. His roommate posted and basically said, "this guy is brilliant, it's just the tip of the iceberg - he posts what he's working on at bradfitz.com, check it out." This was in...1998? 1999?
Seeing him start to post a daily journal, get frustrated, then write LiveJournal was fascinating. Posts on the problems he faced scaling it, open discussions on caching architecture (leading to a LiveJournal user suggesting he investigate slab allocation technique that led to memcached), identity (leading to OpenID), moderation, etc. were always illuminating. Moving to Go because he understood what problems needed solving just made sense. Rewriting Google's downloader because it sucked? Well, of course he would.
I don't know Brad other than occasional comments/responses from the early livejournal days (user number ~10K, after procrastinating actually joining for too long), but it's clear that he draws inspiration from overcoming roadblocks.
Taken in that context, leaving Google is completely understandable - having a trillion dollar organization there to remove roadblocks would subvert a key driver for his personal innovation and inspiration.
Good for him that he recognized this and is taking the leap into the unknown. Can't wait to see what he comes up with next, but I'm guessing the real treasures will be found in the process and not the final outcome.