I’m in the process of refreshing my site. I’ve been an independent consultant for a year and it’s time for the site to reflect that. Stay tuned.
No Comments »Discursive ruminations.
I’m in the process of refreshing my site. I’ve been an independent consultant for a year and it’s time for the site to reflect that. Stay tuned.
No Comments »
This is my network layout. I’m waiting a little while to invest in proper network infrastructure. On my EVDO I get T1-level bandwidth from Sprint on an unlimited plan.
I can do video chat, Pandora, Skype, and even SSH connections over the air. I’m pretty happy with it as an interim solution.
I’m using my MacBook as a router and its connected to an Airport Extreme in bridge mode. That has a 500GB hard drive connected to it for network storage and it shares the EVDO connection with servers, my iPhone, and my guests.
It’s a patchwork at the moment. In the next month or two I’ll have Verizon FiOS feeding the Airport Extreme directly. This is bootstrapped to the max.
I was talking with someone the other day about my time as (Interim) VP of Engineering at Socialtext. Did I enjoy that? The question was framed like this: some people just like doing things and not dealing with the social aspects of management. But I wonder, are they really much different?
Software development is creating, maintaining, and evolving a system. Use whatever action verb you like, you are working with a system. That system can be made better or worse by your actions. If you fix a bug the system is better. Remove a networking bottleneck? Better. Introduce a needless database query on every iteration of a loop? Worse.
Software doesn’t work in isolation. The system is bigger than that. If you increase the memory requirements for your software the servers had better have enough memory to manage it. If you rewrite your code in Python a host of changes are required to make that change possible.
How are teams much different? Leading a team requires the creation, maintenance, and evolution of a system. Again, you can make it better or worse. Help a peer solve a problem with a better tool then your system is better. Reduce needless process? Better. Introduce a needless process on every iteration of development? Worse.
I think both people and technology are irrevocably intertwined. In fact, hacking on one and not the other will cause the performance of both to suffer. This is called Sociotechnical Systems Theory.
A team survives - and eventually thrives - through the joint optimization of their sociological and technological systems. Improving one alone often leads to recessive tendencies in the other. The nature of a team is the symbiotic relationship between its people and technology systems. Success can’t be realized by improving technology alone.
This concept is often hard for everyone. Technologists find it easy to ignore social aspects of an organization. Non-technical specialists are reluctant to consider the artificial reality of technical objects like software. So it can be hard to consider both technical and social aspects of a system.
The delivery of meaningful value to customers requires the actions of both people and technical objects. One can’t improve without the other. Technical achievement is equally as important as social advancement.
Hacking on the social realities in your technology team has strategic value. A healthy team can do more than generate fantastic technological innovations because a healthy team can more accurately assess the environment they’re in. A viable business strategy can’t simply focus on organizational capabilities as most technologists are prone to do. The environment your team operates in isn’t the primary strategic factor as many non-technical specialists see it.
The decision isn’t either/or among organizational capability and environmental reality. The winning strategy is both/and: react to environmental realities within the context of current and improved organizational capabilities.
The major difference between people and software on a technical team is the API. You’re still debugging, refactoring, creating, evolving, and removing what you don’t need. As a technical team leader you need to talk to both types of interfaces. The API is very different for debugging people vs. debugging software.
If you want to build world class software you have to build a world class team.
This is also why it’s hard for a star programmer to become a star manager. They never spent time learning the People API.
Some of this thinking was done as research for a previous company. I was asked in appropriately vague terms how to fix our software delivery process. The pain was that it took months to get even the smallest changes to the customer. When I searched for the root of the problem it became clear there were two intertwined problems: one technical and the other social.
Half the company was looking for a quick technical fix that would make it all better. The other half wanted to add process to over come the social issues. It was obvious to me we would have to fix both if we really wanted to solve the problem. Any solution that ignored the fact that we were a socio-technical organization was lacking.
1 Comment »Ada Lovelace Day is “an international day of blogging to draw attention to women excelling in technology.” The site goes on to note:
“Women’s contributions often go unacknowledged, their innovations seldom mentioned, their faces rarely recognised. We want you to tell the world about these unsung heroines.”
I’m excited to take part in the event! I want to call out Audrey Tang, one of the most impressive programmers I’ve heard of and, thankfully, had the privilege to meet and even hack with.
Audrey is a natural leader. Not the sort of person that says, “come on, follow me” but rather leads by example. She’s so charismatic that you have no choice but to find out what she’s doing because it’s going to be interesting and you’re going to want to be involved. What I love best is that if you want to be involved that’s enough. You’ll get a commit bit and encouragement to JFDI™. Her character makes her work compelling.
As if that weren’t enough her work truly is compelling. She was the first Perl programmer to publish more than 100 CPAN modules. Good ones, too, like PAR, Module::Install, and YAML::Syck. Then she started playing around with Haskell and wrote the first functioning Perl 6 implementation, Pugs. This was mind blowing work and her speed was awe inspiring. Now she’s designing Haskell itself as a member of the Haskell-Prime committee.
At YAPC::NA 2006 I stuck around for a hackathon afterward. I was given a task by Audrey, to implement “try ruby! (in your browser)” for Perl 6 / Pugs. I couldn’t do it. She was nice about it, though, and encouraging. What’s so fantastic about Audrey is that she found someone else who could and got them excited enough to do it. That’s leadership.
I don’t want her face to go unrecognized. Chances are if you run into Audrey she’ll be posing something like this. I’ve seen her code on the walk to dinner four blocks away.
Audrey, thanks for being so awesome!
6 Comments »I’m now a registered iPhone developer. Tonight I built and installed an application from this book onto my iPhone. Here’s what it looks like:

I’m really having a lot of fun with Xcode, Interface Builder, Objective-C, and the previously linked book. I’m well on my way to building a few market-worthy applications.
No Comments »a.k.a How To Be Laid Off Properly
I’ve never been laid off before so I didn’t know how to do it. Here is a guide for you based on my experience. All that means is this was my instinctive response. Your mileage may vary.
I should take this moment to set the stage. This was totally unexpected. I was at work and looking forward to my interview for an internal management position, scheduled for the following day. So when my boss came to my desk and said, “follow me” I thought he was going to tell me a funny story or something.
I got about one dozen steps from my desk
before I realized something was funky. As I passed the kitchen the writing was on my co-workers’ faces. Somebody died. I was about to be told one of my co-workers died. Bummer. Oh, I’m the one that died. Apparently I was on a familiar catwalk and I was not too sexy for my shirt. I decided to stay calm and take it all in. Some things were weird.
If you have Big Company minded HR folks think about it like this: You’re unauthorized personnel when you leave the Firing Squad. So whatever security procedures the company would follow in that case now apply to you. You can’t walk around the office and say thanks and bye, and you can’t have a few minutes to finish up the refactoring you were doing and commit the work. You can, however, hand over your badge and collect your things and leave right now. Think Dilbert:
That’s cool. I could use a good coffee anyway.
Many of the people I worked with are really good at what they do. I did my best to let them know that every day – work ought not be a series of voiced disappointments. Before I forget why I liked my co-workers I found them on LinkedIn and wrote positive, honest recommendations. I don’t have any hard feelings so this was an enjoyable writing process. Some of them are even returning the favor which I’m really happy about.
For the first time in my adult life I had free time during the work day and no outstanding tasks to work out. Even when switching jobs on my own terms I never took time off to relax. So I had to make a plan. I split my plan into two basic categories, do’s and don’ts. Here’s the rough cut:
Before Wednesday the American Recovery and Investment Act of 2009 – a.k.a. The Stimulus™ – wasn’t something I was going to benefit from directly. You know, in the selfish sense. I was still for it but not for my own financial health. That changed this week.
Healthcare is the most frightening thing about unemployment in the United States. If you’re ousted like me you have the option of keeping your healthcare under the COBRA plan. This plan gives you the glorious opportunity to pay 100% of your insurance premiums and you get to keep your healthcare. Unfortunately when you get the bill it’ll probably make at least two of your orrifaces leak. Health insurance is expensive! This is when The Government steps up to the plate and actually makes my life better. The Stimulus package has a provision for people like me!
Section 3000(a)(1)(A) clearly states:
“REDUCTION OF PREMIUMS PAYABLE- In the case of any premium for a period of coverage beginning on or after the date of the enactment of this Act for COBRA continuation coverage with respect to any assistance eligible individual, such individual shall be treated for purposes of any COBRA continuation provision as having paid the amount of such premium if such individual pays (or a person other than such individual’s employer pays on behalf of such individual) 35 percent of the amount of such premium (as determined without regard to this subsection).”
I only have to pay 35% of my insurance premiums. Since I was paying 20% that’s only a 15% rate hike. I can live with that given the circumstances. I was so happy about this that I told the family that I was going to kiss Obama on the lips next time I see him. This is how the conversation went down:
Me: I’m going to kiss Obama on the lips next time I see him!
Evelina: No, that’s illegal. You can’t kiss the President.
Me: Why? What will happen if I do?
Evelina: He’ll find someone to shoot you.
Me: It’s a fine way to die.
4 Comments »Yesterday, for the first time in my career, I found myself on the business end of the corporate downsizing hammer. Your first question might be “How things been goin’?”. The Dude said it best
“Ah, you know. Strikes and gutters, ups and downs.” – the Dude.
These things happen. Don’t get me wrong, it sucks, but I know it was out of my control. I’m not too sad because I did a good job at CombineNet. The numbers just didn’t crunch in my favor.
Great question! Needless to say I’m available for hire! I’m ready to go immediately and I’m pretty excited. So if you need a programmer on contract or fulltime do let me know. Feel free to pass my name along if you come across something interesting.
As far as contracting is concerned, I’m primarily interested in forming a lasting relationship. I’m not going to leave you after three weeks. Let me know if you want something like this, too. Perhaps we can exchange phone numbers and go on a date.
Damn, you’re good! These interview questions rock.
I’m going to hack a lot more and blog a lot more about it. My lasting love – social web applications that enhance your life – is going to get some attention. I’m going to be developing a prototype of one such service and pitching it for the next cycle at AlphaLab. You’re going to want this app so stay tuned!
iPhone development has been on my “to learn” list for a few months. Now is the time to hit it hard. I’ve been working on example iPhone apps for about a week but I’m ramping up a new educational game that is sure to keep you on your iPhone past your bed time. More on that in the coming weeks.
It’s worth repeating: I’m available now for work. Don’t hesitate.
What a difference one week of hard work can make! This site began life last Tuesday. We’re going to launch before this upcoming Tuesday. The Call for Papers (CFP) will be out mid-week and the invitation to sponsor YAPC will follow shortly. When the site launches you can find it at http://yapc10.org.
In other words, YAPC|10 – the moniker for YAPC::NA 2009 – is in full swing.
Converting my prototype into ACT templates started on Thursday evening. Tom and Rob forced me to learn git. So I’ve spent the last week learn git, doing something productive for the community, and generally having a good time.
Stay tuned for more!
1 Comment »Originally uploaded by mbfulk (a view of the AlphaLab space).
This morning I made my way to AlphaLab’s Open Coffee Club. It’s a chance to find out what the pittsburgh startup/tech/design scene looks like. I had a great time.
There were a couple people I’ve met before. I’ve seen Scott Connelly at technical conferences in the area. I’m pretty sure I served him coffee at the Pittsburgh Perl Workshop this year. I also met Joe Polk for the first time in person. We’ve been virtual friends for a while.
I also had a great conversation with a local designer, Cynthia Closkey. We have similar interests in expert systems, neural networks, technology assisted community, and related things. Although it’s clear she’s more experienced. I’ve only dabbled.
As for Open Coffee Club, I’m hooked. I also plan to attend DevHouse Pittsburgh from now on.
1 Comment »That’s right. I’m a hat. I’ve been learning French, you see, and was asked about my retention. First I said, “It’s quite good, actually.” Then I said, “For example, ‘Je suis un chapeau.‘ I have a hat.” I was corrected amid laughter and snorting. There was definite snortage.
I’m trying two methods. First, I’m taking private classes with my friend Jessica through the Alliance Française de Pittsburgh. I’m also using Rosetta Stone. So far I’m really impressed with both programs.
Rosetta Stone is immersive. There’s no translation. You match speech, listening, reading, writing, and pictures. This is the same process we go through when learning our native language. It’s working very well for me. On the other hand there is the occasional faux pas because I’m not learning translation. I have to use intuition and context for sense making in Rosetta Stone.
That’s why I think the in-person classes are going to work well, too. I have to communicate with real people in real time. That requires some measure of translation and real understanding of the words spewing out of my mouth.
I’ll keep you posted on my progress. After Jessica made fun of me for being a sentient hat we discovered what all good language learners revel in: the insult. “Vous êtes un chapeau d’âne!”
3 Comments »