3M – 2015

A recruiter called me. She told me that she had found my profile on LinkedIn, and had an opportunity that she thought I was uniquely qualified for.

She was recruiting for a company that needed experienced C programmers. I said,

“Did you say C?”


“While it is still the language I am most familiar with, I haven’t programmed in C in earnest in at least 15 years…”

“Well, it is hard to find people who have this experience.”

“Whatever is the software if it is written in C?”

“It’s a system that has both server components in Java, and embedded Linux parts in C.”

Huh. She then told me that it was 3M, which, at the time, was the closest tech employer to my house. Which was cool.

3M left. Then the holding company declared bankruptcy, and the county was going to have a foreclosure auction. That was halted by a judge. And then somebody painted half of the buildings. It’s an empty, creepy place now.

So I said, “OK, but I’m not cheap.”. She then had me connect to a Google doc and answer some screening questions. Some of them were very basic (“On a Linux command line what is a command you could use to copy a file?”), some of them were technical C questions (“C programming question: How would you set (set to 1)  bit 7 in an 8 bit byte?”), which I could do, and then others were networking questions (“In TCP/IP what are the names of the 4 layers?”), for which I had nothing.

Seemed to be good enough, though, so we scheduled an interview.

Turns out the group developed a system that 3M sold around the world to do electronic toll collection on roads.

It’s actually a pretty cool system

I had four technical sessions, 3 about C programming, and one about shell scripting. I had a really good time; the engineers that I talked to were happy to talk to somebody who knew C. Some highlights:

  • They asked me to do some kind of low-level bit manipulation combined with math operations. I asked them, “Can I assume that this is a 2’s complement machine? Because I am really rusty with 1’s complement.”
  • They asked me to write a shell script to traverse a directory hierarchy and do something with matching files (let’s say files that end with .o) I wrote:
find . -name \*.o -exec my_operation '{}' \;


which means, “Starting in the current directory, find every file ending in .o. For all matches, execute the my_operation command using the resulting file name. And that’s the end of this command.”
They said, “OK, Mr. Smartypants, do it without the find command, which uses way too much memory for our devices.” I told them I did not know bash/sh/zsh that well; I usually used python or ruby when I needed to do something that complex. I guessed at some kind of syntax, but I know it wasn’t right. We had a good laugh over that.

They then showed me their lab, where they had cameras, and toy cars, and all kinds of cool toys. Their recruiter drove me around campus, where they had an electronic tollbooth setup for testing purposes.

A good, fun day.

A couple of days later, the recruiter called and said that they wanted to hire me. When she had talked to me before, she had asked what I was currently making. I told her about my salary.

Now, she was offering more than that, but there were a few problems.

  1. 3M rarely hired permanent employees when they started at 3M. They would be contract, W2 employees of another company, with the hope of being converted to permanent after a year. This usually meant:
    1. Hourly work
    2. No holidays or PTO paid
    3. Inferior (or no) medical insurance for several months
    4. Delayed participation in a 401(k) plan.
  2. They had not asked me about secondary compensation, and Mozilla’s bonus program was pretty generous. So their offer was short of what I was used to making from a total compensation standpoint. It was a mistake not to tell her upfront, but I just forgot.

They actually went pretty far to try to get me. They raised the salary as high as they said they could. They offered full medical, full 401(k), and 3 weeks paid PTO. It was flattering.

However, I could not afford the pay cut. When I told the recruiter that, she got very angry. She said things like, “You really screwed me!” and “You’ll never work in this town again!”

I would have had fun working there, at least until 3M closed the place a couple of years later. But that recruiter was not somebody I want to deal with again.



Retail Me Not – 2015

Got this email from a recruiter:

We’re growing our Engineering team and I thought you’d be a great person to speak with. Would you be interested in hearing about new opportunities?
Let me know if that’s of interest to you or brings to mind anyone who might be good for me to speak with, I’d be glad to sync up on the phone and discuss further at your convenience. I’ve also included our link so you can check out the company. Thanks!

That’s funny. The guy that fired me from Lombardi was VP of Engineering at Retail Me Not.
I emailed back:

Your VP of Engineering fired me from Lombardi. I don’t think I would be good fit. You are welcome to submit my resume, but I doubt he would bite.

I got this response:

I spoke with him and he agreed that he didn’t think it would be a good match. He had positive things to say about you but didn’t see a fit between your experience and what we’re ideally looking for.

