Archive

Posts Tagged ‘Mozy’

Three Months at Microsoft

October 15th, 2009

Last week marked three months that I’ve been working at Microsoft.

As I’ve discussed before, making the decision to leave Mozy for Microsoft was not an easy one.  Let’s face it:  I’m not exactly a spritely youth anymore.  I’ve worked at a lot of different companies — and when I say “different,” I also mean, “different from each other:”  Small companies you’ve never heard of (Spillman Technologies), large companies you’ve surely heard of (IBM), companies whose politics continue to keep them from succeeding (Novell), companies who manage to succeed in spite of the politics (Mozy), and companies that just frankly exist only as dark, ghostly nightmares in the frightening nether regions of my mind (Enterasys Networks).  Yet as different as these places are from each other, one thing mostly remains the same:  the process of creating software is the same everywhere.

So that makes a decision to leave hard.  Since the process of creating software is the same everywhere, it is the intangibles that end up mattering, such as whether you like your boss, whether you get a nice computer or monitor, how comfortable your chair is, etc.  When you consider leaving, you wonder what unidentified intangibles you’ll be giving up and what you’ll be getting, and whether you will feel like this was a good trade a year later.

Leaving Novell for Mozy was like this for me.  I got many, but not all, of the intangibles I expected when I went to Mozy.  I gave up all of the intangibles I expected I’d give up from Novell, like five weeks of paid vacation and a beautiful window office on the 7th floor looking directly north to Mount Timpanogos.  Some things at Mozy ended up being worse than I expected, e.g. the 5% pay cut last spring.  Of course, I do realize that it is not Mozy’s fault that I didn’t get all the intangibles I expected; I set that expectation, not them; I failed to assess the situation accurately.

Nonetheless, as I contemplated leaving Mozy for Microsoft, I thought about this.  “Well, software engineering is the same everywhere.  So since the in-and-out of the job function is mostly the same, I wonder what intangibles I’m gaining and what I’m giving up?”

Well, I failed to assess the situation accurately again.  I made one key error:  Software engineering is NOT the same everywhere.

In particular, it is not the same at Microsoft.  At Microsoft, software engineering is more… uh… yeah:  more.

More better.

Have you ever worked for Microsoft?  If you haven’t, you don’t know anything about us.  I know you think you do.  You don’t.

Never in my career have I ever worked in any organization that took software engineering as seriously as Microsoft does.  I was very surprised to see how seriously we consider things like security and software quality.  I’m aware of the reputation Microsoft has received over the years for bugs and security issues.  Maybe things are different now, or maybe that whole thing was just a function of being the world’s largest, most powerful, and most widely used software company.  At any rate, I can tell you from personal experience that security and quality are very important here — important enough that we will delay shipment if we don’t feel like it meets our standards.  While this may seem obvious, I’ve never seen this commitment to quality permeate throughout an organization like it does here.

It has been incredibly refreshing to see a company take software engineering as seriously as I do.  I love that I’m free to require explanation or justification from my management when I don’t understand something.  I love that I’m supported in insisting on perfection in software design, code, and process to the degree that I can help us deliver it.  I love that people can communicate with me honestly and openly without worrying about my feelings, and that I can do the same with them, because, unlike some places I’ve worked, there is an undercurrent of trust and mutual respect between me and all of my peers wherein we know and believe that, despite having different opinions, we are each talented and capable professionals with the best interests of the company at heart.  I love being surrounded by incredible talent that makes me feel both humbled to be a part of the group and inspired to improve myself every day.  I love working for a company where, instead of feeling like my career has topped out and has nowhere else to go, I feel I have broad, wide-open vistas of learning and advancement just laying before my feet; opportunities sitting before me just waiting for me to seize them.

I had no idea a software company could be that much better than what I’d experienced in the past.  It is really awesome.  It may not be for everybody.  Not all software engineers care enough about delivering quality software that they will do whatever it takes — write unit tests, participate in code reviews, follow rigorous and time-consuming processes, be a small fish in a big pond — in order to do it.  But if you care about delivering quality software, like I do, I must say I highly recommend us.

After only three months I find myself saying something I never thought I’d say:  I love working at Microsoft.  I really do.  Intending absolutely no negative to any other company I’ve worked for (with the exception of Enterasys Networks, I have fond memories of great talent, great people, and great product deliveries at every company), working at Microsoft is unlike anything else I’ve ever experienced.

matt Programming , , , , ,

Chris Cantera’s Birthday, Or, Why You Should Get Your Own Corporate AmEx

July 22nd, 2009

Going through old pictures on my phone and I found this one:

Chris Cantera's Unbirthday

Happy Unbirthday Chris Cantera.

A few months ago while I was still at Mozy, Chris Cantera (pictured), Mozy’s new Director of Engineering (and my boss) had just started and took his engineering organization out to lunch, but when we got there he remembered that he had not applied for his corporate AmEx yet, and so he wouldn’t be able to pay for lunch (Mozy’s pretty strict about this stuff).  I had mine, so I volunteered to pay.

I wanted to pay, because I understand that he who pays has the true power.

Towards the end of the meal, I stopped the waitress and asked her if she would mind bringing Chris a drink in a child’s cup, and perhaps would they sing Happy Birthday to him.  He immediately resisted strongly.  The waitress was a bit undecided about how to proceed.  Chris pulled the boss card out, and said, “No, I’m the boss, and I say no to the Happy Birthday singing.”  So I pulled out the AmEx card and said, “Well, I’m the one paying the tip, and I say yes to the Happy Birthday singing.”

Needless to say, I won.  Here’s Chris with his happy, cute birthday cup.  Happy Unbirthday Chris.

matt Humor ,

The Effective Desktop, For (Mostly) Free

July 1st, 2009

Setting up a new computer is one of those things that should be enjoyable, but is mostly just tedium.  That’s because there really isn’t a single OS out there that does for me everything I want in a single distribution – at least not one I’ve found.  In truth Linux comes closest, but in the case of Linux, there are still some things (like Motocross Madness 2, one of the best PC games ever) that you just don’t get there.

And don’t start giving me lectures on Mac.  Same problem applies there.  Even without games, I still have pretty much the same setup overhead for Mac as anything else.  Macs are great, don’t get me wrong, but I don’t write Mac software anymore, so I don’t have to be showing the Steve-love for a while now, until I start doing Mac development again.

Anyway, I’m willing to bet that at my new job my development machine will be a Windows machine – it’s just a hunch I have.  So here’s the rundown of setting the machine up for usefulness and effectiveness.

Basics
Firefox First is Firefox. Firefox is a great web browser, fast and pretty reliable.  Once you’ve got Firefox installed, you’ll want to grab a handful of Firefox plugins.  When I set up next, I’ll be trying Google Gears, AdBlock, FireBug, Better GMail/GCal/GReader, Tab Mix Plus, FaviconizeTab, Fission, and GreaseMonkey of course.  I keep IE around because sometimes I need it, but I make Firefox my default browser.
ThunderbirdSunbirdRSSOwl In addition to e-mail, I use calendaring and news readers (RSS/Atom) almost every day. A lack of decent free options in the past got me used to using Google for all of this stuff. But if I were to decide to use rich applications for these purposes instead, I’d give Thunderbird, Sunbird, and RSSOwl a try.
Next is OpenOffice.org. I know, most people use Microsoft Office.  I realize it is better.  I realize it is more powerful.  I realize it is more ubiquitous.  It is also expensive for my purposes.  Stick with Office if you like it.
For instant messaging I use Pidgin. Since I’ve got friends using MSN/Hotmail, Google, and Yahoo! among others, Pidgin gives me a great way to be able to chat with all of them in a single IM client.  And it has some great plugins that I’m eager to try out.
Multimedia
For listening to and organizing music, I’ve been hearing a lot about Songbird and I think I’ll give that a try.  I don’t buy music from iTunes and I don’t have an iPod (I know, lame).  If I did I’d go with iTunes.  Although, I do like iTunes Genius feature, so I might go with iTunes just for that.
When it comes to audio editing, Audacity is where it’s at.  I’ve used Audacity to make ringtones from some of my music MP3s, to edit and mix recorded WAV files into MP3 files, and even for my son’s science project to examine the differences between sound waves.  A must-have.
In doing research for this blog post, I ran across these apps:  MediaCoder for translating and saving media files, Handbrake for ripping copies of your DVDs to formats for your handheld, and ImgBurn for creating DVDs.  So I haven’t actually used them yet, but I can hardly wait to try them out.  Managing video files and recordings is something I built my computer to do, but finding the software to get the job done has been tough.  Hopefully I’ll find the answer among these tools.
DoubleTwist is a new application I’m eager to try for managing the transfer and synchronization of files from the PC to your handheld device.  I’ve got a really cool little Sony Ericsson phone that is supposed to work flawlessly with DoubleTwist; can’t wait to find out.
I’ve used The Gimp for my photo editing for years and, for me, it removes any need for me to buy Photoshop.  I’m sure Photoshop users would disagree.  But hey, I’m not a graphic artist.  I’m just a guy who needs to edit photos from time to time, even for my job, and can’t justify the expense of Photoshop.  Lately, friends have been telling me about Paint.NET, and what they are telling me is that they like it better than The Gimp.  That’s a high standard in my opinion.  I’ll have to check it out.
Ah – where would I be without Steam?  Steam’s client is free to download and serves as the launching pad for most of the games I play.  A lot of games I really like, such as Audiosurf and World of Goo, I first found out about via Steam.  Every time I launch it it seems there are more titles and more publishers available through Steam.
Security
Truecrypt is a highly regarded application for encrypting data on your PC – one I’ve been meaning to try for a long time and plan to soon.  I know, I should do this.  Eraser, on the other hand, is one I’ve used for a long time.  It makes it really easy to truly erase files from your computer by performing multiple overwrite passes to keep your data from being restored after you’ve intentionally deleted it.
For managing the applications that launch automatically when your PC starts, it is hard to beat Mike Lin’s Startup Monitor and Startup Control Panel applications.  Startup Monitor runs discretely in the background, and just notifies you when some application has requested to be run at startup, allowing you to decide whether to accept this or not.  Startup Control Panel offers a simple view of the applications already scheduled to run at startup, and allows you to disable them.  Great for improving boot times and free resources, not to mention helpful in keeping your desktop secure from rogue apps running in the background doing who knows what.
Spybot Search & Destroy is essential for keeping your PC clear of spyware and adware that want to do evil things behind your back.  It integrates with most common web browsers, including Firefox, to help lock them down to avoid evil cookies and other tracking software from sending information about you to others.
If you are up for trying a free PC antivirus application, ClamAV is the answer for you.

