Who is the best foosball player in the company? This question has followed me through three of my last four employers, ever since I spun my first rod back in 2005.

I’m happy to say that I’ve been able to provide my coworkers with an answer to that eternal question, through FRank, the foosball ranking site I first developed nearly ten years ago. If you’re interested in ancient history and FRank’s inception, you can read more about it in this blogpost from 2007.

A year after I wrote that post I left Optaros, and my foosball ranking site languished, nearly forgotten. After wasting a couple years at a sad little company that didn’t even have a foosball table, last December I found myself interviewing at Buildium, whose kitchen included not one but *two* tables! During the interview process, I made sure they knew that hiring me meant access to my foosball ranking site, too!

Naturally, after years of neglect, I wanted to clean things up a bit (and size up the foosball culture) before I opened the app up for public use. So over the past few weeks I put a few hours into a bit of a refresh. And I’m pretty happy with the result.

Here are some of my favorite new features:

Foosball table

First, I rewrote everything using Google’s Angular javascript framework. For non-techies that probably doesn’t mean much, but it’s cool new technology that I really need to learn anyways. And it allows me to easily do some cool things like providing predictions of the score of any given combination of players.

I also made it a single-page app, which means everything happens on one page, kinda like Google Docs, without any page refreshes because all that data comes from behind-the-scenes API calls. It feels more like a native application and less like a website.

Next, I redesigned it to have a mobile-friendly user interface, so that it would be simple and easy to use, whether you were on a desktop, laptop, tablet, or smartphone. It even has its own little icon so that its bookmark looks just like any other app on your phone.

I even added the Web Speech API, which allows anyone using Google Chrome to enter a set of players by saying aloud something like “Jordan and Matt versus Dave Owens and Ben”, rather than having to manually navigate four cumbersome drop-down lists.

In the first two weeks of public availability, the adoption rate among players here has been great. This week I added a user-suggested feature: when someone logs a game, a message is automatically broadcast in our company’s foosball chat room (from “FRank Foosbot”), summarizing the result for all to see.

Needless to say, I’m pretty happy with how I was able to bring it up to date with how the web has evolved. It’s been a fun coding exercise, while contributing something unique to the company culture.

The biggest irony, however, was when Buildium hired my old friend Dave. I worked with him at both Sapient as well as Business Innovation, where he wrote (and then lost the source code for) his original Microsoft .Net foosball application that inspired me to create FRank. And years later, we’re working together again, and I get to show him what his old foosball ranking system has evolved into.

Enough stuff has happened in the past two months that it’s time for another aggregated life update.

Health issues remain inconclusive. After surgery in December, I had another attack of abdominal pain around New Years, which prompted another visit to the GP and a followup CT scan. That detected nothing, so I’m back to eating a regular diet and taking a wait-and-see attitude. Meanwhile, I’ve taken the lull in proceedings to catch up on dental and eye stuff, get a new pair of glasses, and a haircut.

Watched the Super Bowl, since the Patriots were in it, and it proved to be a remarkably exciting finish. Whatever. I would rather the Revs have won.

Last month I observed the one-year anniversary of my kyūdō First Shot training. I also started learning hitote, which is a more involved form involving two shots and repeated kneeling down and getting up. It’s nice to have something new to think about and work on.

In January I made a long-overdue four-day visit to Pittsburgh, which was extended by two days due to Boston’s first huge blizzard disabling air travel. Pittsburgh wasn’t very eventful, but it was a nice visit.

