DEV Community

John Munsch
John Munsch

Posted on

I have been a professional developer for 31 years and I'm 53 now, Ask Me Anything!

I've been a professional developer since I graduated in 1987. I am currently the lead for a team of five (including myself) doing front-end development on SaaS software (official title is Application Architect). Apparently, at 53 and still up-to-date and still developing I've become a novelty :)

Ask away...

Oldest comments (95)

Collapse
 
adamthewizard profile image
Adam

Hey, John! Really simple one to start haha - With so many years under your belt I imagine it's changed quite a few times but what stack do you work with in your current day to day? And do you still find joy in building side projects/toys or has it become somewhat of a meal ticket? Awesome you're doing this!

Collapse
 
johnmunsch profile image
John Munsch

I've been doing AngularJS for the past few years with Redux and TypeScript in the mix as well. We recently changed from Gulp to webpack and the handwriting is on the wall for the lifespan of AngularJS so we're looking at what to transition to for the next five years. Angular is one possibility; though I did a video course on it for Packt Publishing and truthfully I didn't like it very much. I felt like all the things it was trying to do were rapidly being added to the browser and I didn't need Angular's wrapper for it. Another, IMHO better, solution would be Web Components possibly with Polymer, but I worry that's too big a transition from what we've been doing.

I still love, love, love development. People cringe at how fast moving it is now but I don't mind at all because it has all gotten so easy! It took forever to build anything in the old days because we didn't have free access to wonderful tools, cheap on-the-fly servers, or videos to teach us everything in no time. That's all made it lots of fun to do side projects like paperquik.com or jscrate.com or regrettable.tk

I could quit my job tomorrow but there's no way I'd stop doing software for fun.

Collapse
 
elmuerte profile image
Michiel Hendriks

Are we making the world a better place? (Are we heading in the right direction?)

Collapse
 
johnmunsch profile image
John Munsch

Wow.

If I take that literally, I'm not sure we are making the world a better place. I can point to lots of examples of the Internet and the web both benefiting us as a species (I personally met my wife online 20 years ago, so I'm pretty happy with that :)) as well as hurting us (neo-Nazi's enabled to create echo chambers where they think they're just fine).

However, if you meant, are we making programming better? Oh lord yes. Fewer people can build more in less time and share it with a huge part of the world's population.

Collapse
 
elmuerte profile image
Michiel Hendriks

I initially meant literally. We set out to have computers and (and software) make things easier for us. In a lot of cases we have made things easier. But as you may every well be aware, with every problem we solve we introduce different kind of problems. Like your example of the Internet. We made it easier for all kinds of people to communicate with each other about anything. But this also exposed everybody to undesirable activity from certain groups. The internet allowed everybody to start their community, but it also allowed large corporation to create powerful control structures. ... But at the bottom line, are we going in the plus, minus, or sort of standing still.

But on the software making angle there is also an interesting point. A bunch of years ago I read Fred Brooks' book "The Mythical Man-Month". (Actually, it was the 20th anniversary release from 1995). In it are observations of pre-1975 software development which I still see around, often unchanged. So in your 30 professional years tools have become more powerful, versatile, and easier to use. But are we becoming better at creating solutions for problems? Are we becoming better for the people involved in creating these solutions? Are Edward Yourdon's observations in "Death march" more and more a thing of the past.

From your perspective of course. You've probably seen and fought your battles.

Thread Thread
 
johnmunsch profile image
John Munsch

That's a super difficult question to answer. One I'm tempted to say would fall into the domain of a professional moralist.

I feel like all I can say is that we've made it "different". I've seen pre-computer to post-computer, pre-Internet to post-Internet, and even pre-WWW to post-WWW (too many people confuse those, but lots of us used the Internet long before the World Wide Web showed up). I prefer the latter.

I love that I can make something and share it with everybody. The fact that somebody else can try to be an asshole to everybody simultaneously doesn't ruin it for me. I'm enough of an optimist to feel like the relationships I've made and the communities I've been lucky enough to be part of haven't been outweighed by the bad stuff that has come along for the ride.

Now, I'm not stupid, I know that I'm really lucky. I'm white and male and well educated. I don't come from a family with a lot of money, but I've had more advantages than I can count. So the fact that my experience has largely been one way doesn't mean that others haven't had exactly the opposite. But I guess I hope (perhaps naively) that most people are getting the better experience rather than the worse.

Collapse
 
ben profile image
Ben Halpern