Okay, I haven’t used it and probably won’t for a while because I’ve already got a license for a security suite.  But if you are in the market it is probably worth a try.  It certainly could not be worse than BitDefender (that steaming pile).

Utilities
Daemon Tools is a simple utility that can mount local disk images as filesystems.  Mac does this very easily, of course, with .dmg files, but you need a tool like Daemon Tools to do it on a PC.  Use Alcohol 120% to create mountable disk images from game CDs, for example, which will enable you in most cases to play PC games by mounting the disk image in Daemon Tools instead of inserting the CD.  Or use it to mount ripped DVD ISOs when you are converting them to a format you can use on your handheld.
Many years ago, Novell had this really great product called iFolder that you used to synchronize files between multiple computers.  Like many Novell products, it was a really awesome product that nobody ever heard about because Novell can’t figure out how to market anything.  But Novell employees know about iFolder and most of them are like me – once I got used to using it I could hardly stand to not have it.

When I left Novell this was a big big problem for me.

Finally Dropbox came along to address my problem.  Dropbox allows you to do what iFolder did years ago – synchronize files between multiple computers.  Dropbox is not nearly as full featured as the latest iFolder 3, but at least this one you can use without being a Novell employee.

As I’ve said before, once I started working for Mozy I realized that online backup should be considered essential for anyone.  I really don’t know why a person wouldn’t use Mozy.  Even if you are backing your data up on a second drive, USB drive, thumb drive, etc. you should be using Mozy, to automatically provide a secure backup copy of your data in a separate location – for recovery from fire damage, for example.

Having worked at Mozy for the past 14 months, I can vouch for their solid technology which is, in my opinion, the best in the industry without question.  You need online backup, so why not use Mozy?  You can back up 2GB for free or as much as you want for $5/month.

For archiving and compressing infrequently-used data, I recommend 7Zip. It will unpackage almost anything and will package in the most common formats, including Linux-compatible TAR/GZ formats.  It’ll also do encryption and self-extracting packages in some formats.  In other words, it’s pretty much everything you want in an archiving tool, for no cost.
I haven’t tried Everything yet but I plan to soon.  This is a highly rated desktop search engine along the lines of Spotlight for Mac.  Windows search I mostly use as last resort, but if this is anything like Spotlight I’ll use Everything all the time.
Freemind is a note-taking application that I’m eager to try.  I’ve been needing one of these for some time, so I’m anxious to give it a shot.
I consider Cygwin an essential PC utility.  Since I’m a lot more familiar with the Linux shell than the PC DOS-style shell, Cygwin provides me with a command prompt I’m comfortable with.  Cygwin comes with a large number of helpful tools, like the GNU C complier suite, ssh/scp, wget, and others.
I’d also consider SQLite an essential PC utility.  SQLite is a very simple file-based SQL engine that is very useful and freaking awesome.  I’d recommend a PC utility for using SQLite but there really isn’t a good one.  Probably your best option is SQLiteSpy.
Application Development
I’ve said before that if a person’s going to learn to write software, I think the two most important languages to learn are C and Python.  Since you already installed Cygwin you probably already have a C compiler on your machine, so now you need to get Python installed.

