Technology and recessions: the rich (unfortunately) get richer

For some high tech companies, this recession has been the best thing that’s happened to them in a long time.

Recessions do some crazy stuff to product markets. When you have a recession, or in general when there’s a lot less spending going on by your consumers (businesses or people), the available revenue for all firms in the industry decreases. It’s sort of like rainwater collecting in a bowl. When there’s a drought, there’s less rain and less water collecting in your bowl. Consequently, there’s less water in the bowl at any given time, and only companies that are very good at drinking from the lower water levels can survive.

In economics terms, this ability to survive on less communal water has to do with something called cost optimization. Companies will always produce at the quantity where marginal cost (MC, the cost to produce the next level of output) equals marginal revenue (MR, the revenue you get from producing at the next level of output). Profit is the difference between the revenue you get at this intersection (point a) and where the point maps on the average total costs (ATC, all of the costs it takes to produce the good including the startup costs to get the company and operation up and running). This difference – positive being a profit and negative being a loss – is economic. It’s not just money; it takes into account essential things that aren’t easily represented on a balance sheet like how much time it takes to sell and produce a good or what the company could’ve been doing otherwise.

Continue reading

Posted in Business, Computer Software, Computer Technology, economics | Tagged , , , , , , , | Leave a comment

The importance of shutting the hell up

If I’ve learned anything being a product manager it’s that product managers are all  incessant know-it-alls. This position (and probably most of the high tech leadership positions) specifically attract nerds who have type-A personalities and at some point fancy themselves some weird combination of Alan Turing and Warren Buffet.

This makes a certain amount of sense when you consider the amount and diversity of the information you’re working with. A PM has to be both evil suit and unkempt hacker – or at least enough of each to be able to fluently communicate with both extremes. If I go into a room with a software engineer and I can’t speak in algorithms and programming, I’m not going to be able to really interface with that individual and get the information I need. Similarly, not being able to understand finance and corporate strategy renders you completely useless and unintelligible to essential folks who work in both capacities.  Ultimately, a PM lives and dies by his or her knowledge of everything and anything related to how their product is created, sold, and ultimately received by both the customer and the competition. If you’re a know-it-all, you’re more likely to be motivated in your pursuit of trying to master everything.

And you’re probably going to miss a lot of stuff along the way.

Continue reading

Posted in Business, Computer Software, Computer Technology, Marketing | Tagged , , , , , | 1 Comment

What you learn after midnight on a quiet mountain road

Sprawled out before us, in the alpine pitch of a Californian night, was the Bay. It was beautiful. A thousand points of light marked the cities of San Francisco, San Jose, and Oakland. Between them, trails of falling stars marked familiar sprawl of the in-betweens: verdant Palo Alto, prestigious Menlo Atherton, industrial South San Francisco. But here none of these descriptors mattered. Neither Hillsborough’s blue bloodedness nor East Palo Alto’s penchant for the pitter-patter of gunshots was noticeable. Each was the same: a point of light. Here we were distanced from the world and abstract.. This was a silent Olympus, and we mere mortals stood slackjawed at the majesty of it all. And it was all beautiful.

Continue reading

Posted in Personal | 1 Comment

4 proof methods your discrete math class didn’t teach you about

Proof by question wording:

The property or statement is true because the question is worded “Prove the following.” QED.

Proof by lecture:

This is the exact same problem from the lecture yesterday. You’re simply reusing it because you don’t want to write new questions. QED.

Proof by intimidation:

I assert that the above statement is true because I have both an incriminating video of the both of us drunk and naked and the e-mail address of the dean of students. QED.

Proof by Vin Diesel:

This above is true because Vin Diesel says it’s true. QED.

Posted in Uncategorized | Tagged , | Leave a comment

Google Code Jam 2010 (aka how OSX ruined my life)

I started GCJ with about 40 minutes left in the competition. It took me about 20-30 minutes to come up with the solution to ThemePark (complete with reference to Fabulous’ Can’t Deny It). It took me half a f4#@%ng hour to try and get OSX to do basic stuff like raw text editing and set up Eclipse. Long story short: you’re killing me Apple.

Following the competition I searched for a very tall building to jump off of, but I’m in San Jose so even that didn’t work out very well.

Here’s my code for ThemePark. It works with the small input sizes:

Continue reading

Posted in Algorithms and Computer Science, Computer Software | Tagged , , , | 1 Comment

The dream lives on

For the last few days I’ve been in Washington D.C. competing in the US finals for Microsoft’s Imagine Cup competition. My friend Parris and I wrote a software suite called Tesla that models the carbon footprint and electrical consumption of computer systems as a function of their workload and their components. This week has been the culmination of months of work on our part to create the technology behind Tesla and prove that it was marketable and worth being funded. And it’s been one hell of an adventure.

