Under the Radar

63: Missing Skills


00:00:00   Welcome to Under the Radar, a show about independent iOS app development.

00:00:04   I'm Mark O'Arment.

00:00:06   And I'm David Smith. Under the Radar is never longer than 30 minutes, so let's get started.

00:00:10   So, in the last couple of weeks, we've had the news that Chris Lattner is leaving Apple and moving over to Tesla.

00:00:20   And while there's a lot of interesting aspects and things related to that change,

00:00:24   I'm not interested in talking about any of the ones that you probably would expect me to talk about.

00:00:28   About Swift, its future, about what this means about Apple. None of that's particularly interesting for me today for the purposes of this show.

00:00:34   What I'm interested in talking about, and what I'm really curious to hear what you think too, Marco,

00:00:38   is how him leaving and making this big career transition in a weird way made me think a lot about my own career.

00:00:49   And my own kind of situation as a developer, specifically being an independent.

00:00:55   Because in a traditional job, where you start off, maybe you're a junior developer,

00:01:00   which means that you're writing code, but you're usually someone who's supervising you, checking your work,

00:01:08   or mentoring you as you get better and better.

00:01:11   Maybe you become a senior developer, whatever that means, where maybe you're then doing that mentoring.

00:01:16   And then, in my experience, which I've only worked really at two companies, but I think it generalizes reasonably well.

00:01:23   You kind of hit a point from when you are on that, you start off technical completely,

00:01:29   and then at a certain point you kind of hit this fork in the road,

00:01:32   where you have to either be somewhat more managerial in terms of running a team,

00:01:40   or doing more of the managerial side of things, or you become more armchair technical,

00:01:48   and you become the architect role, or the chief technology officer, or chief scientist.

00:01:56   There's lots of different terms for that, but you go down the "I'm going to just keep going more and more technical."

00:02:02   And you kind of have this progression.

00:02:04   And in a lot of companies, the awkward thing for a lot of engineers is,

00:02:09   to really advance your career, you often have to start going down the managerial role.

00:02:14   That's just the way that I think a lot of company cultures work, that the best jobs,

00:02:18   and if you want to advance your salary, if you want to have more say in what you do,

00:02:23   management is often a thing that comes with that, which is awkward if what you want to do is code.

00:02:28   Now, that path and that sort of structure, I think, is completely irrelevant when you decide you want to be an independent.

00:02:37   So, for me, I started being an independent developer about eight years ago, a little over eight years ago.

00:02:45   And ever since then, I've essentially had no job, or no job title.

00:02:50   It's not like I started as a junior developer as my independent thing, and now I'm working my way up.

00:02:57   I've always just sort of done everything.

00:03:00   And what this has made me think about, though, is there a next step?

00:03:07   If you start a job, often they'll ask you, "Where would you like to see yourself in five years?

00:03:11   Where would you like to see yourself in ten years?"

00:03:13   And in a lot of places, it's like, "Well, eventually, maybe I want to be the vice president of autopilot software."

00:03:19   That sounds really interesting.

00:03:21   You can imagine a role down the road, doing some kind of senior leadership position, doing something really awesome.

00:03:29   But being independent, though, I don't really know what that would be for me.

00:03:35   Maybe in five years, if I'm doing the same thing, I'll be doing the same thing.

00:03:41   And I don't really have any expectations of hiring somebody or doing those types of things.

00:03:45   And so I'm not getting any managerial experience.

00:03:48   And so even if I wanted to become a manager, in a weird way, if I wanted to get a job.

00:03:54   Say I wanted to get a job at a tech company.

00:03:56   I'm senior enough in terms of capability and age and experience that I would probably want to be reasonably high in that company.

00:04:04   But I'm pretty sure I'd be an awful manager because I have no managerial experience whatsoever.

00:04:10   And certainly not managerial experience commensurate with my level of experience.

00:04:15   And that's really weird.

00:04:17   Honestly, not even just managing people, but I also haven't been managed in eight years.

00:04:22   So I haven't had good managers that I can learn good things from and bad managers that I can learn what not to do from.

00:04:30   And I don't know, it was just something that I started thinking about this week that seemed like it would be an interesting topic.

00:04:36   Because I think when you become independent, this is not really what you tend to think about.

00:04:41   I just really know I didn't.

00:04:42   I didn't think that eight years from when I started, I would still be doing this.

00:04:46   And I would have kind of driven my career in this very specific direction.

00:04:51   One that I love. I love being independent.

00:04:53   But it's definitely, I think, put me in a very odd position as a result.

