Yuri Takhteyev

yuri@yto.io      yuri      qaramazov


I architect and build software, mostly using Javascript. See more.


I do research at the intersection of software and social science. See more.


I teach courses at the University of Toronto. See more.


Authentication and Authorization Architecture in Browser Applications

March 29, 2014

I discuss the challenges of authentication and authorization in AngularJS and similar style applications. Topics include architecture, best practices for determining client and server responsibilities, and the importance of sharing authorization context with the client logic in order to build an effective user experience. Angular and Node code samples are used to illustrate. (An earlier version of this talk was presented at the Toronto AngularJS Meetup on February 12, 2014.)

Bitcoin Goes Boom: Will the World's Favorite Cryptocurrency Explode or Implode?
with Mariana Mota Prado, foreignaffairs.com

January 30, 2014

Bitcoin presents regulating agencies with difficult questions: Should they try to control it? Can they? If that sounds familiar, it should. The world faced these same questions in the early days of the Internet. Whether Bitcoin is more like AOL or Google, of course, is yet to be seen. Still, how governments choose to respond to it could change global finance for good.

Show more

Open Source, Open World: Where Free Software Came From — And Where It's Going

September 13, 2013

In the late 1960s, technology companies realized that they could sell the programs that they had been giving away with their computers. For software developers, though, that was a betrayal of their field's values: collaboration and sharing. Here's how the technologists have worked to bring those principles back.

Coding Places receives CITASA book award
May 29, 2013

Coding Places shares 2013 CITASA book award with Gina Neff's Venture Labor.

Lua: História Sociotécnica de uma Linguagem de Programação
Forum Internacional de Software Livre, Porto Alegre, July 7, 2013

A linguagem de programação Lua, desenvolvida na PUC-Rio, continua fazendo sucesso global. Desde março deste ano, ela está sendo usada como a linguagem de template da Wikipedia. Contudo, ela continua sendo pouco adotada no Brasil, onde foi originalmente criada. A palestra oferecerá uma abordagem sociotécnica da história da linguagem, tentando explicar através dos conceitos sociológicos de “desencaixe” e “reencaixe” como o seu sucesso global e a falta de adoção local podem ser entendidos atráves do processo de sua desvinculação do contexto local e da criação de vínculos globais.

Audio recording: ogg (in Portuguese).

From Brazil to Wikipedia: The Surprising Journey of a Programming Language from Rio

April 21, 2013

For technologies from the global South, worldwide success usually means shedding local ties and, should all go well, returning home triumphant. It is a treacherous road, and most of the benefits of such projects will never make it to the communities in which they started. But the alternative strategy of focusing on local problems and solutions is even less appealing.

Retrocomputing as Preservation and Remix
with Quinn DuPont
Library Hi Tech

April 2013

This paper describes the world of retrocomputing, a constellation of largely non-professional practices involving old computing technology. It shows how retrocomputing serves the goals of collection and preservation, particularly in regards to historic software, and how retrocomputing practices challenge traditional notions of authenticity. It then proposes an alternative conceptualization and suggests new avenues for collaboration between retrocomputing practitioners and memory institutions.


I started writing code sometime in the mid 1980s using MK-61 and rarely stopped since. I went on to get an M.S. in computer science from Stanford and worked in Silicon Valley software industry before starting a Ph.D. program at Berkeley. Over the years I've worked with C, Perl, Java, Python, Lua and other languages. Today I focus on JavaScript (AngularJS and NodeJS), as the Chief Technology Officer at rangle.io, a Toronto-based JavaScript engineering consulting firm.

When possible I like to contribute to open source. In 2004-2008 I wrote most of Python Markdown, a Python implementation of Markdown, which seems to still be widely used on the Internet. (Python Markdown is now maintained by Waylan Limberg.) I later worked on Sputnik, a Lua-based wiki/CMS engine. I am now working on a front-end heavy content management system.

I am yuri on Github.


I've dedicated a large amount of my time to academic research, starting as a research assistant at Stanford (in psychology and computational linguistics), interning at FX Palo Alto Labs, then continuing to do a Ph.D. at the UC Berkeley School of Information. After finishing my Ph.D. I spent three years doing research as a faculty member at the University of Toronto, where I currently have a “status only” faculty appointment.

A book based on my Berkeley dissertation was published by the MIT Press in 2012. It presents an ethnographic study of software development in Brazil. You can see the first chapter here: Coding Places.

My most cited paper looks at georgraphy of Twitter showing the extent to which Twitter links tend to be local. It also shows that where such links span longer distances, they tend to correlate with airline routes. In addition to academic publications, I have written for popular venues, such as foreignaffairs.com.

For a more complete list of papers see my academic CV. Or you can look at my Google Scholar profile. And for those who care, my Erdős number is 4: Paul Erdős with Frank Harary, Frank Harary with Ove Frank, Ove Frank with Barry Wellman, Barry Wellman with myself.


I've been teaching courses at the University of Toronto since 2009. Here are some of the more recent ones.

INF2303 / CCT490: Understanding Open Source Software

Last taught: Summer 2013
A course exploring production of open source software, which I have taught at both undergraduate and graduate levels.
Outlines: Summer 2014, Summer 2013, Fall 2011, Fall 2010

INF2198: Critical Histories of Information Technologies

Last taught: Winter 2012
A graduate seminar approaching information and communication technologies from critical and historical perspectives.
Outlines: Winter 2012

INF1343 / CCT395: Data Modeling and Database Design

Last taught: Winter 2012
A data modeling and database design course taught in an undergraduate and graduate versions.
Outlines: Winter 2012, Fall 2011 Winter 2011, Fall 2010




Dot Theme by Carlos Alverez with background images based on photo by Jitze Couperus and desemery.