Unknown author on

Gccgo, more known as "the other Go compiler",  is a Go compiler that leverages gcc for its compilation power, things like automatization and code generation. It was written by Ian Lance Taylor and released in November 2009 and is  still maintained by him.

There is not much general info on gccgo, and not a lot of people know why it exists or why it's actually useful.

Chris Manghane from the core Go language team at Google will give a brief history of gccgo, talk about the current work being done to stay compatible, and a look at future possibilities.

NEW! Looking to meet other gophers or learn Go? Tell us who you're looking for here and our Matchbot will introduce you to the right developer from community.


About the Speaker

Chris Manghane works on the core Go language team at Google on the compilers and tool chains. Specifically, he works on gccgo with Ian Lance Taylor.

Unknown author on

Go was designed to build network services and as a consequence we have a rich ecosystem of RPC options at our disposal. This includes REST with HTTP+JSON, raw protobufs sent over tcp, or new entries like grpc and capnproto. This talk will explore popular options and considerations like interoperability, client generation, memory consumption, authentication, and encryption.

Andrew Gerrand Andrew Gerrand on

In this talk Andrew Gerrand discusses the state of Go; what's happening in the Go core in the lead up to Go 1.5.

Full list of all GopherFest 2015 videos here

Among the major changes are the conversion of the tool chain from C to Go, a new concurrent garbage collector, new tools for tracing and program analysis, and support for Go on Android and iOS.

More in the video:

This video was recorded at the GoSF meetup at New Relic.

Unknown author on

Evan Owen, Director of Engineering at Cotap, shares why they chose Go for low-latency processing and delivery of user-generated media content between mobile messaging clients. The challenges they faced prompted Evan to choose Go, specifically for the Groupcache library developed at Google. His talk introduces distributed caching using Groupcache in single and multi-layer configurations, working with images and media in-memory, as well as some insights into the world of cgo.

Paul Dix Paul Dix on

Over the past 4 months, Paul Dix and his team completely rewrote InfluxDB: from Go to Go. In this talk, he gives a quick overview of InfluxDB and shows how it's useful for metrics, analytics, and sensor data.

Paul also dives into the history of the project and why they chose to rewrite their previous Go implementation into the implementation they have now. He shows pain points with their legacy codebase and gives examples of how rewriting the code from scratch gave them the ability to do things they couldn't have done otherwise.

Paul closes out with some comparisons on usability, readability, and performance of the previous version against the new rewritten version.


This video was recorded at the GoSF meetup at Chain in SF.

Unknown author on

GopherJS is a compiler from Go to JavaScript. By now, it supports "nearly everything," including goroutines. It provides an opportunity to write front-end code in Go which will run in all browsers, enabling you to share data structures, code, and libraries from your back-end Go code, with benefits of having gofmt/goimports, godoc, static type checking, and helpful compilation error messages.

Robert Winslow Robert Winslow on

Robert Winslow talks about FlatBuffers, an efficient cross platform serialization library for C++, Java, C#, and Go. It was created at Google specifically for game development and other performance-critical applications. It provides access to serialized data without parsing/unpacking, while also still supporting data structure evolution (forwards/backwards compatibility).


Winslow is a consulting CTO to early stage startups. "I like math, long walks on the beach, and large markets."

This video was recorded at the GoSF meetup at Galvanize in SF.

John P John P on

This talk by John Mayer is an entirely-live-coded workshop on Elm and its core features: typed functional programming, declarative graphics, and functional reactive programming (FRP) with Signals. John also introduces a toolkit for creating interactive user interfaces for the browser.


This talk was recorded at the N Languages in N Months at The Ladders in NYC.

Unknown author on

In this talk Eric Jones examines an example of a "Real World" Haskell development stack. Regardless of chosen technologies, modern application development requires a common set of tools and techniques which include: easily configurable continuous integration, development Task automation utilities, single command deployments and easy roll backs and more.

Unknown author on

Ted Kornish (engineer) and Ryan Atallah (co-founder) from Arktos talk about the considerations in creating a Go codebase that's built to last. Specifically, how to keep your codebase type safe and maintainable. It may take more consideration from the start, but infrastructure is an investment in the future that will let you spend less time debugging and more time developing features. Ted and Ryan walk through how to invest in your infrastructure by making your Go codebase extendable, DRY, type safe, testable and with minimal code bottlenecks.