00:04:59   Yeah, I found myself in a pretty similar place on this.

00:05:03   You know, I too worked for two jobs before I went independent.

00:05:08   One of them was a small software company in Pittsburgh and then the other one was Tumblr.

00:05:14   And both of those were very different.

00:05:18   And I kind of, so the one in Pittsburgh, this was right after I graduated from college, so I thought I was hot stuff.

00:05:26   I thought I knew everything.

00:05:27   And I learned over the two years that I was there that I knew nothing.

00:05:31   And I learned a tremendous deal from working there.

00:05:37   Because I was working with people who were older, more experienced, and smarter than me.

00:05:43   And so I was able to absorb, even though I didn't fully appreciate it at the time, I don't think,

00:05:48   but I was able to absorb tons of just wisdom and reality from the staff at that company.

00:05:58   And when I went to Tumblr, it was kind of different.

00:06:03   It was just me and David for the majority of my time there for, I think, the first at least two years.

00:06:10   And then it was still just me and David as the programming and technical staff for even longer after that.

00:06:16   It was only in the last few months, or maybe the last year that I was there, that there were actually other programmers who were working there.

00:06:23   So it was a very small staff of mostly just the two of us for most of that time.

00:06:28   And it was weird because David was even younger than me.

00:06:33   Here I was, I had only had two years of experience since college.

00:06:38   Then I go to work for a company where my boss is five years younger than me, though I didn't know that at the time.

00:06:44   And he's had even less experience than I have with programming.

00:06:48   So to him, I was the senior programmer.

00:06:52   And here I was coming out of a company where I was really the junior programmer.

00:06:56   Working there for the next four years, I had to kind of develop skills on demand as the company kind of exploded in user base.

00:07:08   And it kind of had to force us to learn how to do things like scale, and then how to manage a big service and things like that.

00:07:15   But I was never really taught that by anybody else.

00:07:20   I was taught from David lots of other things during that time.

00:07:24   David was a really good product person, and really good at handling image and PR and everything.

00:07:31   And so I learned a lot from him, but not about programming.

00:07:36   Programming, I was mostly on my own, or learning from web sources, open source, or other programmers that I would talk to occasionally who worked in other places, or things like that, blog posts.

00:07:49   So it was weird that I kind of never got the next level education that you would presumably get if you were working as a junior programmer, or a mid-level programmer under a senior programmer, or whatever these titles are.

00:08:05   I mean, I honestly have no idea either.

00:08:07   I think your overview sounded roughly correct. It's plausible at least.

00:08:11   So one of the things that I, one of the problems during that time is I learned very quickly that these things are all relative.

00:08:21   When I was in Pittsburgh, I was able to look up to the people who were there before me, and to go to them with problems, and to hear their critiques of how I was doing things, and to get their input on the best ways to do things.

00:08:38   And to get some of their discipline to learn that from them.

00:08:42   And then when I went to Tumblr, I was responsible for trying to set that tone.

00:08:48   But David was a programmer too, so it wasn't just me.

00:08:51   So I had to kind of, I had to be somewhat of like a technical manager of the project, but without being the boss.

00:09:00   Which is not an easy balance to strike for either of us.

00:09:03   And so I got kind of bits and pieces of senior level experience, but I still have massive holes in my knowledge, and my experience, and my practice of programming.

00:09:21   I have massive holes that I just either experienced very little of, mostly in my first job, or that I've never experienced.

00:09:27   So things like, for instance, I've never worked with a project manager.

00:09:31   Like ever. I don't even know what they do.

00:09:34   They tell me, and it sounds reasonable, and it sounds like a good job, but I have no idea what that means in practice.

00:09:39   I have no idea what it's like to work with, for, as, or under a programmer project manager.

00:09:44   I don't even know the difference between those two things.

00:09:46   And other big things like, I've never really worked at a company that scored very well on Joel Spolsky's The Joel Test, remember that?

00:09:57   - Vaguely.

00:09:59   - So Joel Spolsky wrote back in Joel on Software, like a billion years ago, he wrote a famous post called The Joel Test, and it was basically like a little checklist of like,

00:10:10   here's, it was like 10, or roughly 10 things that a good, healthy software development organization should do or have.

00:10:19   And it was things like, have a bug track, or have a schedule, stuff like that.

00:10:23   And I've never worked at a place that had even probably five of those things.

00:10:27   'Cause everything was like, Pittsburgh, it was still kind of figuring itself out, and then Tumblr, we just never got our act together.

00:10:33   We were so busy doing other things, and neither of us even knew what to do in that regard.