In addition to Python, Ruby seems pretty interesting and one you should definitely look at, in addition to Python (and not instead of Python, not yet anyway).

You should note that if you plan to do Python and/or Ruby development, you’ll probably want to get used to doing that natively on your machine, and not via Cygwin.  So don’t depend on the Cygwin Python and Ruby interpreters – use the native interpreters instead.

If you must, use Java.  Sometimes there’s stuff you just can’t do without it.

Ah, Eclipse:  the mother of all development environments.  Having worked closely with the Eclipse foundation and been part of starting an Eclipse project myself, I have a strong affinity for Eclipse.  For Java development, I’d consider it one of the best, if not the best, Java IDE available.  It’s also a great free alternative for a lot of other languages and application types.  Get not only the base Eclipse, but the plugins for C/C++, PHP, RCP/Plugin development, Data Tools, Test and Profiling Tools, and Web Tools.

And if you aren’t going to get the Eclipse Python plugin, you’ll want to install Eric instead.  Eric is a pretty good little Python IDE that works on both Linux and Windows.  You’ll need PyQt for Eric to work I think.

If you are really wanting to do development in C# and .NET instead, but don’t have the .NET platform, you could try SharpDevelop.  I haven’t tried it though, so I can’t say – and in my new job, I’ll be doing my C# development in Visual Studio, which is certainly better.

If you want to try out simple GUI programming, especially cross-platform GUI programming, try wxWidgets.  You can program directly to wxWidgets in C or C++, or in Python using wxPython.  If you think GUI programming with wxPython is your cup of tea, you might also want to try Boa Constructor, which is a good Python development environment with GUI building tools.
For web development on a Windows PC, I love WAMP.  This simple bundle offers Apache, MySQL, and PHP all together in a single package that you can easily start and stop all as one.

(This is the part where the Mozy PHP bigots comment to tell me how rotten PHP is, and where they tell me how much better Perl is, and where I nod and pretend to agree in order to keep the peace.  So bring it on.)

WAMP is great for your typical free-style web application development, especially if you are building from an existing framework, which is quite likely to be built in PHP.  If you’re building from scratch, however, you would probably want to strongly consider Ruby on Rails, in which case you’ll want to install RubyGems to get Rails and other goodies.

Finally, I hear Kompozer is a pretty good HTML-style editor and page builder, and I might give that a shot sometime.

matt Technology , , , , , , ,

Mozy’n On

June 27th, 2009

Yesterday was my last day at Mozy.

I left Novell and came to Mozy just over a year ago.  For a variety of reasons, I chose to leave Novell even though in my case I had to take a cut in pay to do it.  I don’t regret this decision at all.  I’ve learned tremendously from Mozy, met a lot of really great people, and really loved working at Mozy.  It’s a great company with a great product, but the best part about Mozy is the people – there are some really great people there, many of which I didn’t really get to work with as much as I would have liked, and I’ll definitely miss the opportunity to work with them.

At my one year mark last May, I took a step back to look objectively at my job at Mozy.  This happened to coincide quite closely with EMC’s recently announced employee 5% pay cut, which of course also affected then-current Mozy employees.  (By the way, you have to love how EMC told the press that they were “asking” employees to take the cut – it was more like “we’d like to ask you to take this cut in pay, or leave.”)  I looked at the tradeoff I’d made a year earlier, now with greater insight, along with the adjusted compensation, and realized that I wouldn’t have made the decision to come to Mozy last year after all.

It’s an odd conclusion because I still would have made the decision last year, knowing everything I’d learn and the relationships I’d build.

It was at this point that a great colleague from a former team at Novell, one of the two best teams I’ve ever worked on (the other also from Novell), told me that the company he is now with was hiring, and asked if I would be interested.

Truth is, he and I had discussed this exact position about a few months before, and I’d told him at the time that I was happy where I was.  But then EMC changed the dynamics of our employer/employee relationship, and when he approached me again, by this time I was willing to consider a change.  And as my new employer and I considered it, we both came to the conclusion that it would be a good thing.

I’m really looking forward to this new opportunity.  I’ll learn a lot, I hope to contribute a lot, and know for a fact that the team I’ll be on there is outstanding.  At the same time I’ll miss the cool of Mozy.  It’s still a great place with great people.  Especially if you are considering working there now – the 5% cut does not apply to new hires, and I know they are still looking for great engineers among other things.

matt Technology , , , ,