How long have you been doing front-end development in particular? How do you think that job title has evolved over time?

Collapse
 
johnmunsch profile image
John Munsch

I've only been doing front-end for the last seven years. When I first started there was "Web 2.0" and people were definitely starting to think in terms of building apps which didn't do a constant request-response cycle back and forth to the server for every minor thing a user might do. But the software didn't support you very well for building that. jQuery plus various libraries was no substitute for what modern frameworks do.

So when my boss at the time asked me to figure out how to build a replacement for a piece of software the customers used that had a front-end completely separate from the back-end (which would be used only as an API) it seemed formidable. I didn't know JavaScript well, had not used jQuery, and had really only used Java the previous 10 years. I briefly considered suggesting Google Web Toolkit but it just seemed like it would end up creating as many problems as it solved. We ended up using Backbone.js, jQuery, Underscore.js, Handlebars, and a sprinkling of other libraries to do various things. There just weren't any off-the-shelf solutions that worked well for building this kind of thing. It worked, but the final results tended to be something where you could tell who had written every page of the app and the skill level of every one of them.

By 2013 however, I changed jobs and was asked to pick technologies and I was able to have a bake-off between AngularJS and Ember.js to see which one would work well. So choices were starting to appear and they definitely made things like memory management as you changed routes much easier.

And now :) Well, there are a few choices out there. However, I strongly believe the browser has stepped up to become what should be the focus for most developers. Web Components are an excellent technology in that they're easy to use and completely agnostic in implementation. When paired with some middleware like Polymer or their new LitElement, you can adjust the actual development to your personal taste (including making use of stuff like JSX if that was your thing).

Collapse
 
ben profile image
Ben Halpern

I was able to have a bake-off between AngularJS

What's your approach to such a bake-off? What steps do you take and what do you look for?

Thread Thread
 
johnmunsch profile image
John Munsch

The approach, as such, was to find a small project and build it using both libraries. You can actually see the AngularJS version of that build over here (it proved to be a very popular bit of open source for me): github.com/JohnMunsch/airquotes

Note: Keep in mind, most of that code is from 2013 :)

For me it was all about how easy it was to learn enough to build a specific thing (the project was from a third party so I didn't get to pick it; that was actually a plus because I couldn't tailor the choice to what was easy or worked well with a particular framework). I also wanted to see how comfortable I was with the final finished product.

Did it do what I wanted without a lot of compromises and could I read the final finished product and understand it? Furthermore, could I explain what I did to others?

Collapse
 
monknomo profile image
Gunnar Gissel

How have you stayed on the individual contributor path without getting pulled into principally management duties? Something I've noticed is as programmers get more senior, they get a team, then they manage the team, and the stakeholders, and the project and before they know it, they are a manager and not really a coder.

Also, what do you find works for staying fresh and up to date?

Collapse
 
johnmunsch profile image
John Munsch

I have managed to avoid the management duties thus far. I do have to devote more of my time to knowing what my team is doing now than I used to and making sure that they all have a stream of work to do. But that has impacted me only a limited amount (perhaps a day a week has been traded off for lead duties).

I've found over the years that there is no substitute for building things to stay current. I simply cannot learn from videos or reading without actually having a real project to try out the things. The reason I put the emphasis on the "real" there is that I feel like having a project that actually has to do something and which people could use forces you to solve problems that you might get stuck on and abandon if there was no reason to power through them to get to a finish line.

For example, my current project is over here: madgameslab.com/

If you click through the various lists aren't going to make a lot of sense to you if you're not really into board games, but it's effectively a spot for people to see what others are selling/buying before going to a convention together. I'm currently working on improvements to it that will add user accounts so that I can then ask for donations to my favorite charity (Extra Life - extra-life.org/index.cfm?fuseactio...) so donators will get extra features on the site. Doing stuff like that gives me the incentive to finish. Don't finish; non-profit children's hospitals don't get money. That's enough incentive :)

But when I do one of those, I'm often using tech that I'm trying to learn. In this case, more Polymer, JS modules (and some webpack), and Mongoose.

Collapse
 
johnmunsch profile image
John Munsch

I just realized that I had done a poor job of answering your first question, "How have you stayed on the individual contributor path without getting pulled into principally management duties?"