00:10:38   And so, I've often thought, like, one of the only regrets I have about my career is that I never got a chance to kind of go to like, boot camp almost.

00:10:51   Like, to go to a place, a big company, a place like Apple or something like that, like, you know, go to a big company where I would learn more about what it's like to be a developer

00:11:02   in that kind of large-scale, professional environment, 'cause I've never had that.

00:11:07   And looking at my current career, and, you know, the way I am, I'm not sure I ever will have that.

00:11:14   I think it's fairly unlikely.

00:11:16   So, it's a regret that I have that I never got to develop those skills and have that experience of working in that kind of capacity.

00:11:25   But I don't regret it enough to wanna go back and drop what I'm doing now and change my lifestyle now to go back and get that.

00:11:34   But maybe later in my life, I'll change my mind on that, and maybe I will go work for a big company, you know, just to get that experience. I don't know.

00:11:41   Yeah, 'cause I think that's the thing that I've been wrestling with this last week, is this funny thought of, like, I can see myself doing the job that I have now

00:11:51   for probably the next maybe five years, like, in terms of, like, I don't really plan out that far or anything, but it's like, I can kind of imagine that this sort of independent iOS developer thing

00:12:04   kind of will work for that amount of time. But it gets harder when I start to think of, like, do I really see, like, I'm making iOS apps independently as, like,

00:12:14   a viable living maybe 20 years from now, where I expect to still be working, hopefully, in 20 years.

00:12:22   Like, that starts to get a little squishy. Like, do I really, can I really realistically expect myself to, you know, be doing this work for, say, the next 30 or 40 years?

00:12:34   Like, it starts to get squishy. And then I start to think, like, just like you, I feel like I have these big gaps in my capabilities, in my skills that you kind of can only get from experience.

00:12:45   And I mean, I'm sure at a certain point, like, if I went and got a job at a big company, I would pick it up quickly, I would, you know, dive into it and learn it as best as I can, just in the same way that,

00:12:57   for one thing, I will say that being an independent has definitely taught me is the ability to learn things quickly, because most of what I do, it's like, I don't know how to do this at all.

00:13:09   Now I need to know how to do it, because that's just part of the job. There's no other person, like, if I need to host a web server, I just had to go and work out how to do that and, you know, like, sit there, spin up my first Linode, you know, VPS box and, like, mess around with it for a while until I could get it to work.

00:13:27   And you kind of have developed, I've developed that skill of learning quickly from being independent, but not the actual skills that I would need to learn quickly.

00:13:35   But like you said, like, I don't, it's not like I want to stop what I'm doing now and go and learn those things, like, take a, like, for the, you know, go get a regular job for, you know, for five years to develop the skills of being an effective technical manager, like that,

00:13:51   that doesn't appeal to me, but it's weird when I think, you know, will the 10 years in my future self, like be mad at me right now for doing that, being like, why did you spend all that time doing the all doing all that indie stuff when eventually you're going to have to go and get a job and that's going to be problematic.

00:14:10   But it's a weird tension, though, like, I don't know what the the right answer to it. And I think whenever I hit something like this, that I don't have a good answer to that I feel slightly uncomfortable about the fact that, like, I'm getting really good at making apps, and doing it in a way that

00:14:28   like works for me and it has, you know, certain amount of success in the market and those types of skills, but there's a certain aspect to being a professional developer that, like I have zero experience in that is arguably, you know, just as important and I'd be just as important but significantly important.

00:14:47   If I ever want to do this work in a professional context that isn't just, you know, me in my basement with an iMac, writing my own code.

00:14:57   This episode of Under the Radar is brought to you by MacPaw and the new SetApp. MacPaw is well known as the developer of apps such as CleanMyMac and Gemini, but they've been working on something new called SetApp. SetApp is an alternative to the App Store we know on the Mac with a totally new business model and its public launch is approaching quickly.

00:15:16   With SetApp you pay one monthly fee and get access to the best Mac software included in that flat fee. There's no ads and no more paid upgrades. You just pay the flat fee every month to access new software and this also supports developers on a continuing basis for their work.

00:15:31   SetApp has already lined up an impressive list of well known Mac software for the service including Ulysses, RapidWeaver 7, Reveal, iStat Menus, LTM player and many more.

00:15:42   You can get instant access to the open beta right now. It's an open beta right now at SetApp.com/undertheradar. Once again, to access the open beta go to SetApp.com/undertheradar. Thank you so much to MacPaw and SetApp for their support of this show and Relay FM.

00:15:58   So where do you see yourself in 10 years, Marco?