Slides available here.

This talk was given at the GoSF meetup at New Relic.

Ben Sigelman Ben Sigelman on

Building large-scale distributed systems is a challenge in any language: what about Go makes distributed system-building easier, what makes it harder, and what won't work at all? Former Google software engineer Ben Sigelman answers these questions in his talk about creating distributed systems in Go. He also addresses the fundamentals of healthy distributed systems and the joys and pitfalls of building them in Go.


View Ben's slides here.

This talk was given at the GoSF meetup at Pivotal.

Jay Kreps Jay Kreps on

Apache Kafka committer, Jay Kreps from LinkedIn, walks through a brief production timeline for Kafka. Jay goes over what's new with 0.8.2 and how to get the most out of new features like Log Compaction and the new Java producer. Jay also gives an overview what to expect from 0.9(?): a new consumer, better security and operational improvements.

Brad Oyler Brad Oyler on

Brad Oyler, lead developer at NBC News, talks about the transition he helped guide to move NBCNews.com to Node.js. He covers what challenges they faced and what best practices they found in the process. Brad also suggests when you would (and would NOT) want to use NodeJS for a content site as well as how to best test your implementation.


This talk hosted by the nodejs meetup at Shutterstock in NYC.


Ray Hightower Ray Hightower on

OpenROV (remotely operated underwater vehicle) was founded with the mission to make undersea exploration available to everyone. It is an underwater robot that runs Linux, Node.js, socket.io, and TCP/IP and is controlled by a web browser. OpenROV is also completely open source. In this lightning talk, Ray Hightower, software developer and founder of WisdomGroup, walks through his OpenROV construction, software architecture, and underwater exploration.

Thorsten Lorenz Thorsten Lorenz on

Node.js addons are a powerful feature that gives us the ability to drop down to low level C or C++ for performance and to leverage existing libraries. Thorsten Lorenz, Senior Software Engineer at NodeSource, gives a rundown on the basics of addons and how they work. He then gives a demo of nad, a node addon developer tool he built that shows that with the proper tooling, developing addons is easy and useful.

Kyle Dinh Kyle Dinh on

Full-stack developer Kyle Dinh talks about how to use AngularJS + Go. He explains the tools he uses and how he organizes his projects: Angular to build the front end and Go as a RESTful API server.

In this talk, Kyle walks through how he uses:

  • Vagrant to build an Ubuntu dev instance

  • Grunt/NodeJS to build the Angular front end

  • Grunt to admin the Postgres DB

  • Grunt to run Go unit tests and Selenium tests


This talk was recorded at the GoSF meetup at Thumbtack.

Code from the talk here

Peter Burka Peter Burka on

The introduction of lambdas to Java 8 might be the most significant change to the Java language since Java 2 was released in 1998. Lambdas and the accompanying functional operations like map and filter promise to allow Java programmers to write clearer, simpler code, and to take better advantage of parallelism. While creators of new code will be able to start using the features immediately, what should we do with the billions of lines of code that have already been written?

Peter Burka (Software Developer, Two Sigma Investments) gives an in-depth presentation on the paper Crossing the Gap from Imperative to Functional Programming through Refactoring by Alex Gyori, Lyle Franklin, Danny Dig, and Jan Lahoda. This paper proposes that we can automatically translate the existing body of Java code to make use of the new features. This improves the readability of the old code, maintains consistency between new and old code, and potentially improves performance. It also addresses technical debt.


This talk was given at the Papers We Love meetup at Viggle in NYC.

Amjad Masad Amjad Masad on

As the complexity of the apps we're building grows it becomes harder and harder to debug. Beyond your typical console.log and breakpoint insertion debugging Amjad Masad (Software Engineer, Facebook) discusses some of the lesser known JS debugging techniques that has helped him debug some of the more elusive bugs he’s seen while working on Facebook.

Enrico Teotti Enrico Teotti on

Enrico Teotti (Senior Software Developer, XO Group, Inc.) walks us through how he recently leveraged Rails engines to separate the public from the administration portion of a web application and deploy them to different servers leveraging feature flags.