Ultimately it came down to turning down several opportunities to change jobs. Twice it has come up in the last five years that I could move in that direction. One time I was sure I didn't want it unless I had no choice, I was given the choice and turned it down. The other I briefly thought I wanted a different position but when I really sat and looked at it dispassionately I realized that someone else I knew had a very similar job and I never ever envied him. I knew he got a better payout when it came bonus time, but other than that his job just seemed like a drag to me. So I dropped the attempt to change.

Fortunately, they know I'm interested in advancing and the possibility of another move up within the tech track has been floated recently so I don't appear to be stuck at the very top rung on the tech side just yet. At a lot of places, they just don't bother trying to nurture the technical side and offer a corresponding set of advancements for that side. So you can end up unable to move up after a certain point. I don't have that here, so that makes my choice a reasonable one.

Collapse
 
monknomo profile image
Gunnar Gissel

Thank you, I appreciate the clarification. Very helpful!

Collapse
 
andy profile image
Andy Zhao (he/him)

Would you say your career path is still pretty consistent with new developers of today? From what I hear, most people move upward to management and develop less often, while others stay in development strictly as opposed to doing a both.

Collapse
 
johnmunsch profile image
John Munsch

It's difficult for me to say how my career path compares to someone much younger. I advanced quickly in my early years at Tandy, I seem to be advancing quickly in this current job (a couple of promotions in the last few years, maybe another sometime soon if I'm lucky). So I think it's consistent with my past experience but I never had the Silicon Valley startup experience so I don't know exactly what that's like.

Most of those who I know moved toward management don't develop "less often", they ultimately have to give it up completely. There's certainly no way to stay up to date on the front-end unless you do development almost every day. Perhaps it would take longer to get behind if you were working in a more stable world like a given SQL solution (say Oracle) or something like Java. But even then, it would become difficult after a while. There's just a muscle memory to doing this stuff every day.

My management duties are strictly related to the development and work side of thing. Do I know what everybody is doing? If anybody is stuck, can I unstick them? Does everybody have tasks to do in their queue as well as some optional stuff that advances us on a higher level (for example our recent move from Gulp to webpack or our installation of Sentry into an app; that stuff can be a fun change of pace from bugs or even new development)?

But personnel issues like somebody showing up late to work or leaving early too much are things I don't have to deal with. I don't really have any of those at the moment, but if I did, they would be someone else's problems. I deal only with the work side of things. So when it comes to figuring out how to herd all the cats to a particular technology, that's on me :)

Collapse
 
dallgoot profile image
dallgoot

OMG Tandy :D my first computer with its 2 floppydrive and no hdd.
Never thought i'd read this name again :)

Collapse
 
juankortiz profile image
juankOrtiz

Hi John! I have a few questions for you, if you don't mind:
1) How do you kept motivated as a developer troughout the years?
2) What tools do you use for development?
3) Wich current trend in development would be consider "black magic" when you started your carreer?
4) Have you achieved your life goals to this day?

Collapse
 
johnmunsch profile image
John Munsch • Edited

1) Motivation is generally not hard for me. Only if I'm working for someone who is really unpleasant to employees am I demotivated (and I've definitely been there). The work itself is usually interesting enough that I don't find it hard to do that all day every day. Only a really unpleasant bug or ops task which drags on can get tedious.

2) I use WebStorm and VS Code as my editors. I cannot explain why I keep flipping back and forth but I do for some reason. Lately it has been WebStorm at work and VS Code at home and likewise I've been using Chrome at work and Firefox at home. Maybe it's my brain seeking more variety. Beyond that it's the usual stable of JavaScript related tools: Node.js, NPM, Gulp (until very recently, now that all major browsers support JS modules I'm beginning to use those and webpack too). I built JSCrate.com with Hugo but I'm on the fence about it, I'm tempted to try out Gatsby instead. I use Ansible to do provisioning of really cheap commodity machines at places like Digital Ocean (think $5/mo) and deployment of my hobby apps.

3) Interesting. When I started your main tool was your compiler (we used Microsoft C) an editor and some manuals (way fewer of those than you think). That was basically it. I think we could probably envision most everything you see today except for the explosion and speed of change. However, that's not really "black magic", so the only thing that I've seen that really rises to that level is what we're seeing in AI with tools like Tensorflow. AI for most of my career has not produced anything tangible that actually worked in any useful way. To have off-the-shelf packages that can say, "That's an orange. That's a dog. That's John." That's the first thing that might be a real surprise to 1987 me.

4) Hell no :) But there's still time.

Collapse
 
juankortiz profile image
juankOrtiz