Since then, Boston has been pounded by huge snowstorms one after another, causing daily gridlock, forcing the transit system to shut down for days at a time, and setting numerous all-time records for snowfall, wind, and cold temperatures. A sampler:

  • For the entire winter up to January 23rd, Boston only had 5.5 inches of snow. In the next three weeks, it would receive an additional 90.2 inches (over 7.5 feet)!
  • February broke the record for Boston’s snowiest month ever, and did it by the 15th of the month!
  • By the end of the month, Boston had received five and a half feet of snow, beating the old record by 50 percent.
  • Boston set the 4th snowiest 30-day period anywhere in American National Weather Service records.
  • It snowed on 20 out of 28 days in February.
  • Boston set its all-time record for greatest snow depth.
  • This has been Boston’s 2nd snowiest winter on record. We’re less than two inches away from setting a new record (9 feet of snowfall), and we typically get about 8 inches of snow in March.
  • An avalanche off the roof of a skating rink hit four people, burying one. Two of them had to be hospitalized.
  • Boston cyclists built a 40-foot-long “underground” snow tunnel for commuting.
  • In many cases, cars were so deeply buried that owners had to put cardboard signs on them warn snow removers not to plow there.
  • An MBTA ferry and a Coast Guard icebreaker both got stuck in the sea ice in Massachusetts Bay.
  • Blocks of sea ice more than 7 feet thick came ashore on Cape Cod.
  • During one of our blizzards, Mt. Washington recorded the highest wind gust it has experienced in seven years.
  • February was 12.7 degrees below normal temperature.
  • It was the 2nd coldest February on record
  • For the whole month of February, we only had one day where we reached the day’s average high temperature.
  • At 15 days, we fell one day short of setting the record for consecutive days below freezing.
  • At 43 days, this was the longest consecutive time that Boston has ever stayed below 40 degrees, beating the old record by 8 days.

I could go on at length, but it’s an experience that honestly is best forgotten. I will say that it has unambiguously strengthened my commitment to moving to a warmer climate.

Out of utter frustration with the weather, I set up and started using the indoor cycling trainer, which I didn’t use at all last winter. As a result, I’ve already earned $66 as a paid cyclist, thanks to my company’s health benefit…

And I’ve now been working at Buildium for 100 days. The money is happy, the atmosphere is friendly, and we’ve added yet another old Sapient (and Business Innovation) coworker. I’ve been doing a lot of Javascript, Knockout, and Angular work, which is enjoyable (mostly).

Thanks to the snow, I worked from home several days, and enjoyed an empty office when I made the trek in. I’ve made three satisfying lunch expeditions for Thai from Lanta (formerly Rock Sugar). Our company recently announced our first acquisition, and it looks like the two businesses complement each other well. And I hope to hear news about improvements to our office space.

While there, I’ve enjoyed rebuilding my foosball skills, and have been alpha testing a new version of my foosball ranking site. I’ve optimized the UI for mobile devices, made it more interactive by porting it to the Angular Javascript framework, and made it behave more like a single-page application by burying all the data requests in behind-the-scenes JSON AJAX requests. After talking it up to my coworkers, I’m excited to open it up to general use! I’ve even played with the Web Speech API and hope to incorporate speech recognition into it soon.

Otherwise I think things are quiet. Like that thrice-damned groundhog, I’ve been holed-up, waiting for the mountains of snow to recede before venturing back out into the world.

Before I talk about my new gig, a brief word about the old one. I spent nearly three years working for a student loan marketing company called Edvisors. In 2013, a company from Las Vegas bought them out and phased out our Boston headquarters.

The title of this article is a bit of an inside joke. Edvisors had a lot of turnover, and people came to appreciate the euphemism “Transitions”, which was the usual subject line on the emails announcing another coworker’s departure.

Edvisors was pretty political and had (insert superlative adverb) outdated technology. On the other hand, I’m very proud of what my team accomplished. We built a good frontend team from scratch, set up vastly improved processes and standards, and dragged the company kicking and screaming toward 21th century technology and design practices.

Even after a six-month soft landing at Edvisors, I still took some additional time off. In the past year or two, the frontend technology field has advanced radically, most particularly in client-side Javascript frameworks like Angular and Ember. At the same time, I started hemorrhaging money thanks to repairs and medical bills from two big bike crashes, diagnosing and removing a faulty gall bladder, big vet bills after the sudden death of my pet cat, and renovations to my condo. Between rapidly changing technologies and a shrinking nest egg, it was time to get back to work in earnest.

Once I got serious about the job hunt, it took just a month. I only sent out four resumes, and got responses from three of them. I’m immensely thankful to have so many helpful local connections and a nicely loaded resume. It was also nice to get through the always-stressful tech interview; you never know what questions (or coding exercises) you’ll be asked, and despite having lots of experience, one always wonders how one’s tech chops will measure up against other candidates.

So two weeks ago I joined a company called Buildium, which was founded by a couple old coworkers from my Sapient days. Once upon a time, they bought and started renting a couple apartments, but discovered there was no good software to help them manage their properties and renters and contractors and taxes… So they built it themselves and started selling it, and they’ve built a thriving business around it.