Leif Walsh Leif Walsh on

Leif Walsh (Developer, Tokutek) gives a presentation on the paper The LCA Problem Revisited by Michael A. Bender and Martin Farach-Colton. The lowest common ancestor problem was first stated in 1973 and it took 11 years before an optimal solution was discovered, and another 16 before an understandable and implementable solution with the same bounds was presented. This deceptively simple problem comes together in the end and uses techniques that are powerful in plenty of other places.

Beyang Liu Beyang Liu on

Web apps need to be generally three things: functional, performant, and have a good API to interact with it. Beyang Liu of Sourcegraph talks about the D.R.Y method (Don’t Repeat Yourself) and shares lessons learned while building their Go app.

Chris Becker Chris Becker on

In any technology company one of the fundamental aspects of its identity is the technology stack, and programming language that it’s built on. This is what defines types of tools that are fair game, and more importantly, defines the types of engineers who are hired and capable of succeeding there.

Andrew Gerrand Andrew Gerrand on

Andrew Gerrand is an engineer at Google that works on GoLang. In his Gopher SummerFest talk, he takes us through Go’s timeline - where the language was yesterday, where it is today, and what is planned for the future (including the history of the Gopher logo and plans for Go 1.4!).

Derek Collison Derek Collison on

In 2012, Derek Collison (Founder and CEO, Apcera) predicted that “Go will become the dominant language for systems work in IaaS Orchestration, and PaaS in 24 months.” Today, he feels his prediction wasn’t too far off.

Robert Clarke Robert Clarke on

In this lightning talk, Robert Clarke (CEO, Kind Robotics) explains how he uses Python scripts to power drones. The scripts can maneuver drones, track motion sensors, and execute complex missions.

Chris Sachs Chris Sachs on

Type members and path-dependent types breathe new life into objects. This talk focusses on type abstraction, and how to wield it effectively to create simple, robust, performant designs. Chris Sachs (Senior Software Engineer, Sensity Systems) designed the experimental Scala Basis library, which implements simple collection interfaces with macro optimized extensions providing all auxiliary functions, efficient container implementations, and more.

Silas Ray Silas Ray on

Silas Ray and his team at The New York Times have been developing automation testing tools. Major problems they've had to solve include poor result visibility and unresponsive results. The team built the open source tools Sneeze and Pocket Change to solve these problems. In this talk, Silas explains how the New York Times has integrated Sneeze and Pocket Change into their testing suite and demos code to help you get started.

Alan Shreve Alan Shreve on

In this talk, Alan Shreve will begin by talking about decentralizing the web, but then he will talk about stream multiplexing in Go as a foundation for RPC. Specifically, he'll cover the Muxado library he built for this purpose (https://github.com/inconshreveable/muxado). Alan will explain how muxado makes a great building block for custom protocols and RPC, outline the design of the public API, and go over some of the clever tricks employed in the implementation to make muxado fast. This talk was recorded at the GoSF meetup at Heroku.

Aidan Feldman Aidan Feldman on

While building Jux.com, there was a need for applying transformations and effects to images in a way that would work across devices.  The Magickly app was built as a stateless image effects API.  To demonstrate its flexibility, the app was converted into a gem and used to power Mustachio - better known as mustachify.me.  In this talk, Aidan Feldman, education hacker at Github, will cover some of the architecture decisions for Magickly, some fun findings about ImageMagick, and the internals of both gems. This talk was recorded at the Anatomy of a Ruby Gem meetup at Artsy.

Niklas Nielsen Niklas Nielsen on

In this talk, Niklas Nielsen from Mesosphere, talks about Apache Mesos, a cluster manager that provides efficient resource isolation and sharing across distributed applications or frameworks. In this talk, Niklas will go over how to write frameworks for Apache Mesos in Go. It can run Apache Hadoop, MPI, Hypertable, Apache Spark, Storm, Chronos, Marathon, and other applications on a dynamically shared pool of nodes. The biggest user of Mesos is Twitter, where it runs on thousands of servers. Airbnb runs all of their data infrastructure on it, processing petabytes of data. This talk was recorded at the GoSF meetup at Heroku.

Keith Rarick Keith Rarick on

