February 2012
2 posts
The Candidate
A few months back, we had a candidate for a front-end developer role who we loved. Self taught technologist, easy design sense, great academic pedigree. A work in progress technically, but his potential seemed solid and he met a core need for us at the time. He seemed to click with the team, sounded impressed with our company, and had great things to say.
We made him an offer, and we lost...
Sci-Fi Hi-Fi: A Plea for Better iOS Text... →
buzz:
Awhile back, Jacqui Cheng from Ars Technica contacted a bunch of folks (including me) for a story she was putting together about what iOS devs would most like to see from Apple in 2012. Unfortunately I never got around to responding (sorry Jacqui—the holidays were crazy), but if I had, one…
January 2012
4 posts
Document Stores and Sharding
I was inspired to jot this down by this tweet from Chris Dixon:
“I’m still trying to wrap my head conceptually around how getting rid of sql structure helps with sharding / replication.”
https://twitter.com/cdixon/status/160937251528916992
The answer is data locality. Relational stores, by definition, formalize not just the schema of individual tables but of their...
Scaling Source Code
Code structure must scale as an organization grows. I’ve said before that Scaling is Performance decoupled from Load, and I think the analogous statement might be that scalable code decouples maintainability from team size.
At an early stage, we’re all just strapping things together with duct tape and working to get our ideas validated by our markets. The pressure on code at this...
Should You Learn to Code?
Maybe. More importantly, what do you need to do to succeed at it if you try?
Programming isn’t something you can take a couple of courses in and become useful. It’s pretty much the opposite of that (bias alert: I never studied CS, and taught myself to code, so there’s that). Programming is a trade. It’s like making shoes, or singing, or playing a sport. You...
Software Architecture
It means taking a stand.
It’s easy to think of architecture as a series of choices: which database, which operating system, which programming language, which framework. All of those decisions should flow naturally from having a clear idea of what you’re building and why.
What are you going to hang your hat on? Responsiveness? Reliability? Durability? Throughput?
A good system...
December 2011
3 posts
blog.ChrisRicca.com: My New Siri Headphone Setup →
chrisricca:
If you have an iPhone 4S you know that while Siri isn’t perfect yet, the spoken interface can be amazingly useful, and it’s definitely the future. While Apple works out the kinks on Siri from the software side, I’ve been searching for the best accessory setup for talking with her on the go or when…
The Hard Part, the Fun Part, and The Details
I’m not a big fan of estimation. It’s hard to get right, and in software, today’s “easy” is tomorrow’s “more complicated than I thought.” But we still have to estimate from time to time, and I’ve started to notice a pattern to one form of estimation error:
When a software engineer is looking at a project, she immediately grasps The Hard...
The Rules of Eventual Consistency
At GameChanger we take in tons and tons of data, and have to serve it up really fast in different kinds of formats. Our core tools are Python, MongoDB, and Redis. Our big focus for the Spring baseball/softball season right now is “scaling”. I’ve been talking a bunch about scaling recently (at CTO School and the NYC Python Meetup, specifically), and I’ve started using...
August 2011
1 post
The Lion Window Manager is Broken
Command-Tab Foregrounding: when I switch to an app, I expect it to be foregrounded. For non-full screen apps, I am more often moved to the space it’s in, but left looking at the most recently foregrounded app in that space.
Command-Tab Recent Apps: I have 2 full-screen Safari windows open. I am looking at one of these, and Command-Tab over to Terminal. I now Command-Tab back. I get the...
July 2011
1 post
May 2011
1 post
MongoDB Gotchas (a couple)
A friend asked me last night for my favorite “Mongo Gotcha.” He of course had one in mind, but I came up with a few, so I thought I’d jot a down the ones that I came up with on the spot (if you have more good ones, feel free to add in comments, and I’ll update)
Replication Gotcha #1: (this was his) If you lose a majority of your replica nodes, those left will be unable to...
February 2011
1 post
Verizon iPhone
First impressions:
I can hear you now.
it took a few minutes to activate the phones, but my AT&T numbers were active on Verizon within 5 minutes of activation, painless.
internet is plenty fast
Apple sales clerk at store said: “with a new product release, we usually get a few thousand people in the first 1-2 days, and we were preparing for that. we’re seeing more like a few...
November 2010
2 posts
Mustache: hero in a distributed data world
GameChanger is a data business. Our primary visible product is a suite of apps & a website, but we live to collect piles of raw scoring data and build it up into live streams, text messages, automatic recaps, and crazy stats.
A reality of doing all this is that at various points along the lifecycle of that data, from mobile device to server to user, we need to perform consistent calculations...
Skip the startup, come work with us!
I know it’s not PC to say this in the startup community, but the more I look at the commentary on the frothy early-stage scene, the more I want to tell people, “stop!” Don’t try to build that wacky thing into a business, even though maybe you could get it funded in this market. There’s going to be a reckoning soon, and you’re going to have to have good...
October 2010
1 post
3 tags
Apple's war of words
Jobs, on the $aapl earnings call, tried to transform “open/closed” into “fragmented/integrated” in a long rant, and did a fair job of reframing the iOS/Android debate favorably.
The new MacBook Air commercial might be an even more powerful demonstration of the technique, however.
The Air uses “flash storage,” later “flash technology,” and...
September 2010
1 post
2 tags
Project Productivity aka my iPad's Purpose in Life
I’m always fighting the lures of all this awesome media we have access to these days, primarily being Twitter, Facebook, and RSS feeds. There are so many interesting people blogging, talking, and sharing now that one can spend all day looking at it.
And media now reaches all the way down into my desktop actively: RSS unread numbers popping up in my browser, Foursquare notifications through...
GameChanger and MongoDB: a case study in MySQL...
When I’m headed out to meet someone for the first time, I usually send a text or email to the tune of “I’ll be the guy in the GameChanger shirt & blue hat who’ll be about 5 minutes late.” I’m just that guy. I’m either late, sprinting, or both.
So Mongo. Jerry Hsu and I presented at MongoNYC a few months back, and I promised to post some of the...
July 2010
3 posts
Product Design Kung-Fu
I know, I owe posts on Mongo and Tornado. I’ll get there, I promise.
I had a great meeting today, talking with members of a customer demographic for a new piece of software, and they had very specific demands for changes to what I demonstrated.
There’s one trick I’ve learned that I wanted to share, though: when a customer asks for a specific (reasonable, important) feature...
IPO Thoughts (with my comments) →
2 years, thousands of versions.
Two milestones today: 2 years since my partner Ted and I decided to start toying with this whole “gamechanger” concept, and the release of the GameChanger Baseball / Softball Scorekeeping application version 2.5. The deceptive part of that “2.5” moniker is that it’s really 2.5.6.1. All those extra numbers mean that between the time we decided the changes made since...
May 2010
2 posts
MongoNYC & Limewire Posts
Aside from the usual busier-than-thou excuses, I’ve been sick, but I’m planning a series of posts detailing the stuff I talked about this month. I’m thinking I’ll break them up into something like the following:
GameChanger and MongoDB: a case study in MySQL conversion
Intelligent Caching with MongoDB
Lessons from Scaling Mongo: indexes, scans, sorts, and gotchas.
A...
Hacking and Founding in NYC
A couple of great posts on tech/business founders in NYC popped up in my tweetstream today, one bemoaning the lack of hackers, and one bemoaning the lack of worthy entrepreneurs, and I feel the urge to jump into the discussion.
I can see both sides of this: I’m hiring (http://www.gamechanger.io/jobs), and it’s been a struggle to find good engineering talent. And I hear the same...
April 2010
3 posts
Me Month (GC at NYTM, Tuesday May 4th, etc.)
Somehow May has turned out to be an unusually public month for me. To complete the trifecta:
Ted, Calvin and I will be presenting at the New York Tech Meetup on May 4th: http://www.meetup.com/ny-tech/calendar/12976031/
I’ll be doing a lecture at Limewire on May 10th, on iPhone/mobile/real-time/dev process.
10gen is throwing MongoNYC on May 21st, and I’ll be giving a 30 minute talk...
February 2010
1 post
2 tags
Unpopular Stances: Apple's Strength?
Every time Apple makes a move on AppStore policy, there is a chorus of groans from the developer community.
Today, Apple changed terms to say that you can no longer use Location services in an app primarily for the purposes of targeting ads, if your app is not using those services already for ‘beneficial’ functionality. While many people will spend time parsing the word...
January 2010
4 posts
5 tags
Speed, Capacity, Scalability
They’re not the same thing, and they’re not optimized the same way. People throw around the word “scalability” all the time without having a clue what it really means.
So let’s talk about the components of performance.
Speed is about how fast your software works for any given operation, independent of data load and demand. You address speed with profiling and...
LNMP
2 years ago I had never used anything in our current technology stack. I f*cking love it.
Our first prototype at GameChanger was a more obvious LAMP incarnation, Linux+Apache+MySQL+Python, where the only variation from the original was Python over PHP (thank goodness). Where we’re going now is starting to be a clearer departure from that stack.
The first mutation was swapping MySQL for...
Hiring: Similar or Different?
I was once turned down for a CTO job because the CEO said I was too much like him, and he needed to hire someone different to balance out his team.
As I’m looking over a crop of talented developers, I’ve been contemplating whether one needs to hire Ninjas or Soldiers, but realized that I could phrase it in these terms as well. Do I want to hire someone with similar core-competencies...
6 tags
1Q84 and the Autodidact
I’m reading Murakami again. I first fell in love with his writing in a Japanese lit class at Middlebury, reading him in the English translation. Soon after, during my year at Keio University in Tokyo, I picked up a copy of his Wild Sheep Chase (羊を巡る冒険) in the original Japanese, and started reading it.
It took me 6 months to get through the 2-volume (thin soft-cover volumes) novel the...
December 2009
4 posts
On Soldiers and Ninjas
It’s been a topic of hot debate around the GameChanger offices over the past few weeks as we focus on our next hire.
Do we need, or in fact even want, a “Ninja” for our next programmer? And what does that mean?
A lot of job postings look for Ninjas, Gurus, or Hackers, and I think what we’re trying to select for is the ego and ambition of an alpha programmer. Indeed, many of the best coders I...
7 tags
Programmer Productivity & Hiring
It all started in 2005. I had just joined Eliot Horowitz (now of 10gen/MongoDB) and Dwight Merriman at ShopWiki’s new closet-sized office in SOS in NYC (funnily, I write this post from GameChanger’s digs a couple of hallways down: same floor, better light). Eliot had been hacking for 6 months in Starbucks and his apartment (with an XServe on the coffee table, back in that brief...
Being infinite
I find it’s a common problem in building a startup that the pipeline of work approaches infinite length while the hours in the day and LOC output level I can sustain remain markedly finite.
There are a few tricks I’ve found for keeping a semblance of sanity in the face of it all.
First is GTD. I’ve never really been a structured-process guy, but incorporating some basic principles of Getting...
Reverse Lake Wobegon Effect
cdixon:
Bill Gates walks into a bar, suddenly the average wealth of people in the bar goes from thousands to millions. And also now everyone in the bar except Bill has below average wealth. Similarly, contributors to user generated websites like Wikipedia are almost all below average. There are a few people who contribute a ton, and a whole lot of people who contribute very little. This is...
October 2009
1 post
5 tags
Hubris
Verdict: guilty, on two charges of Hubris in the 1st degree.
Charge the first: programming hubris. I should know better by now, but 2 months ago I embarked on a complex refactoring of some serious offline/online synchronization code. It nearly killed me. I basically disappeared into a cave, talked to no one, and didn’t come up for air until, 6 weeks and 30k lines of code in, I was...
February 2008
1 post
The SEOrentity Prayer
Google grant me the serenity To change the SEO I can change To accept the algorithms I cannot see And the wisdom to know the difference
January 2008
1 post
My dream
i hope the super bowl is green bay vs patriots. — fred-wilson