Reading things on Twitter hasn’t changed for years. It is time for some new ideas.

I have been using Twitter for a better part of a decade. I have taken somewhat public breaks from it, but for better or worse, it’s become a big part of my life. I’ve met people through it, found jobs and clients through it (though suspiciously never paid for either of it). It’s where I go to ramble, and where I go for cheap laughs, depressing news, and dank memes.

What’s really remarkable about Twitter is how little it has changed over the years. They have added a (rounded) corner here and there, changed likes to hearts, maybe added a feature or two. But the core Twitter experience, a timeline, has been the same. I used to think it’s a good thing, but now I am not so sure. Continue reading “Reading things on Twitter hasn’t changed for years. It is time for some new ideas.”

Developing Shared Code with Principles

One of the most high-leverage work in a technical organization is building shared libraries or frameworks. A common library, a piece of code that can be used as is, or a framework, a system that codifies certain decisions and allows further work to be built on top, has the opportunity to benefit many people at once. Not only that, they also institutionalize shared knowledge, put knowledge that’s in people’s head in code for future employees. And of course, there are other benefits such as possibly open-sourcing such work, which comes with its set of benefits to hiring and on boarding. Continue reading “Developing Shared Code with Principles”

Re-engineering News with Technology

Years ago, in college, I went to a presentation by a big internet company, as part of a recruitment event. At the time, I was working at the college newspaper, and the talk was about their “front page”. They said it was the biggest news site at the time, so I was excited.

The bulk of the talk was technical. But the presenter mentioned that one of the biggest challenges was keeping abreast of what they called the “National Enquirer effect”. The problem, as she described, was this. The main goal of the front page is to drive traffic to other properties; and the system was always optimizing both the selection of content on the front page and its ordering based on raw clicks. He said, while no one admits to it, content with the best-clickthrough rate was always “bikini women”, so left alone, algorithms would turn the front page into National Enquirer. Ironically, this means that no one would visit them, over a long enough period. They said they were trying to fix this by some longer term optimizations, but for now, there was essentially a team for each locale that monitored the site, and kept it “clean”. Continue reading “Re-engineering News with Technology”

Every company is a tech company, and everyone is a techie.

I work in tech, or used to, like most of my circle in San Francisco. But it was never clear to me, what I really did. I changed the world, of course, but what did I really do? My father ran his own business of gas stations, and also sold cars. My lawyer friends wrote up legal documents and endlessly argued about stuff, and doctors did what doctors did. Teachers taught kids, professors taught slightly older kids, writers wrote, and I worked in tech. I worked at T-tech companies, and tech companies that were more or less a custom CMS. The term lost all its meaning, we all kind of knew, but we all played along. Continue reading “Every company is a tech company, and everyone is a techie.”

Apple created the attention sinkhole. Here are some ways to fix it.

Your attention span is the battleground, and the tech platforms have you bested. Social media platforms, like Facebook, Twitter, Instagram get bulk of the blame for employing sketchy tactics to drive engagement. And they deserve most of the criticism; as Tristan Harris points out, as users, they are at a serious disadvantage when competing against companies trying to lure them with virtually endless resources.

However, one company that is responsible for this crisis goes relatively unscathed. Apple jumpstarted the smartphone revolution with the iPhone. Our phones are not anymore an extension of our brains but for many, a replacement. However, things went south. Your phone is less a digital hub, but more a sinkhole for your mind. Continue reading “Apple created the attention sinkhole. Here are some ways to fix it.”

Fake News is an attention economy problem

A common theme of this blog is that history repeats itself. There are some fundamental dynamics of information that are innate to the internet, and most companies coast those trends. There are occasional shifts; like the smartphone with its always-on-connectivity and sensors but things more or less follow certain trends. Continue reading “Fake News is an attention economy problem”

The cyber history repeats itself

With a new unicorn popping up seemingly every other week, it’s easy to forget that the new behemoths that shape our lives, the technology firms, existed more than a few years. Behind the shiny veneer, however, there is a rich history of how this world came about to be. And just like any other history, it’s one that keeps repeating itself.

The latest iteration of the history, though, is not its finest one. Nazis are back. Continue reading “The cyber history repeats itself”

On Being a Builder

One of the recurring themes in any technical team is the tension between designers and developers. Many designers complain about how their beautifully designed and well-thought out mocks aren’t faithfully implemented but merely considered as guidelines. A lot of the time, the design details takes a back seat to the ease-of-implementation and how detail-oriented the developer is. While there are a lot of developers who don’t mind going the extra mile to get the design “just right”, most of the time, the result ends up less than satisfactory to the designer.