In this talk, Keith Rarick, formerly of Heroku, gives a brief overview on the state of dependency management tools for Go applications. He then provides a detailed run-through of godep, including initial setup, collaboration, updating dependency packages and working with third party tools. Keith also runs through deploying to Heroku, as well as godep's general philosophy of operation, specifically, why it works and the way it works.  This talk was recorded at the GoSF meetup at Heroku.

Brandon Philips Brandon Philips on

Brandon Philips, of CoreOS, will talk about etcd, a highly-available key/value store, and how it was built with and can be used from Go. He'll cover the basics of running an etcd cluster and the underlying consensus algorithm called raft. He'll also get into a practical use case for service discovery and shared configuration and wrap with how you can use etcd from your Go programs using go-etcd. This talk was recorded at the GoSF meetup at Pivotal Labs.

Richard Crowley Richard Crowley on

In this talk, Richard Crowley will discuss language features plus standard library and third-party packages that he uses at Betable to build scalable web services in Go. He'll talk about the strengths and weaknesses of the standard net/http package along with how they added third-party packages to shore up these weaknesses. He’ll also discuss JSON and its relationship with Go data structures, Go’s excellent support for reflection, and how to use it to create safe APIs. Richard will finish up by talking about logging and metric collection. (Much of what he'll cover is recently open-source as part of Tiger Tonic.) This talk was recorded at the GoSF meetup at Pivotal Labs.

Paul Phillips Paul Phillips on

In this talk, Paul Phillips, co-founder of Typesafe, will talk about collections for Scala. Based on Paul's extensive experience with scala collections, he decided to write his own. According to Paul, "The focus is much tighter: immutable, performant, predictable, correct." His talk will "will alternate between why the scala collections manage none of those things, and how I hope to do better." This talk was recorded at the Scala Bay meetup at LinkedIn.

Brandon Bloom Brandon Bloom on

In this talk, Brandon Bloom, engineer at Code.org, talks about the many trees that are in a Clojure programmer's software. Both the values Clojure programmers manipulate and the code they manipulate them with, are made from trees. It's way too easy to get caught up in a project and miss the forest for the trees, but one can also ask how often they've missed the trees for the forest? This talk is an exploration of trees from a unique perspective that will hopefully inform your thinking and lead your program design out of the woods. This talk was recorded at the NYC Clojure Users group meetup at Two Sigma Investments.

Al Tobey Al Tobey on

Two exciting talks on Cassandra and Go in this video! In the first talk, Kyle Kingsbury, who has tested Cassandra's behavior with respect to consistency, isolation, and transactions as part of the Jepsen project to educate users about distributed consensus, shares his surprising test results. In the second talk, Al Tobey, Open Source Mechanic at DataStax presents a brief introduction to Go and Cassandra, explaining how they are a great fit for each other using code samples and a live demo. These talks were recorded at the DataStax Cassandra SF Users meetup at Disqus.

James Rosen James Rosen on

Three exciting talks in this video: First Ben McRedmond will share his experiences with machine learning and go over some simple concepts (and practical details) which most web developers will benefit from knowing. In the second talk, James Rosen will talk about ways to make it simple for web developers to access front-end libraries at the HTTP layer for a faster and more automated development process. In the third talk Rudy Rigot, from prismic.io, will share his painful past experiences around manageable content, and will share his critical look on the various ways developers handle it today in their applications. These talks were recorded at the SF Ruby on Rails meetup group at Zendesk.

Bill Venners Bill Venners on

In this talk, Bill Venners talks about  ScalaTest 2.0, and how it is a vast enough forest that it is hard to see all the useful trees. Bill will guide you through ScalaTest 2.0 by pointing out lesser-known features of the testing toolkit that can help you get stuff done. You'll gain insight into what ScalaTest offers, why ScalaTest is designed the way it is, and how you can get more out of it. This talk was recorded at the Scala Bay meetup at Box.

Matt Story Matt Story on


A few weeks ago, a well-intentioned Python programmer asked a straight-forward question to a LinkedIn group for professional Python programmers:
What’s the best way to read file in Python?

Invariably a few programmers jumped in and told our well-intentioned programmer to just read the whole thing into memory:
f = open('/path/to/file', 'r+')