Mr. Mom Time

June 19th, 2009

I’m in the middle of doing the Mr. Mom thing this week for the past few days.  I’m doing this because Amber, who volunteers for the local girl’s youth group, is at Girl’s Camp.  For those of you who are not familiar with Girl’s Camp, I will explain it:

  • It is a camp for girls.

And that pretty much explains everything there is to know about Girl’s Camp.  But if this concept is still unclear, just remember that girls and boys are pretty much opposites of each other.  Not that one is better or worse.  The same is true about Girl’s Camp and boy camps – they are opposite.  For example, boy camps are fun.

I remember when I was in high school thinking that sneaking up to find the Girl’s Camp would be great fun.  Then I actually went to Girl’s Camp one time, on invitation, and realized how, uh, opposite it was.

But I digress.  So anyway, I’m here at home with the kids.  Before she left, Amber said this would be good for me to help me appreciate her.  I said that I already appreciate her and so it was not required.

Nonetheless, she was certainly right.  For example, now I understand better why she is so anxious to tell me about the days when Oakley doesn’t take naps.  And I kinda get why she tells me that her days are really busy and yet boring at the same time.  And now I think I realize more why she looks forward to me coming home so much every day.

I’ve always thought it must be hard being a mom.  Not only is it a 24/7/365 job with no vacation or sick days, but it isn’t like you can just quit this job and find another one if it is bringing you down.  Having done this recently, I can relate to what this must be like to not be able to quit.

Well, I guess a mom can quit, but she certainly shouldn’t.

However, I did come up with a number of advantages of the mom job:

  • Moms have a lot of control over how their day goes.  I didn’t say complete control.  But I’m noticing that if we want to have a relaxing day watching movies and playing XBox, or a fun day having a picnic at the park, or buckle down and clean up the house, it is pretty much my call.  At work, it takes just one critical bug or unhappy employee to take complete control of my day.  (Speaking hypothetically of course – as if we would have either of those at Mozy.)
  • Moms get to work every day with people they really love.  Not just like – love.  Over the course of my career, one thing I’ve realized is how much the work environment is affected by how much you like the people you work with.  Yesterday when Oakley just walked up to me and gave me a hug, or just now when Taelyn made a special piece of artwork just for me, I realized that no matter how great your friends at work, the chances that you’ll like them as much as a mom loves her kids are pretty slim.
  • The mom job – creating the adults of the future – has to be rewarding, or at least it should be, at least some of the time.  Writing software programs is admittedly not fun all day every day, but the opportunity to create something new and valuable is pretty fulfilling when I stop and think about it.  But computer software is nothing compared to a human life.  Watching your kids grow up and learn is pretty awesome – being the mom that makes all that happen has got to be pretty fulfilling if you step back to think about it.
  • Last but certainly not least, if you are a really lucky mom you might get to be married to someone like me.  This benefit obviously requires no further explanation.

matt Family , , ,

Mozy Breakroom Danger

June 4th, 2009

The Mozy breakroom is a source of nourishment for Mozy folk (where “nourishment” means “empty calories”).  At least that is true about 2/3 of the time.  Every couple of weeks Mozy buys a couple of truckloads of snackage from the local Costco.  There are many many boxen of snacks, for a few days.
mozy_breakroom
All these boxen led to this situation we see here:  Signs placed on cabinets for the purpose of box-management.  They were placed there by Janell, who runs all of Mozy and scares the crud out of me.
mozy_breakroom_sign
The words say “Please” but the font says “or else.”  Which makes me marvel at the audacity of someone to replace one of the signs with this little number:
mozy_breakroom_sign_sign
Whoever it was, I will miss that person.

matt Humor ,

MDMethod – A New Technique for Software Development Estimation

May 19th, 2009

I went to the doctor again today to see him about my back. I did not tell you about my back before, because frankly my personal health is none of your business, Mr. Internet.

I went to see him again, because the first time I saw him he told me if it was still hurting in two weeks to call and make another appointment.  So after two weeks when it was still hurting I called to make an appointment and they said, “Oh, he is on vacation.”  So I waited two more weeks to see him today at 10:00.

HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA!!!!!!!

Actually, that is when I was scheduled to begin sitting in the public waiting room.  Once I checked in they informed me that it was about a one hour wait, which in retrospect was incredibly optimistic, percentage-wise, as I waited over 90 minutes for my name to be called.

Of course, that was the amount of time you had to wait to go to the private waiting room, where the wait times are only about 1/2 as long.  I waited there for another 45 minutes for the doctor to come in.  I will now quote for you the entire session.  Okay, not really.  But pretty much.  Okay, here goes:

Doctor:  So, your back still hurts?

Me:  Yep.

Doctor:  How long has it been?

Me:  6 1/2 weeks.

Doctor:  Correct.

(That was the quiz part, to see if I’m really the correct patient.)

Doctor:  Okay.  I think you should go to physical therapy now.  Here is a referral.

There is no possible way my actual appointment lasted longer than five minutes.

But hey.  Why get mad?!  I decided before I even got there that I was not going to be one of those people that complains about the wait time, because who cares?  Not the receptionist!  So instead I said to myself, “What can I learn from this?”

And then it hit me – I can apply this to my own profession!  And so here you have it – the MDMethod for Software Development Estimation ©.

It is mostly like other kinds of software development estimation, which is to say, some combination of voodoo, magic, and recently used hay.  Here are the key points:

  • There is no correlation between when something could be delivered, when it should be delivered, and when it will be delivered.
  • Feel free to ignore reality and set unrealistic expectations.  Use an attractive woman to do this; her clothes should show cleavage and she should sit at about mid-torso level of a standing average-height man.  Teach her the expression “Blinking Bambi Eyes” – this should be used once expectations have not been met, at which point she simply says, “Yeah.  I’m really sorry about that!” in a sympathetic voice that seems sincere.
  • Actual delivery of value can be offered within a confidence interval of reasonable estimate time plus a fudge factor of about 3000%.  The doctor in my case beat the margin of error by about 300% – it took 135 minutes to deliver to me my five minute appointment, which is a margin of error of 27 times or 2700%.

Here’s how I might do this in practice:

  • Since I am not an attractive woman, I hire an attractive woman to set unrealistic expectations for me.  My wife is the best candidate for this job, but I respect her too much, so I will have to settle for another less-than-ideal candidate.  From this point on I will refer to this person as “Janice,” which seems like a good receptionist name.
  • Let’s assume that you represent the company.  You ask me to deliver a feature.  I tell Janice to inform you that I could get started on that in two weeks and that it should take about a week to implement.
  • When two weeks pass and you ask Janice how I am doing, she says, “Oh, he is on vacation.  He will be back in two weeks.”  When you say, “Wow, that is upsetting, because he said he could start on this in two weeks, two weeks ago,” Janice will then deploy Blinking Bambi Eyes and say, “Yeah, I’m really sorry about that!” in a sympathetic voice that seems sincere.
  • In two weeks when you come back and asks Janice how I am doing, she says, “Yes, he is starting on that today.  The wait time for that is three months.  We will let you know when he is ready!”  She says this in a cheerful and playful tone and does not necessarily mind if you happen to notice her cleavage.  When you say, “Wow, that seems like a long time to wait; I wish we had known it would take this long earlier,” Janice again deploys Blinking Bambi Eyes and says, “Yeah, I’m really sorry about that!” in a sympathetic voice that seems sincere.
  • After you wait for four months and I still have not started, you go to see Janice, who does not try to conceal her cleavage while you express your dissatisfaction at the fact that you are still waiting for me to start on your project.  At this point the initial two week wait doesn’t seem so bad now does it!  Anyway, Janice again deploys Blinking Bambi Eyes and says, “Yeah, I’m really sorry about that!” in a sympathetic voice that seems sincere.  By now you are just a little bit irritated – not really mad, just slightly irritated – because you have been sitting in the waiting room for four months.  But how can you be angry at Janice?  The face!  The Blinking Bambi Eyes!  The cleavage!  It is not her fault anyway!  So you just keep waiting.
  • Finally, after four and a half months, Janice happily informs you, “Matt is nearly prepared to start thinking about when he might be able to begin working on your project now!”  This excites you so greatly that you forget all the time you’ve waited.
  • Six weeks go by, but this is nothing.  You are surely on the home stretch.  Finally, I show up.  I say, “Hey, you know that project you asked me to do?”  You say, “Yes.”  I say, “When did you ask me to do that?”  You say, “Six months ago.”  I nod my head because you have passed the test – you are indeed the person who asked me to do this project.  Then I say, “Well, I did it.”  And then I leave.
  • You are thrilled and happy to pay lots of money for my professionalism and high quality of service.

This seems like such a good idea.  I am going to start using this technique at Mozy right away.  I will follow up with all of my success stories so you know how well it is working.

P.S.  I was just kidding about the cleavage.  I am happily married.  I did not notice all of that cleavage.  At all.

matt Programming , , ,

Pressure Is … A New Boss

April 6th, 2009

Wow, sometimes the pressure of my job is almost more than any reasonable person can stand.  And I’m feeling it now, because I just got a new boss.