Buildium logo

I’m a senior member of their growing frontend team, and I’m really excited that they are transitioning to the Angular framework, which is a tremendous opportunity for me. They also have a strong UX design practice, which is a real differentiator for a small product company.

In addition to the two founders, Buildium employs four other old friends from my Sapient days: one’s still a working designer, and the others each manage Buildium’s technology, design, and product management practices. And there’s at least one more old friend starting in January.

Even though it’s been about twelve years since we worked together, I was surprised by the things my old friends remembered about me. One of them recalled that I was the kind of person who absolutely didn’t want to climb to senior/leadership positions, and another fondly remembered the “Snackland” website I built (in ASP & ADO!) to help teams vote for what snacks they wanted to spend their collective money on.

Having kept in touch with some of those guys, I recognized the company name when a developer position at Buildium appeared in my RSS feed of job listings one day. I reached out to one of those buddies, and the rest was pretty straightforward.

This constituted the unlocking of one new achievement: the first time I’ve ever received a job offer without ever meeting anyone at the company face-to-face! Most of the vetting was done by phone, with one video chat for the tech test with a developer in California. In fact, I was the one who insisted on coming in to check out the office and meet a few people before accepting their offer! Very different experience.

As a company that prioritizes employee satisfaction, the benefits are refreshingly good: completely flexible PTO, the potential to work remotely, and of course I’m pretty happy to have decent health insurance again, after footing the bills for my recent medical issues. And they have not just one, but TWO foosball tables, which means I need to work on restoring the meisterly skills I had six years ago. Initial indications are positive, but considerable practice will be required! There’s also the opportunity to rewrite FRank, the foosball league ranking site I made so long ago, perhaps adding a mobile interface and speech recognition!

They’re located at the opposite end of Downtown Crossing from where I used to work at Optaros, so I know the area pretty well, and plan to revisit Lanta, the Thai place that formerly was Rock Sugar, my go-to lunch spot.

I’ll also enjoy a reprise of the walking commute I had down the statue-lined Comm Ave mall and through the Public Gardens and Boston Common. Or ride a whopping two stops on the Green Line… Definitely beats the hell out of the 40-minute commute down to Quincy that I had last year! Although I’ll miss having that nice, long bike commute, too. It’s not worth riding one mile to Buildium; it’d be as pointless as going out for a two-block jog!

On that note, there is a Buildium Strava cycling club, and their big company outing is to ride the 175-mile Cape Cod Getaway charity ride for MS each year. It goes from Boston to Provincetown, like the Outriders ride I do each year; while the MS ride takes a leisurely two days, Outriders does a shorter 130-mile route in just one day! Amusingly, it usually takes place one week before the MS Ride.

I also garnered an enviable second new achievement: coming in to work wearing jeans on my first day! Very cool! But my first day ended with something a lot less cool: when I went home and checked my postal mail, I received a note that my gall bladder surgery was scheduled for Thursday, only two days later! So at the end of my first workday, I had to ask on short notice for two days of PTO!

After taking Thursday and Friday for the operation, I returned to start my second week of work a week ago. I set up my development environment and finished my first code fix. Then Friday was the company holiday party…

I already posted to Facebook about the awkwardness of starting a new job right before the holiday party, which is an experience I’m always desperate to avoid (as related in this anecdote from my Sapient days). Fortunately, two weeks was sufficient to break the ice with some officemates—thank goodness for the non-threatening mixer value of foosball!—and so I survived our seasonal Mandatory Fun.

My third week began with the deeply exciting experience of PAYDAY!!! I also have transitioned into a new (semi-permanent) team, so that I can cover for another frontend dev who is moving away at the end of the week. That’ll provide some immediate challenges, but it’ll also be exciting to be able to really dig into the work.

So overall the new job is Really Good.

Here’s one final observation. Having always set money aside when I was working, I’ve had the flexibility to take some time between jobs to unwind and just enjoy life before jumping back into it. But this fall I looked back at my resume and was a little surprised when I added up the numbers; since 2002, when I left Sapient, I’ve taken almost seven of the past 13 years off!