Thanks a lot for taking the time to answer!

Collapse
 
superkarolis profile image
Karolis Ramanauskas

Having been in the industry for so long and now working in web development, I was wondering what are your thoughts about where the web is going to be in 5, 10, 20 years? Will front-end developers, and web developers, in general, still stay in such a high demand? I feel like as the tools get better, it becomes more and more feasible to create websites (simple ones, for now, perhaps complex in the future) with almost no programming experience. I know it's impossible to answer but it would be interesting to hear your take on that.

Collapse
 
johnmunsch profile image
John Munsch

I'm not sure where I stand on the statement about programming experience. I still think you need quite a bit and will for quite a while in the future. However, with that said, I'm just astonished how much a single person can accomplish in a given unit of time today vs 5, 10, 20 years ago. I am so much more productive and I think others are as well. A hammer is a force multiplier that helps you drive a single nail, but we've moved on to nail-guns and concrete nailers that shoot cartridges). You can go from an idea to a crude vision of a small site in a couple of days if you can devote yourself to it or a couple of weeks if all you have is an hour or two each evening.

What I think you'll see is more and more specialization. At the beginning of my career you were expected to be much more of what we call "full stack" than what is expected today. I'm still full stack on my hobby projects but in my day to day work I focus hard on web development. I hear sometimes about experts who know all about how to integrate Google Maps or Salesforce into a project. AWS is also clearly becoming something of a specialization. So why would that kind of specialization not become part of the front-end as well? Some developers may focus on the communications between the front and back-ends, charting and visualization building, the handling of data on the front-end, the building of components, or just the layout and appearance of the page.

Collapse
 
theminshew profile image
Michael Minshew

If your still game to answer another question, What was your first language? :)

Collapse
 
johnmunsch profile image
John Munsch

Not surprisingly for when I grew up, BASIC. When you were an amateur programmer in that day and age you really didn't have access to much except for that.

But then in school we were first exposed C if I recall correctly. I actually can't remember anymore. I went to Rice and we did at least some of: C, Modula-2, Prolog, Lisp, Motorola 68000 Assembly, and probably some others I can no longer remember.

Collapse
 
theminshew profile image
Michael Minshew

Nice, I've been messing around with Lisp. Not sure i'm confident enough in myself to get into basic. Pretty awesome and thanks for the answer!

Collapse
 
eljayadobe profile image
Eljay-Adobe

Curious as to your answers or thoughts for The Really Big Questions.

  1. Which editor: vi or emacs?
  2. Indentation: spaces or tabs?
  3. Which operating system: Unix or Windows?

After settling those nigh impossible questions, then we can move on to the easy ones like ending world hunger, lasting peace in the Middle-East, and sustainable nuclear fusion energy.

Collapse
 
johnmunsch profile image
John Munsch • Edited

1: I'm an Emacs guy. That's what I learned in 1983 and it's the only one I still kind of remember. However, day to day I'm in Webstorm or VS Code, not Emacs :) I did learn Vi's two modes: beeping and not beeping though.

2: Spaces. Interesting that I don't remember anybody warring about this one back in the 80's or 90's.

3: Unix. Does Windows qualify as an operating system? I'm showing my prejudices there. I'm a Mac user so I typically only interact by choice with BSD Unix on the Mac or Linux on one of my Ubuntu servers.

Still have my fingers crossed to see nuclear fusion in my lifetime. If so, that would be a game changer.

Collapse
 
eljayadobe profile image
Eljay-Adobe

Since you use a Mac, have you worked with Swift?

I started programming in 1976, with the first program I worked on (as a contributor) was Oregon Trail on an HP minicomputer used by TIES. I used to use emacs, switched to vi many years ago ("it's too late for me; save yourself!"). I tend to use tabs, but I don't care; I care about consistency. I'm a Unix guy; and my machine at home is a Mac. I live in C++ day-in-and-day-out and I envy you for escaping from C++'s clutches.

Thread Thread
 
johnmunsch profile image
John Munsch

I did a small amount of Objective-C a few years ago but never tried Swift.

Collapse
 
ky1e_s profile image
Kyle Stephens

Would you say that ageism is an issue in the industry and, if so, have you felt the impact of it at all in your career?

Collapse
 
johnmunsch profile image
John Munsch

It definitely seems to be an issue and I've felt it at the point of hiring. When I was looking for a job in 2011 I interviewed at one company and had, I thought, a series of very good in person interviews with people at a location in the DFW area. They seemed very pleased with my experience and with some of the specific technologies I had used which they needed help with.