I’m kinda like Michael Scott in this way, and many other ways.  For example, I’m incredibly funny.  And all of my employees really, really love me.  And I just got a new boss.  Unlike Michael Scott, I don’t have any plans to leave the company.

But I did stress out about this, in seriousness.  I mean, I’m so much like Michael Scott, probably my new boss would be just like Michael Scott’s new boss is, which is to say, a hardcore, emotionless freak.  Would he dislike me?  I mean, it is unthinkable – but who could dislike Michael Scott?  His new boss!

So I was totally freaking out by the time I got to work today, the day my new boss started work.  Oddly, my new boss isn’t much like Michael Scott’s.  In fact, he seems pretty cool.  He didn’t even get mad at me for coming to work late today.

No, what created the pressure was that Zach told Chris, my new boss, that he should read my blog.  Because, he said, it’s funny.

OHNO!!!

I have to think of something funny!  Something funny to put in my blog!  Today!  Under pressure!  Zach told Chris my blog is funny!  If I don’t type something funny, then he won’t know how funny I am!

Lame.  Zach, that was lame of you to put me in that situation, especially since you don’t have a blog of any consequence.  I mean, I’ve talked about my other boss, Luis, who wasn’t exactly my boss but is still my VP, on this blog.  He doesn’t actually know about my blog though so he never reads it.  But now surely Chris will read my blog since Zach told him it is so funny.  However, to be clear, I do not blame Chris, my new boss and the person in charge of my employment and livelihood, for this situation at all.  Not at all!  Chris is the smartest, hippest, coolest person I know on the face of the earth, with the possible exception of Luis, in case he reads this blog also!  And highly respected!  And smart!  Did I say smart?

Anyway, there’s nothing I can do about it now.  I have to think of something funny to write about.

Ah.  I have it.  I will tell the story about the funniest movie I ever saw, in college.  It deserves its own post.

matt Rants , ,

Understanding “Race to Witch Mountain” – Specialized Knowledge Required

March 26th, 2009

I manage the Mozy Windows Client engineering team, and not long ago I sent out a meeting request that began thusly:

Guys,
We shipped 1.12, which means we are awesome, and shipping 1.12 and being awesome is something worth celebrating.

Now, before all you fairer readers get offended, I’m allowed to address my local team with “Guys” because all of them happen to be men, which is NOT the case with my extended team (hey Seattle peeps).

Anyway, I took my team to the movie today to celebrate releasing Mozy 1.12, and being awesome.  Most of my team chose to see “Taken,” but Pancho preferred to see “Race to Witch Mountain,” and since I didn’t care and didn’t want Pancho to be alone, I went to see that movie with him.

And it wasn’t bad.  For one thing, it has The Rock in it.  The Rock’s screen name is Dwayne Johnson, and he is one of the greatest actors ever, where “greatest” means “biggest and strongest.”  In case he reads this blog, let it be known:  The Rock, you RULE!  Freaking RULE!  Please don’t beat me up!

However, I hadn’t realized that you would have to know so much about the computer game Starcraft in order to understand “Race to Witch Mountain.”  And this may also make the movie more geeky and make more geeky people want to watch it.  Plus, probably a lot of them will wonder why the movie seems to be poking fun at the space alien convention – but that is another story.

Anyway, here’s the lowdown:

  • Sara and Seth are aliens from outer space.  But they don’t look like aliens.  This means they are obviously Terrans.
  • When everyone consults with a space alien expert, he describes aliens as “praying-mantis-like.”  It is apparent that he is only familiar with Zerg aliens, and assumes that since Zerg are aliens, therefore all aliens are Zerg.  Which is a reasonable assumption to make, although anyone familiar with Starcraft knows how false this is.
  • There is also another alien.  Now I don’t mean to spoil the movie, so let me just say he’s an assassin trying to kill Sara and Seth, and that is pretty much the whole plot.  I probably spoiled it.  Eh.  Anyway, by the end of the movie it is quite clear that this alien is a Protoss.

So if you are thinking about going to see “Race to Witch Mountain” (which you should, so The Rock doesn’t hunt you down and beat on you), you should read about Starcraft first – and then you’ll be ready to fully enjoy the movie.

Oh, and by the way – if you know C and C++ and are awesome, you should talk to me about working at Mozy.

matt Science , , ,

Interview Tip – Don’t Lie

March 5th, 2009

Mozy is hiring.  I mean, Decho is hiring.  Decho is the silly name given to replace the awesome of Mozy.  We still call it Mozy, we can’t help it.