Let’s definitely stay in touch. I’d love to reconnect when we have something come up that is a better match.

He had positive things to say about me? That’s actually nice. I was happy with that.

As for staying in touch, I am still (kinda) waiting…

Oh, and that VP was let go after a couple of more years. I don’t wish him ill, but I am sure he landed on his feet anyway.


Apple – 2015

apple maps
This image is from later than 2015, but you get the idea.

I randomly got a message one day on LinkedIn:

Want to re-join Apple 🙂 ?

We have some awesome challenges ahead in Apple Maps and I’m looking for key talent to join my organization – when I went through my connections on LinkedIn I found your profile – and you look like a potentially great fit.

Maps is a big data problem that is dynamically changing underneath a service and client architecture delivered across multiple platforms. Its a fantastic challenge. My team is looking for great engineering leaders who are interested in building intelligent automated systems to help streamline the content delivery process.

The organization is growing rapidly so there is a lot of opportunity for growth and a chance to play with all sorts of interesting technology with the smartest people on the planet.

If you are interested please shoot me an email and we can set some time up to talk and I will rope in my recruiting team.


Apple Maps had had a very rough introduction. Somebody who I worked with on the Mac OS X Program Team had been promoted to VP of Software, and he was let go after Maps had so many problems. That was 2-3 years earlier, but I had heard through the podcasts I listened to about the industry that Apple was doing a lot of hiring in this area.

So when, this Apple manager reached out to me, I listened. I still missed Apple. I did not miss California, but this opportunity sounded fantastic.

It just so happened that I was going to be a work trip to CA the next week anyway. After some back and forth, we setup a time to talk.

And I had a blast talking to him. We talked about front-end challenges (app vs. browser; ios vs. android), and we talked about the large amount of backend hardware necessary. We talked about getting map data from a vendor vs. collecting it organically. We both left the meeting amped up, and I was looking forward to hearing from him.

And the day after, I did:

Thanks a lot for your time and your insights – very appreciated. I was excited, but unfortunately we have decided to go a different direction with this position.

Initially, I thought that perhaps he had talked to somebody on campus about me and heard something he did not like, but that’s my own paranoia and imposter syndrome showing.

“We have decided to go a different direction” is code for “we were going to hire a manager from outside, but my bosses decided to re-org the department instead”. It looks like they decided to buy some tech to cover the gaps soon after I talked to this guy. So I was right; they no longer needed another manager because they bought a company.



Kansas City Royals – 2014

Your 2014 American League Champions!


I have talked about my interest in working in baseball throughout this blog (like Project Scoresheet – 1989). There is a website called TeamWork Online that is a place where the vast majority of teams in baseball post all of their jobs. I have an alert for jobs I might be interested in.

The Royals had just been to their first World Series in 19 years, and right after that, I got notified that they had a job opening called “Systems Architect/Deverloper, Baseball Analytics – Kansas City Royals (Kansas City, MO)“. The job listing talked about maintaining internal websites, working on databases, capturing statistics real time, etc. Right up my alley!

I was fairly happy at Mozilla, but, really, baseball!

This time, I got a response:

Thank you for completing the teamwork application. Just to give you a little background, the position we are looking to fill in the past was in charge of everything from managing our data imports to developing web/mobile applications for wider us through the organization. Our existing architecture mostly uses MySQL and Ruby on Rails, and we are looking for the new hire to take over a great deal of code a varying stages of completion along with moving forward into new areas. As this position will for the short term at least be our only dedicated developer they will work with autonomy in this area in terms of how they choose to execute projects. Based on your resume it looks like you are proficient in those technologies and many more, does our specific opportunity or are you more comfortable starting from scratch and/or working with a team of developers?

Our goal is to fill the position ASAP to get ready for next season but we will continue our search as long as necessary to find the right candidate. Because the baseball season is long and the commitment by employees significant the personality fit is as important as the skill-set in our search. As for next steps in our interview process we would like to see an example of work product if possible. A web app you have developed that is accessible publically would be great (or access to relevant code on GitHub). If not we can send along a self-contained project to accomplish the same. Thanks very much for your time and interest.

I could hardly believe it when I read this. I was doing a little happy dance inside. This sounded great!

I replied:

Thanks for getting back to me so promptly.

I am comfortable however things need to proceed. My vision is working alone on the code while developing a long-term strategy for where the system needs to be. Once the strategy is articulated, I can then build a team to build the new or overhauled system.