Being a finalist in Imagine Cup has been an amazing experience. Watching Tesla go from seventy quickly-scribbled lines of C# and an ugly-as-sin GUI to over a thousand lines of code (not including the server) that evoked “oohs” and “aahs” is an indescribably satisfying thing. Tesla wasn’t even the best in show too; the quality of work and brilliance of the folks I had the pleasure of meeting at the finals was nothing short of astonishing.

While technically the whole thing was a competition for prize/seed money and a chance to represent the US in Poland for all the marbles, I never really felt like I was competing against the people I met there. Despite the variety in topics – health care, climate change, women’s rights – each team was less in competition with each other and more locked in combat with the difficulties of bringing their ideas to fruition. We all fought the same battle to bring our work from pipe dream to polished and productized solution. And there was unity to be found in such a fight.

So as I sit here homeward bound a plane somewhere over the Appalacians (note: I’m posting this up after I land), remarkably sleep deprived and searching desperately for the words to try and recount what happened in an enjoyable and semi-comical kind of way, I feel like maybe talking about what actually happened isn’t the best way to approach it.  It’s not really the exact details that are important so much as the moral of the story – the grand lesson imprinted on one as they watch their crazy idea become a reality:

If you work absurdly hard, dare to be radically innovative, and really believe in yourself, you can do pretty much anything.

Continue reading

Posted in Personal | Tagged , , | Leave a comment

In a future without jetpacks

My friend Joyce once showed me a Threadless t-shirt called “Damn Scientists” that I believe describes the popular reaction of college grads my age to the real world. On the front of the shirt in caustic white/black monochrome is the following:

The text is as follows:

they lied to us.
this was supposed to be the future.

where is my jetpack.
where is my robotic companion.
where is my dinner in pill form.
where is my hydrogen-powered automobile.
where is my nuclear-powered levitating home.

where is my cure for this disease

Continue reading

Posted in Business, Personal | Tagged , , | 1 Comment

What we take away from what we lose

Last night my cousin Brittany passed away after a long fight with diabetes. She was younger than me – far too young to end such a promise-filled life. Brittany, her sister, and I used to be close when I was a lot younger and lived in Washington. Unfortunately, time and distance meant that all of us lost track of each other until recently.

Brittany recently started to try and get in touch with me after she found my dad (her uncle) on Facebook. It was frankly kind of weird to talk to her after wall of that time. She looked nothing like the memories I had of her, and our communication was strained by the harsh realization that both of us were sort of strangers now thanks to the mercurial nature of experience and life. Nevertheless, Brittany pushed hard to try and reconnect. She sent me messages, tried to chat with me on Facebook’s buggy IM client, and even left me posts on my wall.

Unfortunately, I was never there. Every time Brittany sent me a message I was away from my computer. Worse, when I was there I was always heading out to go do something. Brittany would send me a chat message, and I’d always fire back a “hey, i’m about to leave” or “yooo I gotta go – ttyl?” Honestly, I gave Brittany’s attempts to reconnect far too little heed than they deserved. I thought that I’d get another chance to talk with her when I wasn’t busy and put dedicating time to communicate with Brittany on the back burner.

But I was wrong. There wouldn’t be another chance, and Brittany would die before I’d really get a chance to reconnect with her.

I can’t help but feel like maybe Brittany knew her time was coming. Maybe her avid attempts to reconnect were because she wanted to set things right before she passed away. This makes me feel horrible because it’s my fault that we never had that opportunity. I was always too busy with my job, school, or my social life; I never made time for her because I was always so damn sure that I’d get another opportunity. I know that logically I can’t confirm any of this because so much of this is based on weak inference, but the computer scientist and mathematician in me is sort of taking a back seat on this one: in my heart I know that I could’ve done more and I didn’t.

I pick up a lot of things from my friends. How I deal with failure and personal shortcomings is no exception. I copied my friend Edlyn’s way of dealing with stuff like this because she traditionally had her shit together and her method was more structured: objectively assess what I did wrong, formulate a strategy, and execute. This method works wonderfully for academic, professional, and sometimes even personal failures. It allows you to address your shortcomings and ensure that you minimize the probability of making the same mistake twice by improving yourself. But Edlyn’s method frankly breaks down for me when the failure is particularly egregious. It’s easy to discount that the damage is already done for what you’re responsible for, but when the damage is pretty fucking bad it’s sort of hard to just dismiss it all to the past and move on. This is one of those cases.

Still, it’s all that I’ve got, and I’m trying to stick with the plan on this one.

When I was in high school I read a lot of poems in Latin by a guy named Horace. Horace is famous for Carpe Diem, a phrase that means “sieze the day.” This is a quote from his 11th ode (song/poem), a very epicurean piece that talks about how to live life given one’s knowledge of their mortality. I’ve put a copy of the poem below and translated it:

Continue reading

Posted in Personal, Poetry | Tagged , , , , | 1 Comment

Computers are for girls

Unfortunately, high tech is a very guy-dominated industry. I think there’s a lot of sexism inherent in engineering, and even though it’s dramatically improving I do not envy the position faced by women technologists. What’s interesting to me is how ironic this sexism is given that all of modern computing is  based on the work of a brilliant woman. Her name was Ada Lovelace, and she was one badass number wizard. Given that this is International Women’s Day, I feel like all of us computer geeks should give homage to the “enchantress of numbers” that ultimately gave us the glowing little boxes that we take for granted every day.

Ada Lovelace was born into one prestigious intellectual pedigree. While her name is taken from her noble title (Countess of Lovelace), Ada’s real name is Augusta Ada Byron – the daughter of the famous English poet Lord Byron. Her father died when she was young though, and Ada quickly moved away from her family’s literary roots into the exciting and nascent fields of number theory and computational theory despite being mostly bedridden due to sickness throughout her youth. Because of the period’s sexist take on education and her health, Ada was taught by homeschooling for most of her life.

Her homeschool teachers were pretty amazing though: Augustus De Morgan (a famous logician and the creator of the well-known De Morgan’s Law), William King (her future husband and famous physicist), and Mary Somervile (the lady who kicked off modern microbiology and fused math with science for the first time). Somervile later introduced Ada to a guy named Charles Babbage, who seduced Ada’s intellectual desires with a nascent field called “computation” and a wacky theoretical concept known as an “analysis engine.”

Ada’s work with Babbage revealed just how much of a smart cookie she was. Babbage is known for coining her the “enchantress of numbers” because Ada was able to fluently move between arcane and abstract mathematics and communication and writing. To get up to speed on Babbage’s work, Ada translated a piece of work on the engine from an Italian mathematician who wrote about the analysis engine as part of his dissertation. But like every other hacker out there, Ada sort of nerded out on it and started adding her own stuff to the translation in the form of footnotes. Eventually, her footnotes vastly outnumbered the lines of translation she grabbed from the Italian text. Babbage noted that Ada was going far above and beyond simple translation, and together they worked to refine his analytical engine and find mathematical applications for it.

The analytical engine – the first computer – would be a hulking mass of churning gears when Babbage eventually created it. In the prime of Ada’s intellectual life though, the engine was confined to designs and specs. Not having a physical copy in front of her didn’t stop Ada, and she used the designs to create complicated mechanical algorithms to calculate complicated stuff like the Bernoulli Series. In this respect, Ada was the first computer programmer. When Babbage later created the Analytic Engine (and his famous Babbage Counting Machine – the foundation of World War 2 era cryptological engines), Ada’s “programs” were some of the first calculation executed on this hulking gear behemoths to do everything from calculate bombing trajectories to help crack ENIGMA.

Given that she did all of her coding without a compiler (or even a computer!), one could imagine how badass Ada would have been on TopCoder or in the ACM ICPC.

Without the research in cryptography and computing done by Turing in World War 2, we wouldn’t have the modern computer. Without Babbage’s counting machine, we wouldn’t have Turing’s work. And without Ada, Charles Babbage would have just been some crazy guy talking about a mythical gearbox that calculated stuff.

Without brilliant women like Ada Lovelace (who now has her own programming language named after her), there would be no computer programmers. Hell, there might not even be computers.

Respect, Mrs. Lovelace. Respect.

Posted in Algorithms and Computer Science, Computer Software | Tagged , , , , | Leave a comment

“A [design methodology] by any other name…”

There’s a lot of “drink the cool-aid” action going on with vogue software development methodologies. Acting as a framework for the entire development process of software, design/development methodologies like Scrum and Agile offer ways for companies to architect physical development environments and creating software to better suit their effective company culture and ideally optimize their ability to go to market faster. Scrum and Agile are the big names around the ‘Valley, and consultancy firms make bajillions of dollars every year for converting “stale” firms from the evils of the boring and inflexible Waterfall model to these hip and flexible ways of alternating between testing and development.

Designing your development cycle is important. How I structure the development process of my software will dictate whether I can win or lose in getting incumbency over a market. But as a programmer (and now a PM), I think that we as an industry put way too much emphasis on where we lie on the Agile to Waterfall line. The level of absurd fanaticism around being an Agile firm or a Scrum firm (a crazier version of Agile where – take a look for yourself) is, well, absurd. Even still, having people trash on Waterfall because it’s old is just as wack.

Continue reading

Posted in Business, Computer Software | Tagged , , | Leave a comment