However, I was told first that I would likely get an offer within the next couple of days and then suddenly that I needed to do an additional phone interview with someone in CA. I did that interview and I was killing every question the guy had, but I said something about floppies or who knows what in one of my answers and the interviewer came back with, "How OLD are you?!?" After that he wrapped it up in two minutes and I was told by someone who worked inside the company that they were overruled on hiring me.

It was shocking and pretty clear cut ageism. However, did I want to spend my time trying to put together a lawsuit against a startup that might not even be in existence by the time it came to trial or focus on finding a good job where I wasn't working for an asshole. Some would say I should have tried the former just to prevent somebody else from getting the same treatment. I chose to ignore it and move on. I found a good job a very short time thereafter and it's actually the one that shifted me from Java to JavaScript and back-end to front-end.

Collapse
 
jfrankcarr profile image
Frank Carr

Very similar to what I encountered recently interviewing with the local "cool" tech start-ups here in the Atlanta metro area. Great phone interviews and coding tests but when they saw the gray hair and wrinkles in person I was shown the door quickly.

Collapse
 
emehrawn profile image
🦄

how to make money online as a python Developer?

Collapse
 
johnmunsch profile image
John Munsch

That's a tough one. I would have said Python had it's chance and blew it until it's recent resurgence as the language of choice for AI work.

I really don't think it's a good bet for building websites. But if you love it, embrace TensorFlow man.

Collapse
 
jeroen1205 profile image
Jeroen Jacobs

Did you ever use DOS extenders, and if so, which was your favorite one?

Collapse
 
johnmunsch profile image
John Munsch

Ha! Old school!

We used to use QEMM and I think the last version we used much was QEMM 386 if I remember correctly. I think that's the one where they added switching between multiple apps and we all wanted that.

However, it was unstable and ran up against Tandy/Radio Shack (where I worked at the time) getting early releases of a new version of Windows. Version 3.0 took a product most of us hardly cared about and made it not suck. We had all switched pretty fast, even before it shipped as a product.

Collapse
 
jfrankcarr profile image
Frank Carr

I've been at it about the same amount of time although I'm a little bit older, having switched careers in the 80's. I've certainly followed a different path, mainly winding my way through the corporate IT world for the past 25 years or so.

One of the interesting questions you've been asked is about why you didn't move into management. My answer is that I would have stayed on the career path I was on in the early 80's if I had wanted to do that. I've had some opportunities to move in a management direction but I turned them down.

Collapse
 
davidaddario profile image
David Addario

Have you been able to sustain a long term relationship?

Collapse
 
johnmunsch profile image
John Munsch

My first marriage was short lived (and the reasons it did not last were unrelated to work). But my second marriage will be 18 years this year and looks good to last.

Collapse
 
dheeraj326 profile image
Dheeraj.P.B

John, just one question 🙂
Is there any one thing that you have felt makes a difference about software development as a profession compared to others? If yes, then what is it?

Collapse
 
johnmunsch profile image
John Munsch

That's a tough one. It's creation oriented but so are architect and builder. It's nice though that you get to do both the design and construction in one job.

But if you're looking for something different about it I guess it's that it has become so pervasive across so many industries and hobbies, especially since the coming of the Internet. Thus, if you have something else you're really interested in that isn't programming (for example, medicine, special effects for film, industrial production, astronomy, the stock market, etc.), it's possible to find jobs which will combine your love of software and that other world as well.

But maybe if I were a lawyer I would think the same thing. Would I go home at the end of the day and do "law"? Would it be both my vocation and avocation as software development is? Hmm. Interesting question you've raised.

Collapse
 
dheeraj326 profile image
Dheeraj.P.B

I am completing just 2.5 years in the industry as of now. Actually I have felt that the work culture of software development, most importantly the enthusiasm to work together on creating something, mixing work and play etc...one cannot find such things in some other regular job like that of a bank employee or even a civil engineer.
I was just wondering whether you have observed these things and maybe you might have noticed some reason for software development to have this kind of work culture. 🙂

Thread Thread
 
johnmunsch profile image
John Munsch

I hate to break it to you man, the answer to this one isn't that the job is really the best ever. It's that you, like me, are very suited to this particular job :)

It feels great because it's the right one for you. There are others you could put into the same thing and they would feel confused, bored, overwhelmed, or a mix of other negative things.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.