And being honest, I have to say that it was a really good thing. I’ve enjoyed entire summers kayaking or cycling, and been free to travel or devote time to my meditation practice. Given how insanely stressful and frustrating and exhausting software development can be, I think those periods of relaxation have been a real lifesaver for me. I definitely think it’s nice to pull a year or two of one’s retirement forward, so that one can enjoy time off while one’s still (comparatively) young, strong, and healthy. And the break gives one time to decompress and reconnect to one’s enthusiasm for work (and money!) before going back to the daily grind.

Now my most recent little sabbatical is over, and it’s time to dive back into the melee. But at Buildium, I’m really excited by the company, the people, and the technology, so I’m planning on enjoying it quite a bit.

One part of my life that I haven’t mentioned here is foosball.

My first exposure to foosball was when I started working at BI in 2005. Initially, I viewed foosball (table soccer) as a pretty stupid game, but I did start playing a bit. It was interesting to see the differences in skill level between good players and neophytes, and I decided I’d start cultivating my skills. Despite the rather mundane nature of the game, there are a lot of subtle skills one can develop, and it’s really quite interesting, once one actually gets into it.

Foosball table

When I moved to Optaros, I found they, too had a foosball table, and I started putting real effort into on developing my game. I also took over most of the maintenance of the table.

At the same time, I missed one of the features we had at BI. Our lead architect had begun keeping track of scores and developed a ranking system based on the same system used to rank chess players. It grew into a full-fledged .NET application, and people really took to it. I decided I’d bring “the foosball app” to Optaros.

Unfortunately, when I asked the guys where the source code was, no one could answer me. So I wound up having to study the Elo ranking system and reverse engineer the thing all over again, this time using Perl and MySQL. I called it “Frank”: Foosball Rank. I took the opportunity to tweak the UI a bit, and you can see the result here. Neeto features include charts of each player’s rating over time, and the ability to predict the score of any given matchup, based on the players’ ratings.

The cool thing is that people at work have taken to it pretty well. At first, I was entering all the scores myself, but people have caught on, and now it seems pretty self-sustaining. It made for a fun little project, and the level of competition has definitely gone up since the system went into production back in June. I guess if I was smart I’d put some advertising on that page and generate some revenue from it, but that’s not gonna happen.

But the foos—and the foos app—are definitely interesting additions that I’m enjoying.

Up, date!

Jun. 30th, 2007 06:02 pm

Time for a quick general update. Things have been pretty good of late.

On the work front, I’m not at the client site anymore, which is really nice. Still working for that big lingerie retailer, which is mostly okay. The other day I learned what a tanga is. Sadly, not through a hands-on demonstration.

And I’ve changed roles on the project from business analyst to UI engineer, which is great; I like to balance my work experience between business, creative, and technical roles/tasks.

Got my first performance review last week. It was pretty glowing, which is gratifying, considering I was instrumental in pulling this project out of the hole it had dug itself. The few criticisms I received were mostly about how we as a team could have better handled a couple issues, rather than any individual shortcomings, which was also encouraging.

Being at the home office also means I can go down to the Haymarket to buy produce on Fridays, which has really surprised me. Last week was typical: I got 10 limes, 6 bananas, and a quart of strawbs for $4; the limes alone would have cost me $10 at the grocery store in my neighborhood! The savings at Haymarket is just ludicrulous, and I’ve been eating a whole lot more produce lately as a result.

The other thing I’ve done for work is recreate an improved version of the foosball ranking application that we used to run at my last job. It runs off the Elo ratings system that’s used in ranking chess players, so it has a bit of advanced maths to it, but it also lends a bit more credibility. I’m pretty happy with it, and so far it’s been pretty popular with the boys at work.

A week or two ago I got an email out of the blue from a nonprofit that wants to use one of my photos for a member mailing, and potentially have me do a multi-location photo shoot for their website. Paid! Granted, I’m not gonna charge much at all, both because they’re a nonprofit and I can use it to build up my portfolio. And it’s got me learning about how to price photos and effectively negotiate copyright rights. So that’s very cool, but it doesn’t deserve more press than that until it’s a done deal. It’d be sweet to be able to say I’m a paid photographer, in addition to being a paid writer and award-winning poet!