Anyway, we’re hiring.  Specifically, my team, the client team, is hiring.  And since Mozy decided to make me the manager of the Windows client team, that means I’m participating in the interviews.  This is stressing me out, because I feel like I am deciding the fate of people.

The process of getting hired at Mozy (arrgh, Decho) goes something like this:

  • Apply and submit a resume.
  • If we like your resume we will do a phone interview.
  • If you do well in the phone interview we will bring you in for on-site interviews.
  • If you do well in the on-site interviews we will assign you a homework assignment.
  • If you do well on the homework and you are the best candidate we have for the position, there’s a decent chance you’ll get an offer.

Development work at Mozy is primarily done in C++.  Objective-C on the Mac side.  Pretty much you have to know C and C++ and/or Objective-C to get a development job, unless you want to work for the web team, using Ruby.  But those guys are kinda weird.  They sit on a different floor in the building and everything.  We’re not talking about those guys.

So during the phone screen, we ask you to rate yourself on C++.

We explain the rating scale like this:  0 means you are my father, waiting for this computer fad to go away, and you haven’t really heard of C++.  1 means you wrote Hello World in C++ once, and might be able to do it again today.  On the other end of the scale, 10 means your name is Bjarne Stroustrup, or maybe Herb Sutter or Andrei Alexandrescu.  9 means you have written books on C++; 8 means you could write a book on it, or teach courses on it.

Please, people.  Do not flatter yourself on the C++ scale.

I interviewed with Google once, over the phone.  They asked me this same question with pretty much the same scale, except they made no mention of my father.  I told them I was a 6 or a 7.  And I actually have taught courses on C++.

Lately we’re asking people this question and invariably we’re getting people saying, “Oh, based on that scale, I’m a 7 or an 8.”  Even kids in college.  Now I’m not saying that kids in college can’t be a 7 or an 8 – just, keep in mind, we’re not seeing a lot of true 7’s or 8’s among experienced professionals.  I’m just sayin’.

When you say in your interview, “I’m a 7 or an 8,” what you are telling me is this:  “I know C++ better than you.”  Now, you don’t probably know me personally, so hey, maybe you are better.  All I’m saying is, you’d better be ready to prove it when we bring you on-site.

For example, you’d better know at least most of this stuff:

  • How to define a template class
  • How to correctly define the assignment operator for a class
  • How to overload the insertion and extraction operators for a class you define
  • How to iterate over an STL vector
  • Whether ++i is better, worse, or the same as i++, performance-wise, and why
  • What methods the compiler will create for you if you don’t create them yourself, and the implications of this
  • How to indicate in your developer contract whether a class is meant to be subclassed, which methods are overrideable, and how you insist that only subclasses can be instantiated
  • How to specify default values for parameters

If you are a 7 or an 8, you probably should have read most of “The C++ Programming Language” and/or “Effective C++” and/or “Advanced C++” and/or a number of equivalents.  Having read “Design Patterns” would certainly help, although lately those have kinda lost their glimmer and so I don’t weigh on those like I used to.

Also:

  • What const and mutable mean

Yeah.  const.  Don’t be like the self-proclaimed C++ expert I worked with at Enterasys Networks, who told the whole company he was the go-to guy for C++ questions, who, when asked, “Why does it say const after this method declaration?” replied, “Oh, they just do that a lot in C++; it doesn’t mean anything.”  Yeah.  Don’t be a doofus.

Don’t try to impress me by saying you are a 7 or an 8 if you aren’t.  Really – you don’t have to be a 7 or an 8 to get a job at Mozy (Decho…hrm).  If you say, “Oh, I’m probably a 5,” that tells me you are a good, solid C++ dude (or dudette, whatever) that knows how to write decent C++ applications.  You’ll probably get asked to come in for an interview anyway.

When we bring you in, it is my job (and Cody’s) to figure out how much of C++ you really know.  We will start out at the point you specified and go from there.  If you are really a 5 or a 6, but you said 7 or 8, you will feel like we’re being very brutal on you.  Hey, you are the one who said you knew your stuff.

Oh – one more thing.  Some of you experienced hires don’t think you should have to go through all of this to get a job with us.  Well, we make the rules.  Every one of us that works there has gone through it.  If you think the rules of Monopoly are dumb, nobody’s gonna think bad of you if you decide not to play.  But if you want to play but not follow the rules, well, don’t be too surprised if people take issue with that.  If you’re gonna try to work at Moz – uh, Decho, at least for my team, just go through the process like everyone else.

Okay, I feel better.  Whew.  Oh, and by the way, if you really are a 7 or an 8 (or better), I have a link for you.

matt Programming, Rants , , , , ,