00:16:01   Oh jeez, I don't even know. Beach House?

00:16:04   There you go, just retire early.

00:16:07   I think about this sometimes too. I honestly have no idea. It's an incredible luxury we have to have to think about like well what kind of job do we want to have after our self created non-job that makes us money for this luxurious lifestyle that we lead. A lot of people would give a lot to be in our position.

00:16:27   Absolutely, it's a good thing to clarify.

00:16:30   Yeah, I think one thing that Daniel Jowkut told me a long time ago was that once you go indie for a pretty short amount of time, you very quickly become unemployable. Not in the sense that nobody will hire you, but in the sense that you quickly lose the tolerance of working for other people.

00:16:57   And I don't know, I haven't gone back to work yet since going indie for anybody else, so I don't know if that would be true for me. It certainly sounds likely. I can tell you that. Even when I was working for other people, I was not the easiest person to manage.

00:17:15   It's not that I wouldn't work or that I would not show up or anything, but it was just really hard to motivate me to work on things I didn't want to do. And of course every job involves things that I don't want to do. Even my current self made job involves lots of things I don't want to do.

00:17:31   And I do indeed put them off forever. This is a part of my personality that I still have not solved and probably never will at this point, but I can keep trying. So ultimately, I don't know what else I will do.

00:17:49   I don't expect iOS development to last forever as my job or as a viable job for lots of people. I mean it's already hard. It's already very hard for most people to do it as the only thing they do, unless it's something like consulting.

00:18:04   But for what we do, more of the product thing, that's very hard. And not a lot of people do that for their living. So I don't expect that I will be doing iOS development in a meaningful way in 10 years. I might. That might be cool.

00:18:22   But I'm not going to say I'm definitely not going to be doing it. But I wouldn't expect that. I would expect something else to have supplanted it by then. Whether that's an Apple platform, I hope it is. I like Apple platforms. Or whether it's something else. Maybe I'm not doing a lot of programming at all in 10 years.

00:18:38   Maybe in 10 years I'm just going to be an angry podcaster complaining about everything all the time. Oh wait, I'm not today. Maybe in 10 years I will be focusing more on media stuff and less on programming. I have no idea.

00:18:56   But as we've talked about on previous shows, this is one of the reasons why I try to keep my options open and why I try to develop multiple skills in different areas. Because the markets change, the job market changes, demand changes.

00:19:09   And down at the bottom of it, I change. And what I like to do changes. What I'm able to do. What I'm good and bad at. What I feel is good use of my time versus what isn't. All these things change over time as people grow and their life situation changes.

00:19:29   Right now I have a young child. Before I had a kid I would have made different decisions. Right now he's young. I make a certain set of decisions. And now as he gets older, my lifestyle will presumably change along with those changes and will extend in different ways.

00:19:49   I can't say what I'll be doing in 10 years. All I can say really is I expect everything to change because it always does. And I just try to prepare myself for what that might be. And that might be going to work for somebody else.

00:20:06   Again, I wouldn't rule that out. I just don't think it's a very likely outcome based on just me and my personality type. I think I've gotten so full of myself as an independent developer now that I really can't see myself going back.

00:20:21   Unless, again, people change. Unless there's some kind of big project that I want to tackle that would require working with or for other people. So right now one of the downsides, and I think you feel similarly, one of the downsides of my limited experience is, as you mentioned earlier, I don't have any management experience.

00:20:46   I've never managed anybody, even at Tumblr, even when we hired more programmers in my last year or so there, they all reported to David, not me. I was kind of like this offshoot, kind of like was, in his role.

00:21:01   As the company got bigger, he kind of just did his own thing and then eventually left. As far as I know, I don't know the details, but that's kind of what I was doing. I was really like, I was given my own assignments by David, who was the boss of all of us. Nobody reported directly to me.

00:21:16   I've never had anybody. I've never had any direct reports. I've never been a manager. Even when I have, in previous businesses, I have occasionally paid contractors to do certain things, but even those were very, very basic, shallow, low touch arrangements that didn't involve much management from me at all.

00:21:37   So, there's a whole set of potential things that I could possibly make or want to make someday that would require more people. Because I've never managed people and don't really have an interest in doing that, I basically can't tackle that set of problems. I just can't do that.

00:21:58   If I want to change that statement and if I want to become a manager of people and possibly do things like take on investment, which is a whole different level of management, because then you're managing the investors as well as your employees and everything.

00:22:12   If I want to do that kind of thing to make some kind of big company or bigger than one person company, down the road I might want to do that.