contents = f.read()

Just to mix things up, someone followed-up to demonstrate the exact same technique using ‘with’ (a great improvement as it ensures the file is properly closed in all cases):
with open('/path/to/file', 'r+') as f:

contents = f.read()
# do more stuff

Either implementation boils down to the use of a technique we call “slurping“, and it’s by far the most common way you’ll encounter files being read in the wild. It also happens to nearly always be the wrong way to read a file for 2 reasons:

  1. It’s quite memory inefficient

  2. It’s slower than processing data as it is read, because it defers any processing done on read data until after all data has been read into memory, rather than processing as data is read.

A Better Way: Filter

UNIX filter is a program that reads from stdin and writes to stdout. Filters are usually written in such a way that you can either read from stdin, or read from 1 or more files passed on the command line. There are many examples of filters: grep, sed, awk, cut, cat, wc and sh, just to name a few of the most commonly used ones.

Cliff Click Cliff Click on

In this talk on Machine Learning Distributed GBM, Earl Hathaway, resident Data Scientist at 0xdata, talks about distributed GBM, one of the most popular machine learning algorithms used in data mining competitions. He will discuss where distributed GBM is applicable, and review recent KDD & Kaggle uses of machine learning and distributed GBM. Also, Cliff Click, CTO of 0xdata, will talk about implementation and design choices of a Distributed GBM. This talk was recorded at the SF Data Mining meetup at Trulia.

David Nolen David Nolen on

In this talk, we hear from David Nolen from the New York Times about core.async, the new library for asynchronous programming in Clojure and ClojureScript. He'll be talking about Communicating Sequential Processes & Responsive Design. This talk was recorded at the NYC Clojure Users Group meetup at Two Sigma Investments. The transcript from this talk can be found here: http://g33ktalk.com/transcript-coreasync-clojure-library/

Mavina Puri Mavina Puri on

Bootstrap Beginnings and Getting Started with Ember.js - In the first lightening talk "Bootstrap Beginnings," Mavina Puri, from Condé Nast, discusses how to 'bootstrap' a web app with bootstrap and explains the bootstrap grid system. She focuses on a couple use cases, its core features and also its components, showing an example of bootstrap js and css utilities.

Sam Helman Sam Helman on

In this talk, we'll hear from Sam Helman, Software Engineer at MongoDB (formerly 10gen), on how MongoDB is integrating Go into their new and existing cloud tools. Some of the tools leveraging Go include the backup capabilities in MongoDB Management Service and a continuous integration tool.  They see using Go as an opportunity to experiment with new technologies and create a better product for end users. This talk was recorded at the MongoDB User Group meetup at MongoDB.

Jeff Scheur Jeff Scheur on

sfrails meetup
This talk was recorded at the SF Ruby on Rails meetup at The Climate Corporation last week. Jeff Scheur will give a lightning talk on what he's learned developing an educational site that teaches students grammar/writing skills. He'll share insights on how to avoid pitfalls in ed-tech that get the better of many engineers and discuss what technological advances make him hopeful for the future of education.

Danny Gershman Danny Gershman on

Aleksandr Yampolskiy, CTO of Cinchcast and BlogTalkRadio, and his colleague Danny Gershman will be presenting “Sharing Slides with 10,000 People in r/t: Socket.IO and Node.JS in Production” in this recording from the NYC Node.JS meetup. They cover tips on security and show how they approached securing their application. This tech talks covers securing Node.js & Socket.io in production.

Steve Souders Steve Souders on

We attended a huge g33k gathering in San Jose not long ago - the TechXploration meetup where we were lucky enough to record an exciting talk by web performance guru Steve Souders. Steve was accompanied by (Javascript wizard) Douglas Crockford for a talk called "Your Script Just Killed My Site" about the prevalence of front-end SPOF (that's "single point of failure") along with key tips as to how to make your front-end code more resilient.

Laurent Gautier Laurent Gautier on

We were lucky to attend the Bay Area R users group last week where we recorded Laurent Gautier's talk on the RPy2 bridge which allows one to use Python as the glue language to develop applications while using R for the statistics and data analysis engine. He also demonstrated how a web application could be developed around an existing R script.