Finally! The Secret Origin of Softuer-Man Revealed! Part 1

The Before (working on Apple stuff) Times

Born and raised in Spain, While I was attracted to computers from a young age —They were easier to deal with than people— I wasn’t a big tinkerer. We’re talking about the mythical 80s —I did mention I’m middle aged didn’t I?— and the computers that a random middle class kid in Spain could access were… not capable of much.

And then in… late 84? Early 85? someone loaned us an original mac, with its mighty 128Kb of RAM and one-sided 3.5″ floppy drive. And there was no looking back from there. Sadly I was still a kid and developer tools for those early macs were not for the masses. I wonder if I would have really gotten into doing something with it had I gotten a Pascal book and some tools.

It was the 90s when I finally started learning computer programming in earnest. That being Apple’s Beleaguered era I mostly stuck to the expected computer hardware lab in a poorly funded college: Terminals connecting to Unix workstations and cheap Windows PCs. I stayed on top of Apple news —some feat living in Spain before the Internet was really a thing— and kept using macs for personal stuff but otherwise didn’t expect to be doing software development on them let alone make a living doing so.

But, as the decade closed Mac OS X happened. It had the Unix bits that I needed for college and it was a mac, so I managed to finagle myself a grape iMac and a student license of Metrowerks CodeWarrior. And since the Apple developer tools were now free with the system, I downloaded Project Builder and grabbed the Big Nerd Ranch book for developing mac applications with the Cocoa Frameworks.

As someone who had had to suffer many of the “modern” 90s UI development environments through college, it’s an understatement to say that Cocoa was a breath of fresh air wrapped in a glass of refreshing lemonade in a hot day wrapped in bacon[1]. Easier to learn, easier and faster to get results with, much easier to get results that didn’t look out of place for the platform.

I took learning Cocoa to heart but while I used it for some coursework and expected to keep using it as a hobbyist going forward I wasn’t expecting to ever use the frameworks professionally. The early 00s were an unkind time for software development jobs and Spain’s software engineer job market consisted mostly of legacy system maintenance[2] and Enterprise Java something-or-other. Either one a Fate Worse than Death but one that I kinda resigned myself to.

But before I stepped through the doors of enterprise software development hell for good I figured I could as well check on what it would take to work on macs. The year was 2003 and WWDC was announced for the spring. This was years before they filled out the convention center and while Apple’s fortunes were no longer hanging by a thread with mac sales on the rise and the iPod exploding in popularity the company itself didn’t feel confident that it had left all the dark times behind and was thus happy to be accommodating to anyone who even entertained a thought about writing mac software. I applied as a student developer and I guess whoever processed those said “look at that some dude from Spain!” and accepted it. No need to build sample apps or even send much proof of my student status now that I think of it.

Other than the fact that Apple delayed WWDC after I had bought the plane ticket and I ended up losing that money the trip was well worth it even if nothing had came out of it. Getting to see San Francisco, WWDC and much of the mac developer community in person wasn’t just exciting but also drove home the fact that these were not demigods nor a bunch of people that were far cooler than I could ever aspire to be. They just were smart enough and had had the opportunity and/or the stubbornness to make mac software development their professional business. It wasn’t a group I would feel out of place with.

That said… more did come out of it. A tiny project scheduling software-in-a-box company in the DC suburbs was looking for someone with almost my exact profile: a junior software developer who really wanted to do mac work and knew his way around C++[3]. And they probably wanted someone who wouldn’t complain too much about not getting paid well enough. It took them quite a while to make the decision but by the end of the year I had both my CS degree and a job offer from them, literally the first one day after the second. My American adventure was about to start…

  1. Please do not think too hard about this metaphor.  ↩

  2. I clocked some months working on IBM AS/400 software. Just describing the environment and its limitations would be met with disbelief by younger developers. Maybe worth a future article but I managed to forget almost everything about the whole experience and I am a happier person for it.  ↩

  3. This was very literally something that I learnt on my own as “stuff that should help me get a job” and had zero to do with my college courses. At the time C++ remained one of the hot technologies to learn. It’s been a long time since I used C++ and good riddance as well, but it sure did play its part in whatever career success I may claim to have achieved.  ↩

Old Man Yells at the Cloud

It dawned on me recently that as a white middle aged man with a long career in Apple platform software development —going on 17 years as of this writing— it is my duty, nay, my destiny to share my takes with the Internet. And I got them. Hot, cold, sizzling and many, many milquetoast ones.

For that purpose I have chosen this most quaint of formats: a blog. The natural habitat for short form snark is Twitter and you’ll see plenty of that from me there. This place will be for the longer rants and the deeper[1] thoughts, and I would rather avoid the walled gardens for that. Plus I have a bit of nostalgia for the early 00s Internet back when folks just did whatever around and most of us believed it was going to grow into a good thing.

But before I start sharing those —and I know the Internet can’t wait to get them— let’s establish the rules of the game. What I plan on doing here and how I plan to do it here. Reader beware and complainers will be told to RtFIP (Read the F Introduction Post).

  • My blog persona is going to be much more of a blowhard than I am in day to day life. The snark and constant digressions are a universal constant but I do actually know how to deal with other people respectfully. Most of the time at least.

  • One of the more frequent subjects for posts will be stories about my experience in the industry, including 7 years at the world’s best known agricultural produce company. Dealing with junior developers lately has made me realize that having someone demystify a lot of what goes on in the tech industry may help them make their way in and thrive, and the Old Ones know[2] that more diversity in perspectives is needed. It may also help some folks outside understand better how the sausage is made and what all the fuss is about.

  • My name is, by copyright need, attached to the posts, but otherwise the details of any stories I tell will be kept deliberately vague. I don’t want to bother the people I respect and I don’t want to bother the people I don’t, for different reasons.

  • The tech commentariat is mostly about today’s news hot takes and how to do this thing with these tools. I’m not particularly interested in adding to either of those discourses nor do I think I would have anything novel to add. Exceptions may be made occasionally since it’s my blog and no one can stop me.

  • What I’m mostly interested in is the Whys and the Whats. I’ve been doing this for a while and much of what folks talk about when it comes to software development advice feels like implementation details. I’d like to examine at a deeper level what it is that we’re doing and how it came to be that way.

  • Much of the thrust behind this blog is to put in writing a good number of higher level ideas that have been shaping up through the last few years. I doubt that any of it will end up a brilliant insight that no one else has had before but I like to personally build up the concepts and understanding that underlie what I do.

  • My more exploratory posts make no guarantees of correctness, let alone insightful. I’ll happily go back to older posts and make updates though.

  1. Deeper, when it comes to thoughts, implies neither smarts nor wisdom. It is as likely that I plumb the depths of human stupidity, or go down the deep end as I am to bring some insight to the world. But thoughts can take you places and it’s usually a fun journey to follow them around where they may lead.  ↩

  2. As they slumber in the lightless depths beyond human comprehension the Old Ones may be vaguely aware of the tech industry diversity problems, but they sure don’t care about them. Just like most tech executives!  ↩