As for an example of my coding, you are going to have to send me a self-contained project. The only part of this entire stack that I really have little experience on is building the actual web apps. My development experience is with client-side or standalone app development. The rest of my experience is with the rest of project development – building of systems, deployment of web apps, testing, managing the product cycle, building teams, etc.. I hope this is not a hurdle, but I hope I can prove my ability to learn quickly by completing your self-contained project.

Let me know; I am looking forward to us talking more. Thanks!

We then talked on the phone for a while. He told me he was going to send me a task to do, a programming test. I told him the truth; we were travelling for the Thanksgiving holiday. And then, I had to go to Portland for Mozilla’s All Hands Meeting for another week, so it was going to be a while before I could tackle the problem.

And then I came back from Portland with the Mozflu, and I was laid out for several more days.

I finally got started on the project. It had sample anonymized data from PitchFX, a system which tracks every pitch. I was told I needed to present this data in an interesting way using Ruby-on-Rails, which I did not know at all.

I bought an online course and spent a few hours reading and playing with sample code, and the I wrote something which presented a histogram of average velocities of a given pitcher for the first 10 pitches, the next 10, etc.

I was quick and dirty and it was ugly, but I had something to turn in.

A couple of days later, the manager called me. He told me that they had narrowed it down to two. They liked my general experience a lot, but that the other candidate had more direct experience with Ruby-on-Rails, so they were going to go with him.

Still, I almost got a job in baseball!

It was hard to be disappointed.

Evernote – 2014

If you have to sync with Windows or Android, it’s still a great product. Highly recommended.


The second Wednesday after I started at Mozilla, while I was still in the Bay Area for orientation and training, I got this note:

I came across your profile today and was very impressed with your background and projects!  I’m not sure if you’re familiar with Evernote, but our goal is to help the world remember everything, communicate effectively, and get things done. We’re now nearing 100 million users worldwide!
We currently have a Mac OS opportunity available and your background looks like a great match! To tell you a bit more, our core team will always stay small (we say no larger than you’d invite to your house for dinner), but at Evernote, a lot of our initiatives are cross-platform so we often have other engineers cycle on and off as needed for various bits of functionality. We currently have a lot of these initiatives going so there are probably another 8-10 engineers in our codebase right now located around the US, Germany, and Switzerland. Our Design and QA also sit right next to us. We’re like a big family.
With regards to our projects, we are in the midst of a complete redesign of our existing Evernote Mac application. It will include sweeping architectural changes that will allow us to take advantage of more recent OS X technologies as well as share more code with our other Evernote clients. Our goal is to produce a much more light-weight client that feels quick, responsive and modern.
If this sounds interesting to you, please let me know a good time to chat further!

Argh! Where were they 3 weeks earlier? Or better yet, two months earlier?

I responded that I had just started a new job, and that I wasn’t interested in moving to the Bay Area anyway, and they responded:

Thanks for getting back to me! We are open to remote work for this role if the skill set is suiting for what we are looking for. I don’t want to waste your time so please let me know if you are wanting to learn more and I will definitely set up some time for you. However, congrats on your new role with Mozilla!
Looking forward to hearing back!

Now I was in a quandary.

I took the job at Mozilla for three reasons.

  1. I needed to work, and it was the only offer I had. It was a QA job, and I had been hoping to be rid of QA forever, but what can you do?
  2. One of my best friends recommended me, one of my favorite managers was the VP, and another acquaintance was a former coworker of mine, all from Cygnus.
  3. It was work on open-source, which I had missed since leaving Cygnus/Red Hat.

So, I knew nobody at Evernote. It was certainly not open source.

But, I loved the product and used it. It would have meant staying as a software developer, rather than being in QA. And, I could have worked remotely.

I should have interviewed. I was already in CA; they and I could have got the interview process to work. And then, if I got an offer, considered it on its merits. If I accepted an offer, it would have meant telling 3 friends that their recommendations and interviewing were a big waste of time.

So I said no.


  • I loved Evernote, but their pricing started being pretty high. And then Apple introduced Notes with iCloud syncing. Since I did not have to sync my notes with Android or Windows anyway, I ditched Evernote at that point. It’s a shame when Apple Sherlocks you.
  • You have to take care of yourself. Disappointing my friends was the primary reason I did not interview. I will never know if that position would have worked out, but I knew it was in development which is what I wanted. I should have taken care of myself; true friends would have understood.