On the flip side of the coin, a lot of the developers complain about the seeming disconnect of designers from the realities of building an application. Sometimes this happens in the form of designer designing something that can take an inordinate amount of time to implement or simply impossible. Other times, while the design looks great on the mocks where every piece of data is the way it is supposed to be, when the design is built and tested against real-world data, it just breaks down in unexpected ways and has to change dramatically.

While I have been mostly been on the developer side of this conundrum and definitely did my fair share of my complaining, it’s clear that this is a common problem with a lot of negative effects like inferior products that don’t feel right, unnecessary tensions between designers and developers, and wasted iteration cycles.

Different companies seem to be attacking this problem in different ways; some companies require their “designers” to actually code their designs, with Quora being the one of the well-known proponent of that approach. Quora’s job description for their product designer position explicitly lists “Ability to build what you design” amd their product designer Anne Halsall’s answer on the topic pretty much argues that the most important thing is being a builder.. Similarly, 37signals’ David Heinemer Hansson notes in a blog post that “all 37signals designers work directly with HTML and CSS“.

Yet another approach seems to be the rise of the “front-end engineer” position. As more business and consumer applications that were once desktop applications are built as web-applications where the meat of the interaction happens in the browser, people who were once simply considered “webmasters” have rightfully claimed their titles as real developers and became front-end engineers. While this position is generally considered an engineering position, it’s also always assumed (and implied in the job descriptions) that these people will have strong design sense, attention to detail to bring those intricate designs to reality as faithfully as possible.

I think both of these approaches, which aren’t mutually exclusive, are valid and have their uses. Especially in a sizable organization where there are tens or hundreds of people working together, some extreme specialization is not only desired but almost required to make sure people can work without stepping on each others’ toes.

However, I think the distinction between those who design and build application is an arbitrary one that is one that is slowly eroding. As there are better abstractions are built, the barrier to entry for realizing your idea and sharing it with the world becomes much, much lower. For developers, this means that they can prototype things out much faster and iterate on things themselves.

The real benefit, of course, is for the designers. For them, this means that they can just build what they had in mind without having to convince or wait for someone else to do it for them. I believe this is a game-changing freedom and it will only get better from here.

As we keep building better frameworks that encapsulate years of decision making, abstractions that hide things under the hood under under another plastic cover, and have simply better tools to get our work done, more and more people will be empowered to do things that once were within the technical reach of the few.

Today, anyone who can open up a Terminal window and type rails generate scaffold Post name:string title:string content:text can have a very basic blog up and running in less than a couple minutes. Top this off with some Heroku action and you have a live site running on a real database on a server somewhere in a minutes.

While the iOS space is a lot younger than the web and its reach is a lot less limited, better tools and abstractions that lower the barrier of entry are coming up fast. The XCode 4 interface is a huge improvement over the XCode 3 interface that make building an app require interacting with 1 app instead of 2; story boards are making building basic, brochure like applications essentially a drag-drop exercise, appearance proxies and callback based animations are making building iOS apps feel a bit more like using stylesheets and those familiar jQuery animations. For those who are more adventerous, tools like Pixate and RubyMotion are taking the abstraction to a whole new level where building an iOS app is essentially no different than building a web app.

Discussing the pros and cons of using abstractions over specialized tools is beyond the scope of this essay; I think while abstractions built in the name of cranking out more products faster result in subpar products, abstractions and frameworks that come out of real-world needs end up getting real traction.

Essentially, I believe we are moving to a world where we will see more builders like Sam Soffes who can churn out an iPhone app, a web application and an externally available API all by himself. When a single person can both “design” and “build” an entire product by himself, it’s clear that our nomenclature hasn’t fully caught up with people’s newly-found abilities.

That is not to say we should abolish all specialized tools; I think there will always be need for going really under the hood and actually replacing some carburetors but today, it is possible to push that need a lot further down the line. Similarly, that is not to say there’s never going to be designers who will be working away from technical tools; establishing a brand and visual identity will continue to be a job that requires professionals. Nevertheless, I believe the role of a designer as as it stands will change.

I think a lot of the responsibility will lie with the designers who will be expected to comfortable with the technology they are working with. While this seems like an exact opposite of the argument I am making, it will be more due to the adjusted expectations. Just like we are expecting better times from our Olympic athletes, designers will be expected to simply do a bit more.

As for developers, they will be freed from working as pure implementors of other people’s ideas but instead work on things that they find exciting. It is hard to make a general statement as to what this could be as it’s very domain specific but in general, I think in the future a lot more development effort will be focused on both building better abstractions for those who build on them and solving brand-new problems such as personalization and mining huge amounts of data.

It is an exciting time to be working in the tech industry right now. As we have built ourselves better tools, it is getting easier to simply work on the problems themselves. We’ll all have to learn a couple new tricks but hey, to me, that’s a small price to pay for progress.