Notes on the next job…

As book-end to the advice for just starting out, here are some notes on getting that next job. As we get older, hopefully you’ve picked a great industry (if not, then see Notes on getting (re)started). But assuming you have a good set of expertise, how should you think about your next job. Most of the time it will be another division in your company but sometimes, it will be outside.

When I think about this, I ask myself three questions to make sure I choose well, I sometimes add this up to get a rating for the job, each question is worth 10 points, so ask yourself, if the rating is a 1 (“Iron Man himself couldn’t do this job”) or a 10 (“I could do this by 10AM and garden the rest of the day”):

  1. Is it a job that I can succeed at? Mike Maples was VP of Application at Microsoft when I started there 100M years ago and he said in one of the first presentations I attended, “make your commitments.” Alternatively you can think of this as, “under-promise and over-deliver.” Or as my buddy Reed told me early on, “find a job that is hard, but not too hard.” What all that means is that all to often, I get enamored with the title (I can be VP!) and forget that about seven seconds after you get the title, people start judging you. If you don’t have a 30-, 60- and 90-day plan for how you are going to blow away expectations, then watch out. As an experienced hire, people want to see instant results and you don’t want to get on the wrong end of that expectation. It is sometimes true that it is better to be a director and then earn the VP title than the other way around.
  2. Will my boss love me anyway? Put another way, if the job is super hard, what is the internal dynamics like. Is it a boss who has known me for years and willing to give me say six months. Or it is the kind of matrixes job where all the other VPs hate me, yet I need their help to succeed. Obviously there is a tradeoff between this and #1. The easier the job for you, the less you need love, you can just deliver.
  3. How long will it take and what’s the downside if I fail? If this job will take 10 years to get right, that means that you have to deliver for 40 quarters (put’s that in perspective doesn’t it) and survive five CEOs (most CEOs survive 1-3 years). On ¬†the other hand, it might be worth it to take a difficult job in a difficult environment if the payout is in six months and it is guaranteed. The bigger question is what does your Linked page look like if the job or the company implodes since that affects the next gig.

While this isn’t foolproof, when I ask people these questions, I normally learn a few things:

  1. Most people spend less time casting a wide net for a job than they do researching the next cell phone they want. When you are heads down working, it is super hard to know what is out there. Being out looking for something is a full time job, so many times it pays to invest in the future when you sense the end of near. You want to get out before everyone else gets out (that’s the topic of another post :-). But one way to look at it is that for every ten years of job experience, you probably need an additional month to find the right position. So please don’t settle for the next job because your buddy told you about it, finding the next gig is going to take time. It is uncomfortable to be sure, you have to ask your personal board of directors, you have to meet investors and new people, but it’s your life and you d0n’t get a second chance!
  2. Be choosy about what you are choosy about. In other words, what are your real criteria for the next gig. So many times, you see and job and try to fit into it, the more senior you are, the more the job needs to fit you. If it fits, then you are going to be better at it. If you need more time with the family, don’t take a job that requires 100 hours a week. If you are exhausted and burned out, don’t become CEO of a turnaround. If you need to make that final nest egg before moving to Tahiti, then don’t take a job that will show results in 10 years.
  3. Finally and to repeat from the first post, ask your personal board. Deciding this stuff for yourself is really hard, you need a set of folks who can be dispassionate and analytic about who you are and have the courage to go against your best judgement.

And finally, good luck! The stakes are much higher as you are more experienced and each step is an opportunity to create a hole in your resume that’s hard to explain or a chance to solidify an amazing career ūüôā

The seven deadly sins of building products 

A good buddy Duncan asked me about product development particularly in a startup. Seems like a common question. So here are my five let’s call it pearls of wisdom:

Sorry this got stuck in inbox but a few quick thoughts that you might call the seven deadly sins of making products:

  1. It just ain’t clear what it is. Watch the 2007 launch of the iPhone by Steve jobs a hundred times. It is the single best example of minimalism in design goals I’ve ever seen. It is a phone, and iPod and the Internet via a touch interface. The challenge is to see if your “points of light” to use a Coleism is as crisp. My budy Ludwig is particularly good at this brand of clarity but most folks aren’t. 
  2. 99.9% of all products are more complex than they need to be given their missions above. Complexity is the enemy of usability and sales. It is essentially way easier to do 80% of 100 feetures than 10 features done superbly. Maybe this is why Fitbit out sells the Apple Watch 5:1. The hard thing is for the business leader to have the taste and style of their customers. Better to want more than to find things confusing. The trick is taking general purpose hardware and making to work for precisely the right purpose. This is also know as the “dessert topping and floor wax problem” to use a Nashism. Products that are complex are also hard to explain and position. 

  3. The feature you want is almost never the feature that customers want. My buddy Duncan said it well,  music companies wanted reporting while technology companies give them antipiracy. It’s so common that the best feature is actually reporting rather than the product (personally I think the Eco display of the Prius sold way more cars than we can ever imagine). Usually the feature that people  is so simple that developers like me  don’t want to build them. And they take so much buffing and polishing that it is boring. 

  4. Business guys get bored by the daily guidance needed for great product development. It’s so much easier to say “just make it work” than to grind through and each and every 9am remind the developers what they want. But they are the most important people because they motivate and they create realism for the development team. It may seem strange to tell someone this web page needs a back button but remember the src thinks fundamentally differently than you. It may seems stupid but time after time the first 30 seconds of a product starting with opening the box are what matter. Clicking on a button that doesn’t work doesn’t help. 

  5. A great product doesn’t come together in a spec. It is molded in two ways: the inspiration (let’s bring touch screens to phones) which lets you recruit the very best developers. And the day painful grind of how you get there. Business geeks like me like to focus on a huge spec but don’t realize that 90% of the magic comes form typically one feature don’t super well. You don’t get that in a software gantt chart. 

  6. Don’t be afraid to change direction or create demos. Engineers hate demos. It is like asking Michelangelo to throw together a cheese pizza. As an engineer I want to build truly beautiful stuff. But the reality is that until you find the right product/market fit, committing too early to a course is not smart. Many times markets open and for a brief moment you have to change direction. Jobs did it when he took his iPad interface and said lets do a phone first. Gates did it when he turned Microsoft back to a focus on the 80286 instead of a 386 specific operating system. 

  7. Really do agile right. It’s such a slang term but the idea that the business leader reviews the technology teams progress every morning at 9am is the core and most folks never follow it. It’s boring for business guys and randomizing for technical folks. But the reality is particularly for startups it takes month long mistakes and avoids them with daily corrections. I know it’s hard work but you have to do it. 

The last thing isn’t really a sin but a touchstone, will you really be proud of the product 30 years from now. Will it have made a difference in the world? In the end changing the world to make it a better place isn’t a bad goal for you to spend most of your waking life thinking about ūüôā

Getting Photos and Videos off a Nexus 5x to Mac OS X El Capitan

Well this is not as easy as you think. The Google Android File Transfer doesn’t seem to work. It keeps complaining about not being to access USB. I didn’t have time to figure out what was wrong so tried some alternatives:

  • Airdrop. This is a freemium product that is a little strange in that you install an Android app and a Mac app and it uses a wifi connection between the two. It does transfer notifications to your computer (I guess this is useful) and also you can use your keyboard and display removed. But the key functionality which is moving a file seems to time out. Duh!
  • Dropbox. Ok I really didn’t think this would work, but if you install Dropbox on your Android phone, you can configure it to camera upload on Wifi only, it then uses Wifi to talk with your Dropbox in the sky. Kind of a long way around, but it does work.

Wow the valentine really is the best radar detector. 

I’ve been using an escort passport for years and it’s bee great but wirecutter is right the Vakenjne V-one is incredible. Super sensitive and the display although arcane is super useful. Seeing where the radar is coming from and also how many really helps situational awareness. A nice addition to machine kesnring is to add radar data. 

Notes on jobs for those just getting started…

OK, some folks have asked me questions and while free advice is worth exactly what it costs, I thought I’d post some rules that at least have helped me. This is tuned for someone just starting out in the world and wondering what their career path should be…

I have ten rules, but I’d summarize by saying:

Pick the right industry, then the right company in that industry, then the right job in that company. Leave before you get fired and know when to jump for the opportunity of a lifetime.

Ok here are the big rules in no particular order:

  1. “Build a great personal board of directors” In the end, it is people who matter, Ruthann once told me, have your own personal board of directors (on a nice walk by SFO, I still remember the exact spot). She was so right. If you think of yourself as a company or as a product, then the most important thing is to collect wisdom from people who are smart, who have the wisdom. Perhaps the most important skill in life is being able to tell the difference between a blow hard and someone who really is altruistic. They really have your best interests at heart. When you have a big decision, rely on your gut and on their advice. It doesn’t take many and you have to know the bias of the source, but it’s a good idea. Some people are good at certain things, like what’s a great sector, some at other things, like how to get ahead, but the combination is the point. How can you tell who is great, well look at their track record, if they have followed every curve and been on top, there’s a reason. Make sure your board reflects who you are. Don’t hire conservative bankers if you are a wide-eyed entrepreneur.
  2. “Stay in the high growth markets.” Ok, this is probably the most important rule. Are you more likely to do better in a market growing 50% a year or where it is growing 1% a year. I’m really amazed at how often someone will stick with a sector that was once hot but has leveled out. If you realize that the average person has a new job every three years and really a new career every seven, then you can see that even if you stay with a company for 15 years, then make sure you are on the right wave. One year, it might be PCs, one year it might be mobile, then next the Internet of Things. One of the most important jobs is predicting markets; the truth is everyone is a stock market analyst in that regard, so read the WSJ, think about where the business is going.
  3. “Bet. Rinse. Repeat as needed.” We are so lucky to live in the 21st century where markets are moving and a fresh start is just one new business card away. But I like to think of jobs as punctuated equilibrium, you need to keep moving until you find the right place and then stick with it. So make your bet on industry, company and job and make sure to reassess. I’m amazed at the number of people who after 90 days on the job know that it is a mistake, but then stick with it for 5 years. While it might be controversial, would you rather see a r√©sum√© with two 5 year stints and mediocre results or where you see three jobs in the first three years, then an eight year stint where the last title is General Manager.
  4. “Jumping through the rabbit hole.” Conversely there are times when you know that the stars have aligned and if something happens, then you can have an amazing 20 year career. The “rabbit hole” doesn’t appear often and most of us only get it once or twice in a lifetime, but when you see if jump with all your might, do what it takes jump down and through the Alice in Wonderland.
  5. “Keep transferable”. I was just talking with someone who found a great job, the perfect company, great people, etc. The problem is that there is exactly one company who needs those skills. Everything they do is proprietary. Well that’s great for high profits, but what if that niche closes, then where are you. It’s a good idea to keep reminding yourself, “I¬†want a job that is in high demand everywhere.” There’s a natural tendency to just keep getting better at what you are doing, but remember that if you are not spending 30% of your time learning something new something is wrong.
  6. “Stick with winners in companies and bosses” The sad truth is that even if you pick the right industry, the overall success of the company matters the most. Winners always look wonderful and even if you did a relatively small job in the market leader, you are in good shape typically. Moreover, typically there is a positive cycle. The category leader tends to attract the best people, they have the most money so riding the long wave of success is not a bad thing. On the other hand, there are definitely market leaders that are not good places to work. I love places where you can run your own business, where the company is really 20 or even 100 P&Ls, it’s a lot easier to be at the top then.
  7. “Do you fit in the culture, can you be no. 1?” Lots of times when I look at a new company, I look at the CEO and ask, how would I do in a meeting with him or her. Even if you are zillion levels down, remember that CEO hired all the bosses above you and how the company works takes its cues. While I love the under dog stories of someone bucking the trend, its a “hard push up” to fight an entire company. You might be far better off not joining them in the first place or starting your own company and making your own culture ūüôā
  8. “Hard but not too hard.” I was off on a ride and talking with a really good guy (you meet the best people on Lyft rides I find ūüôā We talked about following “your dreams.” Well, the truth is I spend a lot of time trying to find jobs that are in the words of a very smart guy, “hard but not too hard.” What he meant is a job that is under-rated. It is really hard to follow an encore. Do you really want to come up with be the CEO of the most successful company in the world, after all what can you do for an encore? You want jobs that seem hard to others, that looks like turnarounds but where expectations are low. Some jobs are impossible (Blackberry??!) because they are too hard. Some jobs are impossible because how do you beat perfect, the trick is find one where the future.
  9. “Under promise, over deliver.”¬†While cookie licking and taking credit may win in the short-term, in the end, everyone loves the person who just gets it done. If you’ve found the right industry, then now is the time to really deliver. Mike Maples once said, “make your commitments” and I’m amazed by how often this doesn’t happen. Most of us have zillions of action items, but in the end, if you do just three of the must do’s, and,¬†are done by 10AM, then take the rest of the day off. If you think about it, how well would you do if after a year, you did 50 weeks x 5 days a week x 3 things = 450 super important things a year?
  10. “Focus wins.” My buddy John once told me, “I had a huge job Windows and then a bunch of other projects, so I asked my boss, if I knock it out of the park¬†the other projects, but flub Windows, what happens to me?” When he got the obvious answer, he said, “well then I do not want the other things.” It’s a huge, huge, huge rule, focus on the one thing that really matters and make it clear. It is so easy to take on jobs B, C and D when A is how you are defined. As Brad has always told me, “Focus wins.”

Fullstack React Tutorial Fixes

Errata and Fixes

Well these guys have a really useful tutorial, unfortunately, it has bugs in it and apparently my disqus comments keep getting rejected, so here is an errata sheet for the Fullstack React Tutorial. They are focused on their book and other content so not surprising, still if you want to use their stuff, here are the things you need to know:

  • At one point they use an onMarkerClick which isn’t yet defined
  • In the Item section, there is a missing style in the style.module.css for Item, the h2 should have a font-size: 1.2em;¬†or something like that otherwise it picks it up from the main header.
  • There is a missing section in the description for adding Sidebar where it is not hooked into the main, you have to add that into the caller
  • The Karma tests for Rating will not pass because Karma does not allow the variable wrapper¬†to be reused. The fix is that each test should use wrapper1, wrapper2,...
  • One of the tests in Ratings.spec.js¬†is wrong, is says a rating 4/5 should be 90%. It should of course be 80%
  • There is a section where they talk about the routing and there is a typo that says path=""¬†but it should be path="/" in route.js

React structure

This tutorial is mainly focused on providing code, so they don’t explain some of the relatively complex ideas and various tricks they are using:

  1. When you call a component, there is no easy way to call have a bunch of arguments, instead, you construct an associative array and pass that.
  2. There are two objects with semantics they are this.props which are all the parameters passed down to you by the caller and this.state which are your variables. A lot of react is about passing these parameters up and down.
  3. There are lots and lots of levels in React code, I almost lost myself in a maze of directories, but basically, this code style like small modules in individual directories and the main ones are src/view which are where the rendering code is.
  4. This uses Ecmascript 6, so they do have classes which have both functions and variables and some interesting notation like ‘(a,b) => { return a, b} which is basically a function call writeen like a lambda expression.

Notes on writing React code with stylelint and eslint

Ok most people using React are going to be experienced web devs, but if you are (like me) a complete Noob the learning curve can be pretty high if you just use  your google-fu. Here are some notes about the model:

  1. There are a whole bunch of implicit variables. The most important of these are this.props which are read only parameters passed down and this.state which are variables. Remember that Javascript doesn’t do any checking, so simple typos like¬†vs this.props.places¬†will work just fine. If Javascript doesn’t see a variable, it just instantiates it. You can add the line 'use strict'¬†at the top to get better type checking.
  2. The same is true with CSS, it is very picky. I found that the only way to be productive was to turn on all the linting that I could find. This is some trick since I use vi but syntastic is a good tool and with some tricks, the two best tools for this seem to be eslint with the eslint-babel pluging and the react plugin. The CSS, the best one seems to be stylelint and its stylelint-default-config
  3. This JSX has lots and lots of syntax because node reverses everything so everything is a function (you are always a layer down at least). And because as soon as you see a < you are suddenly in HTML land and everything reverses. So eslint is mandatory.