Bought new luggage, too. I liked my old red wheeled Kenneth Cole duffel, but the fabric had torn, so it needed to be replaced. It only survived the trip to Las Vegas thanks to copious last-minute application of Gorilla Tape. I couldn’t decide between the larger or the smaller Samsonite wheeled duffels, so dang, I bought ’em both, and still paid half of what one Tumi bag would have cost. And they’re a very pretty royal blue, which makes me happy.

Went to the dentist for… uh… the first time since I was laid off by Sapient. I have to go back in a couple weeks for xray results and a real exam, but the hygienist seemed to think things were actually very good. I’d been fearing much worse.

My assistant editor is preparing and sending out the next issue of DargonZine. It’s wonderful that I don’t have to, although he’s taking his time at it for someone who set a goal of getting nine issues out this year. Still, I don’t envy him; it’s not bad when you know the process, but it’d be quite involved for someone not familiar with how it’s done and the dozen or so technologies behind it.

There’s a mess of health and bike stuff to talk about, but it’s all going to go into [livejournal.com profile] ornoth_cycling, where it belongs.

Except for this one comment. By the end of this year’s PMC ride, I’ll have raised around $26-$29k for the Jimmy Fund. Thinking about that, it’s kind of staggering. That’s enough money to buy a pretty decent car, or pay $1200 per month in rent for two years. It just staggers me that my friends have been so incredibly generous. Then you think about the 5,000 other people who ride each year, who have similar fundraising stories, and you get an idea of how massive an impact the PMC has on the Dana-Farber’s ability to advance the state of cancer treatment and prevention.

That’s a great thing to be a part of, and a nice note to end on.

It’s a common belief that women by nature have a more developed sense of empathy than men. Whenever a child cries or someone is treated unfairly, we usually expect a woman to respond in a more sympathetic manner than a man.

As the generalization goes, we think that men are cold, stony, and insensitive. A man simply isn’t capable of putting himself in someone else’s place, of understanding and responding to what someone else must be feeling.

The irony of this belief struck me recently, while I was observing some guys participating in a mildly competitive but friendly game of foos. The gentlemen were very engaged and animated, vocally sharing their excitement when someone benefited from good fortune or made an admirable shot, and commiserating over the occasional unlucky bounce. And they certainly were bonding with one another through those shared emotions.

Anyone who has any question about whether men are capable of empathy would have that misperception corrected by watching a man engaged in or observing any competitive pursuit. The reason why men get so visibly wrapped up sporting events is because he knows what it feels like. That might be a different kind of empathy, but it still meets the dictionary definition: the awareness and vicarious experience of another person’s feelings.

Tomorrow there’s a rather big sporting event going on. It might be a good opportunity to watch this masculine version of empathy in action. I’d be curious to hear what you observe.

Ironically, one of our female officemates came by during that foosball game and expressed her complete disinterest, and even joked about how “into it” the guys were, mocking the men for their emotional involvement in a mere game. Does that not mean women lack the ability to connect with others’ feelings, at least in this particular fashion? Perhaps so. And perhaps our preconceived ideas about “empathy” warrant a less gender-biased examination.

Day One

Nov. 6th, 2006 09:19 pm

This is just going to be a quickie to debrief from today’s first day of work at Optaros.

I think it’s going to be a lot like Sapient’s early days: a lot of learning and leadership, really exceptional people who earn my respect, the possibility of a future financial windfall, exceedingly busy, and another major WBL challenge. Oh, and that stipulation about travel? Don’t be surprised if I’m writing from Boise next week…

The net is that Optaros is probably where I want/need to be, career-wise. It’s good to be in my stretch zone for something I’m interested in, but at the same time, I will need to very actively manage my commitments. If “time is money”, then the instruction to “pay yourself first” implies that WBL should take precedence over job. I’m just going to have to be aggressive about putting that into practice. Very reminiscent of old-school Sape, except hopefully I’m not just older, but also wiser. On verra.

I know that’s a lot of caveats, but it’s also very exciting, which is also reminiscent of olde Sapient days. And I’m utterly stoked to sink my teeth into some of the Open Source/Ajax/Flex goodies that are out there. It’s been a long time since I’ve been this motivated by my work.

I have also confirmed that they’re not at Bus Innovation’s level of Foos aptitude, and nowhere near Endeca’s. There will be much pillaging and plundering.

Oh, and one more thing:

PLEASE GO VOTE!!!

Frequent topics