00:22:21   If I can no longer do what I want to do with just myself, I will need to change and then that will change my working environment and whether I'm working with or for people.

00:22:32   But right now, I'm pretty happy just doing things with myself. I'm pretty happy with what I can accomplish as one person. There's always going to be more that I could do that I wish I had time to do, but there's also the trade-off of if I would tackle that, then I would have all these downsides and I'm not sure the downsides are worth it to me.

00:22:50   Yeah, and I think there is something that's sort of the counterpoint of these skills that we're not learning side of things.

00:22:57   We're not learning the skills of, I was going to say business, but it's not really business, but it's that kind of, it's the management and budgeting and HR and all of those aspects that are kind of the necessary bureaucracy of a company.

00:23:14   Well, I'm pretty sure we're learning a lot about business and budgeting as app developers, probably more so than we would learn working at another company actually.

00:23:22   Maybe, but there's only aspects of that. We're not filling in those TPS reports for ourselves. We're not building those kinds of skills.

00:23:30   Yeah, we're just downloading the Apple iTunes Connect reports and filling out contracts. There's a lot of overlap. We just have to deal with somebody else's BS instead of our bosses.

00:23:40   There you go. But I do think the interesting thing is that I feel like one nice thing about being independent is I am, I would say I have a very broad, to what you're just saying, I have a very broad set of skills in a lot of areas that I wouldn't have if I was working at a company.

00:23:55   I have to file my own taxes. I have to do payroll withholding. I have to do all kind of business license and compliance things. I'm doing my own benefits and managing those.

00:24:09   There's lots of aspects of businesses that I have to learn. It's like you end up with this very broad experience when you're independent because you have to wear all those hats. You have to do all those things. You don't just have a department that takes care of it.

00:24:22   But on the flip side, this is the thing that I think gives me some comfort in all of this. When I think about, "Oh, am I missing out? Am I going to find myself in a position that I look back and regret that I've left this entire aspect of being a professional developer completely flat for so many years?"

00:24:42   The thing that I think about though is being independent also means that in addition to having a very wide experience in some ways in a shallow way, I have certain areas of things where I am able to be much more of an expert and much more focused and have experiences and skills developed to a level that I don't think would have been possible in a typical company.

00:25:09   I can choose my assignments in terms of what I'm working on to such a degree that I've chosen to focus essentially all of my efforts for the last couple years in one way or another on the Apple Watch and being really good at making apps for that.

00:25:27   It's a skill that maybe in some ways I could have done there if I'd been at a bigger company, but what it means is this is now something that I have. My guess is that technical expertise and the ability to really have the experience of having to build things all the way from one end to the other is probably going to be more valuable ultimately than having these other skills and these other abilities that I would have developed if I'd been in a corporate environment.

00:25:56   If I ever get to that point where I want to go and work for you know be a director of a software group maybe like that became my career goal like I expect I would be able to get there still but in a different way that I could the things that the skills and the strengths that I would be leaning on as I was trying to you know sort of prove myself in that environment would look more technical and would look more to

00:26:25   this kind of this breadth of experience and this sense of having the whole picture in mind and like that would get me you know sort of make up the handicap that I was getting or at least that's what I tell myself but like it's okay because it's like the I'm getting experience that you can't get any other way that is still valuable and still transferable just not you know it's like it's just not comprehensive and like the things that I lack in managerial skills

00:26:54   or office politics skills or those types of things that like the things that I don't miss about having a corporate job like I don't miss and having office politics that I have to work through where it's like why are we doing this this seems foolish it's like well this is the way that Bob wants to do it and Bob's the one who has the ear of the whatever like those things don't exist we all have a Bob yeah I mean that Bob

00:27:21   yeah so was yours actually named Bob it sounds like you have some history there it's like the names have been changed to protect the innocent case but I think actually worked with the Bob but anyway like those things I don't miss and I think the reality is I am going to be like I'll be fine because being independent is in like there are so maybe not like I maybe I'm not going to go work for like some big massive

00:27:50   government contracting company with that you know like CMMI level five like the super formal like rigorous software engineering stuff that I just really would fall behind in but if I wanted to work at a startup that was making something that I thought was cool I could probably make up the ground and the other things and like it's more important and more impressive to have had a history of shipping products from start to finish is probably valuable in its own way.

00:28:19   If nothing else I hear Tesla's hiring.

00:28:21   I hear that too and they make great products we have we both have one in our driveways.

00:28:27   Fantastic.

00:28:28   All right, that's all the time we have this week. Thank you everybody for listening and we'll talk to you next week.

00:28:33   Bye.