JavaScript Jabber

JavaScript Jabber is a weekly discussion about JavaScript, front-end development, community, careers, and frameworks.


Get episodes automatically


133 JSJ Remote Work with Mike Hostetler

02:18 – Mike Introduction

02:41 – Remote Work

  • Virtual Companies

03:05 – Communication

03:59 – Switching to Non-Remote

06:33 – Setting Expectations

10:44 – Creating Culture

12:54 – Establishing/Organizing Teams

17:25 – Organizing Teams Around Projects

21:53 – Pairing

23:32 – Struggles

  • Hiring for Working Remotely

27:18 – Handing Over appendTo

28:49 – Starting Over/Doing Things Differently

34:02 – Open salaries

39:22 – Hiring Process and Training

41:59 – Finding Clients

  • Referrals
  • Outbound Marketing

This episode is sponsored by

comments powered by Disqus


AJ:  So, this bunny hopped into my front yard and I caught it. And I kept it. And one thing led to another and now I’m getting a second bunny. And I’m building a hutch.

DAVE:  They multiply quickly, don’t they?

[This episode is sponsored by Frontend Masters. They have a terrific lineup of live courses you can attend either online or in person. They also have a terrific backlog of courses you can watch including JavaScript the Good Parts, Build Web Applications with Node.js, AngularJS In-Depth, and Advanced JavaScript. You can go check them out at]

[This episode is sponsored by Don’t you wish you could simply deploy your code every time your tests pass? Wouldn’t it be nice if it were tied into a nice continuous integration system? That’s Codeship. They run your code. If all your tests pass, they deploy your code automatically. For fuss-free continuous delivery, check them out at, continuous delivery made simple.]

[This episode is sponsored by Every week on Hired, they run an auction where over a thousand tech companies in San Francisco, New York, and L.A. bid on JavaScript developers, providing them with salary and equity upfront. The average JavaScript developer gets an average of 5 to 15 introductory offers and an average salary offer of $130,000 a year. Users can either accept an offer and go right into interviewing with the company or deny them without any continuing obligations. It’s totally free for users. And when you’re hired, they also give you a $2,000 signing bonus as a thank you for using them. But if you use the JavaScript Jabber link, you’ll get a $4,000 bonus instead. Finally, if you’re not looking for a job and know someone who is, you can refer them to Hired and get a $1,337 bonus if they accept a job. Go sign up at]

[This episode is sponsored by Component One, makers of Wijmo. If you need stunning UI elements or awesome graphs and charts, then go to and check them out.]

CHUCK:  Hey everybody and welcome to episode 133 of the JavaScript Jabber Show. This week on our panel, we have David Smith.

DAVE:  Hello, world.

CHUCK:  Jamison Dance.

JAMISON:  Hi friends.

CHUCK:  AJ O’Neal.

AJ:  Yo, yo, yo, coming at you live from the very edge of Provo, Utah.

CHUCK:  I’m Charles Max Wood from DevChat.TV. And this week we have a special guest and that’s Mike Hostetler.

MIKE:  Hi everybody.

CHUCK:  Do you want to introduce yourself really quickly?

MIKE:  Certainly. My name is Mike Hostetler. I reside in the beautiful state of Illinois, just outside of Chicago. You may know me from appendTo, a consulting firm that I have stood at the helm of for the last five years. Prior to that, was involved in the jQuery Project and various other open source projects since. One of the unique things about appendTo is that we were a completely virtual company, which is what we’ll be talking about today. We recently shut the doors on that and now we’re looking for other projects. But we’ll be talking about what we did, how we built appendTo, all the tools that we used, and just chatting about how this remote thing came together.

CHUCK:  Very cool. This is something I’ve actually thought about doing. So, there’s a lot more to the remote stuff than just, how do you avoid some of the communication problems that come with not being in the same room?

MIKE:  Yeah. It can be a challenge. And I’ve spent a lot of time studying the issue, working and talking with various different organizations who’ve attempted it, and some it worked well for. Some, it just, it doesn’t. [Chuckles] So, I heard a lot of stories. Like I said, I studied the issue. Organizational science as the academic side of it is called, really is not a science. For instance, if you google what’s the definition of a manager, you’ll come up with 100,000 different responses. So you know, a lot of business people, it comes down to people working together. And how do you create an environment where that is successful? It’s a very tricky balance at times.

JAMISON:  Some of those problems are common no matter whether you are working remote or not

MIKE:  Absolutely.

JAMISON:  I feel like working remote has been cool for a decade and now there’s starting to be some swinging of the pendulum back towards the other direction. With reddit, switched all their employees to local. Yahoo did, too. There are a couple of other companies that are doing it. What do you think the reason for that is?

MIKE:  So, I’m not as familiar with reddit’s case, but the Yahoo case, that made a lot of headlines when, and Marissa Mayer’s coming in and she was taking over this stalwart of the tech industry. And what she said in articles was I think really enlightening in that they were trying to create a culture that brought everybody back and connected them with the mothership, so to speak, that office, depending on where it was, and in doing so, reinvigorate Yahoo culture.

Interesting story. One of the guys, JavaScript guys, named Bill Edney who was a former Yahooligan, and he actually came and applied and started working with us at appendTo because he couldn’t move. And he was in, he was a remote employee for them and couldn’t move. So, we talked about it extensively. And I think as a CEO Marissa was responsible for shaking Yahoo up. And she definitely accomplished that. That’s what the company needed. That’s what she was brought in to do. And I have nothing but positive things to say about her. She just had to rein things in a bit. I know for a fact that in a couple of very special cases that were required to be authorized by Marissa herself, a couple of people stayed remote. But it was very rare and they had to come in a lot. She was trying to switch train tracks that the company was on. And that was what I saw was behind it.

If you start on the right road, you set the culture up the right way and you weren’t in a situation like that where you’re effectively trying to turn around this giant ship, I think it can work exceedingly well, as we’ve seen the trend going this direction. But it’s, you have to, some of that comes down to just setting expectations and understanding what you’re trying to accomplish with your business culture.

JAMISON:  Can you elaborate on that a little more? What are the expectations you have to set?

MIKE:  In our environment, we wanted to create a place at the end of the day in appendTo when we started it, again five plus years ago now. We were bringing together a couple of freelancers who, we just wanted to have each other’s back, right? That was the idea. We didn’t live near each other. We couldn’t move near each other. And we had the experience of working on the jQuery project where everybody was remote anyways. And there was a culture there that we borrowed and brought in with us.

Now, as time went on, as things evolve, we codified that culture into, you’re working roughly 40hours a week. We all had general office times. We didn’t do a lot of the ‘you can work from midnight to 4am’ because you’re most productive then. You got to be available. It’s got to be a normal pace. We set expectations that we need to know where you are. We had a system where when you signed in to work, you announced to everybody in a chatroom, ‘I’m around. I’m here to work.’ That proved to be really effective, because even in an office environment (and this happened to me once, I’ll tell an interesting story), but you develop relationships with people and you care about what’s happening. So, if somebody, they don’t pop on to chat and they were supposed to be here an hour ago, it’s a very human reaction to say, “Well, where are they? This is starting to become a little worrisome.”

Interesting story, one of the first jobs I had, a guy on our team, we were all in an office in cubicles, doesn’t show up one morning. 10am, 11am, nobody’s heard from him. We call his girlfriend. “He left for work at 7:45. He’s not there yet?” “No, he’s not there yet.” Amazing manager, she was on the verge of calling the hospitals. Pull out the police scanner. Send out the brute squad. This is like, “Where is this person?” Well, lo and behold, he forgot to renew his dog’s license. In Denver County, when you don’t renew your dog’s license within an appropriate amount of time, a warrant is put out for your arrest. And he got taken in. [Chuckles]

CHUCK:  [Chuckles] Oh, man.

MIKE:  2pm, he’s finally booked into the Denver County Jail and calls his girlfriend. And it all gets figured out. But nobody got anything done that day. [Laughs]

DAVE:  Hey Mac, what are you in for?

MIKE:  Exactly.

CHUCK:  [Laughs]

DAVE:  My golden retriever is on the lamb. Didn’t renew her papers.


MIKE:  So, we look then to remote environment from what does it mean to be a human working with somebody? And then we design the environment for that, rather than, “Let’s just take advantage of this no-office thing.”

CHUCK:  I kind of like having the no-office thing, I have to say.

MIKE:  It is nice. No central office.

CHUCK:  Yeah.

MIKE:  No central office. So, it proved to be very successful. We had about 35 people doing that, and across many different time zones. We had people in Europe at different times who would come on and work as contractors. And employees loved it. They even said, “We feel closer to our coworkers in this remote environment than we do when we were in an office.” And I think, I always took that to say, it meant a lot. They were reflecting on the culture that we had built. And that culture was: we’re a bunch of normal human beings doing what we loved. We were passionate about it. We were excited to come to work every day. It wasn’t, Monday mornings were cool and awesome. And we were just all doing this together. It was a fun journey that we were on together. And in looking at it that way, it brought us all together. And we were able to just be much more productive while we were at it.

CHUCK:  So, how do you create that? How do you get to the point where everybody’s happy to be there, where things are clicking along, where you’re having success?

MIKE:  So, when anybody asks me that, I say a couple of things. And the first is that one, you have to have your basic business foundation. So, I’m making some assumptions that you’re selling something that people want to buy. So, once you’ve got that, that’s step one. What culture do you want to build on top of it? And the line I always pull out is, to build a good remote organization, you need to have [unintelligible] the structure of a great in-person organization. You have to go further in everything.

So, from the back office, and let’s say just company infrastructure, our rule of thumb was you have to be able to put a bullet through your laptop and be up and running in two hours or less, accounting for up to a 90 minute roundtrip from the Apple store, which was statistically at the time not that uncommon. And so, we built all of the infrastructure for the entire company in a way that you could just pull up your phone or pull up a laptop or pull up a tablet, and log in to work. That was the first key. So, we did this back when we started. There weren’t as many SAS products as there are today to make some of that happen, things like accounting systems.

JAMISON:  Can you give a timeline, when this was happening?

MIKE:  2009 was when we started. We were using Skype, but video chat was rough. Our accounting system, expense systems, they weren’t the… Expensify wasn’t as good back then. We ended up having to host actual machines and requisition virtual machines and then RDP into them for QuickBooks, stuff like that where another firm was hosting, that kind of thing. But it really worked and it made it very easy to manage our infrastructure. And then on top of that, we really heavily emphasized teams and how the teams came together. We would piece the best team together for the job.

So, we didn’t have a real formal structure ‘til 2013. We just organically tackled projects as they came in and everybody just did their job to the best of their ability. And it worked really well. We didn’t have a lot of hierarchy. People didn’t have a team lead or anything like that. We later went to that environment, but that was more for career development. So, you have somebody that you could go to and say, “This is where I want to go in my career. Can you help me get there?” as the organization expanded. But the way we pulled teams together was still best team for the job. And so, that kept people really, really happy. You’re always doing what you like to do.

And then it was just this attitude of taking care of people. Employees are our biggest asset, and not just saying that. We’ve all worked in organizations that put a lot of lip service to, using giant air quotes, “Employees are our biggest asset,” but very few actually live it out. And we…

CHUCK:  Well, by asset they mean resource, and by resource they mean…

MIKE:  [Chuckles]

CHUCK:  We’re going to extract every bit of anything we can get out of them, out of them.

MIKE:  Exactly.

CHUCK:  So yeah, they’re an asset to the business, for as long as they don’t burn out.

MIKE:  To make money with. And…

DAVE:  You are the most important cog in our giant machine.

MIKE:  Exactly, exactly. So, yeah we lived that out. And it ended up working really well. Did some great projects and just had a lot of cool experiences. Got to work with a lot of great brands, a lot of great companies, and developed a lot of great relationships along the way.

DAVE:  So, I’m assuming this was software development?

MIKE:  Correct. We were doing JavaScript big frontend projects, responsive web projects, mobile apps, hybrid mobile apps. And then this year we were just beginning to get into full stack JavaScript, full stack like Node and building out the frontend in Angular or something along that line.

DAVE:  So, how big were your individual teams? I assume you had your teams organized by project to some degree. How many people?

MIKE:  We had a hierarchy. And teams we try to keep below six, including the manager, which was really key because the manager… team size of six isn’t very big but the manager has to field the requests of the team that he’s working with and also that next level up team that he’s on. So, we really try to keep it below six. But again, that was only for career development and giving you a home base, like your homeroom in high school. We looked at it that way. And then as projects came in, we would actually pick people from different teams and organize a project that way. And that worked out very well, very, very well.

DAVE:  So, did each person belong to two teams? [Unintelligible]

MIKE:  At different times, yeah. So, there was one, like in that homeroom team where they plugged in they had a team lead that they reported to for things like PTO and just if they had any HR questions. And then as projects came and went, we would assign them to a different team. And this was, there was actually one other side-effect. It’s that depending on the level of the project, two things happened. One is you have really your architect level guys right, who don’t want to go the management route. Well, they didn’t have to. And we could have them leading projects because they like to lead a project but they don’t really want to manage people. And we would pick and choose and pull them together organically.

And then when the project was over, the team would disband. And then they would join other people and go onto other projects. So, this seeded people across an organization where everybody got to know each other. And then because we didn’t have dedicated tech leads, a tech lead led a project, it meant that we could bring some of our more junior guys to lead smaller projects and give them that leadership experience. And if it was a big project, we could assign the right person to the job. And we didn’t box ourselves in when it came to getting the right kind of work done for our clients.

CHUCK:  So, how would you organize around a project?

MIKE:  Every project would have two main people. And that was called the tech lead and the engagement manager. The engagement manager is a non-technical role, very similar to an account manager and a project manager in one. They were responsible for three things: budget, deadlines, and communication. So, developers weren’t solving client problems or developers weren’t pruning the backlog. They weren’t worried about, “Are we going over budget?” things like that. There’s actually an incredible amount of work there in just managing that across projects. And then the tech lead, the tech lead was the single person responsible for the technical delivery.

So again, one project person A may be tech lead and person B may be working for them. If they were on two different projects, which the max we put people on is two, it could be swapped, right? Person B is leading and person A just is actually getting in and helping in doing the work. And this put two people in front of the client from us every single project.

And this goes, there’s a story that I picked this up from called, well it was actually more of an experiment they did on monkeys and stress. So, they took a monkey, a chimpanzee, back before this was illegal, put him into a cage, and put sirens and sprayed water on them and stuff, and just totally freaked this monkey out, like really bad. Hooked him up to a brain monitor and of course, he’s just blowing the chart. This monkey is about to crawl into a corner and start rocking back and forth. So they said, “Okay, that’s our baseline. How can we make this monkey not be so stressed out?” So, first they give him a bunch of drugs. They give him, try all these different things. Still, sirens, water, freaking the monkey out, nothing is helping. Finally, they go and they find a different monkey, put them in the cage so there are two monkeys in the cage. And they freak both of them out and then measure their brain patterns. And it dropped by 50%.

So, the principle is, if you’re in a tough situation, who’s your monkey? Right? Who’s the monkey in the cage that you can commiserate with? And it draws down the stress level. So, we always put two people on every project [chuckles].

JAMISON:  I have seen similar things from personal experience. Not with monkeys, with people.

MIKE:  Yeah, yes.

DAVE:  So, when you put them on a project, how did you get fire hoses in the building so you could spray them?

CHUCK:  [Chuckles]

MIKE:  It was all remote. We would send drones with fire hoses.

CHUCK:  [Chuckles] Nice.

MIKE:  And so, yes.

CHUCK:  So, this is two people in addition to the tech lead and the project…

MIKE:  No, no. It was just the tech lead and the engagement manager.

CHUCK:  Okay.

MIKE:  So, there are always two people. Nobody’s fielding a project on their own.

CHUCK:  Right. So, they’re backing each other up, kind of thing.

MIKE:  Exactly, exactly. That was the idea.

CHUCK:  So then, were the teams responsible for keeping track of the backlog and everything else? Or did you provide specific tools and adopt a specific agile methodology or something for getting that work done?

MIKE:  A lot of our engagement managers were scrum master certified. We did not hold necessarily too tightly to a real strict scrum process. It was more, do what makes sense. I think everybody who’s worked enough in agile or scrum sees the value in that process. But it’s something you sort of mold to the situation. And so, we did that.

We used Pivotal Tracker for managing the backlog. We used GitHub for managing all of the code. Sometimes we would use GitHub Issues. Sometimes. We didn’t use anything to overlay a project management system on top of GitHub Issues. It just, it never makes sense. And then Basecamp for all communications. So, we had a written record, again facilitating that remote environment of everything that went through there. So, clients always want to jump on the phone. And when they jump on the phone, you need to have your engagement manager there so they can take notes and properly get them to Basecamp, for instance. Everything went through those three tools. And that’s really all we really needed.

CHUCK:  Now one other thing that I’m wondering about is, so I’m assuming that Basecamp served to provide some kind of documentation that people could work through and get up to speed on the project if they were new. But a lot of times it’s really handy to be able to sit down and pair with somebody or sit down and ask them all of my stupid questions. Did you have some kind of chat mechanism or was there some other way of figuratively leaning over to the person next to you and saying, “Hey, I don’t get this.”

MIKE:  We used Skype for several years and recently, just this year, switched over to Slack. Slack is awesome. Slack is really, really awesome if you’re doing any remote stuff. It was the tool we’ve been waiting for, and I’ve tried several. We tried HipChat. We tried IRC. We tried homegrown tools. Nothing really ever came close. And Slack nailed it. We used a lot of video chat. And again, focus on the human element, right? Seeing somebody face to face, seeing them in an environment where you can see their facial expressions, always a good thing. That was the backbone. That was the office, was the chat tool. And if you wanted to get away for a little bit, you’d close that down.

Again, we had this protocol that when you were working, you would mention, “I’m around,” or, “I’m stepping away for lunch,” or, “I’ll be back,” or, “Have a great day. Good night everybody.” And that log, not a tool thing, it was just a protocol we developed and put in there, solved the issue of, “Are people around?” And it worked out really well

CHUCK:  So, where there any things that you struggled with that you had to figure out as part of the process for going remote?

MIKE:  Good question. I think hiring proved to be very interesting and tricky. We were great at hiring for technical fit. It wasn’t until about halfway through the history of the company that we really started understanding that cultural fit was far more important than technical fit. And that proved to be a real big step for us. And screening for that first, we have, we developed an interview process where we would just make sure that people could successfully work remotely.

We had a couple of experiences early on where you pull people in and great technical fit, great relational fit. They just struggled with working remotely. I believe that you could teach somebody how to do it but we didn’t have any support in place to really take care of them and teach them how to do it. And without fail, 90 days in they would opt out and go find somewhere else to work, which was fine. But we didn’t really get our heads around that for a while. That was definitely one struggle.

CHUCK:  I’m just curious. How do you identify then that somebody’s going to be good at working remote?

MIKE:  [Sighs] Yeah, you know, I think it’s a little bit more common now. Of course people say, “Oh, it’s great. We can totally do that.” Some people are better inclined to it. Some people aren’t. Where we ended up, we had self-described people people, the people that thrived, the extroverts that thrive off being around others worked great in our environment. We would be very upfront and give them a lot of support to, “Okay, you need to go out to a couple of meetups,” or, “You need to go do this,” and, “How are you doing with that?”

And we had a process in place that made sure that they were taken care of and were satisfying that part of their life, which made them happier in our environment. I think it’s just something you have to observe over time, because even the people before that said, “Oh yeah, we can totally do that,” I’m not sure at this point, and their friends, they even knew how they would do. They were learning along the way.

And so, the way that we really ended up solving this is we made sure that people understood that working at appendTo is not only a journey of helping your clients but you learning more about yourself working in this environment where you just strip away so much of what we think it looks like to go to work. You’re able to focus more on what you’re doing but you have to almost retrain for, how are you satisfied with that work? Sometimes it’s obvious. Sometimes it’s not. How do you take the emotional energy out of that? And if you need to be around people, how do you solve some of these things?

And as we got better with it over time, I learned to recognize some of it. Great one, very easy: if you’re doing a lot of video chat with people and they don’t turn on their video readily, something’s up, always.

CHUCK:  [Chuckles]

MKE:  [Laughs] And either they won’t turn on their video or they’ll say, “Oh sorry, I didn’t get ready this morning.” That’s okay. But there’s again, something human about looking somebody in the eye and we always went back to that. If you can develop a culture that would work great in a physical environment and you had very healthy relationships with people at work and you talked about that, that translates pretty well to a remote environment.

JAMISON:  Did you already talk about the switch from remote to less remote stuff at appendTo?

MIKE:  We were always remote. We never had a central office and we never converted. We were always remote. We never went back on that. We were committed to it ‘til the end, ‘til we closed things down.

CHUCK:  Did you guys just move on to other things?

MIKE:  Yeah, essentially. Story was personally I was looking for other projects. I had to hatch the plan to move on earlier this year and hand the company off. That proved to be a little bit difficult and ended up, my heart wasn’t in it anymore myself. It turned into a job. And I think when that happens, you’re not being fair to people to continue just out of commitment. I always said I want people to live life fully alive and to chase their dreams and to do what they love. That was our culture. And if I had lost that as the leader, then I really couldn’t, it would be disingenuous to keep the company going. And it wouldn’t be fair to everybody. And so, we made the decision to wrap things up. And everybody’s moving on. And we’re going to have reunions and all sorts of fun stuff. But it’s been a good ride. And we went out in a good spot and really happy with it.

JAMISON:  So, would you do anything different if you were starting over?

MIKE:  I would do a lot of things different. [Laughs] That’s a really good question. So first, I have no regrets with appendTo.

JAMISON:  Well yeah, this isn’t so, I’m assuming you’re not going to badmouth anyone or anything.

MIKE:  No, no. There’s all good things to say.

JAMISON:  But obviously you know more now than you did.

MIKE:  What happened, just realistically, you make decisions that you have to stick to. And that’s not a bad thing at all, right? That’s again, integrity and sticking to things like that. So, we were slowly moving in the direction where we had fixed a couple of the foundational things that we never put in place simply because we were naïve when we started. There are a lot of books out there, but you learn some things the hard way just in terms of setting up the business properly, legally, little details you don’t think of. Starting something now, if I was to start a remote work agency now, I would do a couple of different things. 80% of what we did in appendTo I would almost carbon copy and set up all the same expectations.

One thing that I would definitely do, and we were moving in this direction, but I would, everybody’s salary will be public. That’s a tricky thing, especially in a remote environment. But I think transparency is really key. We didn’t do that in appendTo ever. And making that public is like, that’s the last bastion of private information usually. And keeping that public I think is, it’s an important and interesting step to take in making things more transparent.

I would also change up the management structure to be, we went down this road of having a management structure that was about people’s career development and taking care of them as an employee, which was fantastic. And then our actual operational structure was a little bit flatter. And I think that there’s a way to bring that back together. We were going down a really good road of keeping them separate. I think the logic behind it was sound. But bringing people together in a way that they’re able to be more empowered and take care of their own career path and have the ability and authority in an organization to be more active, I think there’s a lot to learn there.

I gave a keynote at devLink in August about different types of organizations through history. And there’s actually a pretty well defined academic structure that organizations fall into. So, what is the theory behind why GitHub and Valve can do what they can do versus Costco, Southwest Airlines, versus Walmart? You look at Walmart and Costco. Those are two very different types of organizations. They share some similarities. They’re in the same space. But people at Costco get paid a realistic wage. People at Costco get health insurance. People at Costco stick around. They have huge employee retention rates. Why is that? And I think that there are things you can pull from that. And then going a step further, I think the real cutting edge is what GitHub and Valve are doing. There is some good research behind that in our software world mainly…

JAMISON:  When you say what GitHub and Valve are doing, you mean the flat culture?

MIKE:  Flat culture.

JAMISON:  The ad-hoc organization?

MIKE:  Yeah, ad-hoc organizations. I call them organic organizations. They do some pretty interesting things. There’s not a lot of research out there. That’s the cutting edge. And where they truly balance taking care of the employee and yet appropriately distribute the risk of the organization. One of the things I think that we didn’t do as well as we could have was our organization, we set it up to be very risk-averse. So, we were trying to be, no, we had each other’s back, right? Well, there’s always a fall guy and it always goes up. [Chuckles]

CHUCK:  [Chuckles]

MIKE:  So, when stuff hits the fan, who you gonna call? CEO.  So, a lot of organizations do that and CEOs just grin and bear it. But that’s not healthy to an organization that is trying to present a work life balance to everybody. I just naturally did it. And I know others in leadership, they just took a lot on because that’s what we know. It doesn’t make it right. So again, I’m not sure how these problems are necessarily going to get solved. I think there are some examples out there. But this is the cutting edge of a different way to work.

If you guys don’t mind, I’m going to be, I’ll plug something quick. But I’m working up some of these ideas myself given my experience on my blog where I’m trying to tackle this issue of crafting the new workplace. And what could, if we just went crazy with what’s the coolest organization you could build, what would that look like? I’m going to be, with this transition, blogging a little bit more there. So, there’s my only plug. [Chuckles]

JAMISON:  So, I want to go back to something you just casually mentioned like it was no big deal, which is the open salaries thing.

MIKE:  Yup.

JAMISON:  The only example I know that does that is Buffer. And they take it to the extreme, right? They publish their CAP tables and everything. In my experience from just sharing this information with other developers in private, it’s always made one person sad, either me or the other person. [Chuckles] How would you share that information in a way that makes everyone feel valued?

MIKE:  Yup.

JAMISON:  Because the second you see everyone’s salary you immediately start comparing. And even if your salaries are the same as someone else, then you compare your output, and your effort, and I don’t know. How would you manage that in a way that doesn’t create crazy Lord of the Flies political things?

MIKE:  Yup. So…

CHUCK:  Because programmers are smart enough to look at two numbers and easily identify which one’s bigger, right?

MIKE:  Yes. [Chuckles] It’s math. So, a couple of things. One is you have to set that expectation from the beginning, right? It’s not a, “Your salary’s been determined. My salary’s been determined. We worked together for a little while Now let’s, I’ll show you mine if you show me yours and compare.” That creates issues. Very direct. I think Buffer gets away with it because it’s algorithmic, right? We programmers understand that. It’s an algorithm. You put some variables in and you get a rough estimate out.

We were going down this road and there’s a lot of data out there actually. You’d be surprised. Bureau of Labor Statistics has somewhat old but not too old, really good data on what’s a fair wage. And fair is the operative word here. You want to pay people fairly. And fair is a little bit subjective but not as much as you’d think. And as long as a group of people come together and agree on the definition of fair, from what I’ve seen, and I have to caveat this. I’ve studied this a little bit but never pulled the trigger myself in an organization that I’ve been a part of. As long as you come together on the definition of fair, it works.

The second piece, and this is the critical thing, is that you need to empower that person to change it, because salary is a scorecard whether it’s hidden or shown. Again, can’t get around that. So then, the question is, is it a fair scorecard? That fair scorecard is it pushes the responsibility of living up to that salary back on the person. And that’s what people react to. I would argue if somebody is reacting negatively to that, there’s more to dig into there behind it. Maybe they don’t feel adequate and you have a little bit of Impostor Syndrome going on. That’s a great opportunity to come in and say, “Well you know, you really are worth this. And you need to understand that too. You’re living up to the expectations if you’re doing a good job. And not only does your manager think so but all your peers think you’re paid fairly, too. And that’s a good thing.”

Or, they’re overpaid and there are ways to deal with that as well. And again, if you do it upfront then theoretically that wouldn’t happen. If they’re dropping, let’s say somebody’s paid a wage and then they’ve started out great but they fall off, well that’s another HR issue. It says, “Okay, what’s going on here? Do you have stuff going on at home?” It gives you an opportunity to speak into that, versus just the CEO knows and they’re responsible for flipping all those levers. It crowdsources some balance there.

Some people are really comfortable with that. And some people get completely freaked out by it. [Chuckles] And it’s not small-level freak out. It’s like, “Wow, I don’t even want to be around these people” freak out. But again, I think it reflects their personality a little bit. And that’s maybe not a bad thing, which I don’t know. As people do this more, I think we’ll get more data on that one. I think it’s fascinating.

For those of us who have freelanced extensively, you get familiar with the numbers. You get familiar with what’s fair. And you begin to better relate with those numbers. And they don’t define you. You don’t define them. You’re working in a market. And you’re buying, selling in that market on a daily basis. And it’s okay. Some people, if they’re not familiar with that, you can help get them there, because obviously it’s something you can learn. Or maybe they just, they want to go to a different environment. And that’s not necessarily a bad thing, either. So, it’s crazy stuff though, crazy stuff.

But I think it’s, at one end it’s basic economics and basic capitalism where any market you take in, you expose what’s in the shadows, even in a company with their salaries. It makes that market more efficient and everybody comes out better, right? That’s been proven. So, interesting stuff.

CHUCK:  That’s really interesting. So, I just want to go back to working remotely in teams for a second.

MIKE:  Yup.

CHUCK:  I’ve worked on some remote teams that worked really well together and I’ve worked on some teams that didn’t work really well together. It seemed like the people mattered a whole lot more than the tools and the process, though if the process wasn’t good enough then everything suffered anyway.

MIKE:  Yup.

CHUCK:  So, I’m really stuck. Do you just make sure you’re hiring the right people or is there a way around that to teach people how to work well in a team?

MIKE:  So, a little bit of both. In my experience, the way that knowledge and that ability to work remotely get translated from one team member to another is, there’s some book knowledge. Let’s say you take him to an all-day workshop or something like that. But it comes down to just working with other people and doing it. And for me, I liken it to in appendTo we had our craft of programming. And we had people hashing it about mastering that craft and always improving. And that was their attitude in life. And then we had this other craft of working remotely, working together with people that we don’t see physically on a day-to-day basis. And the best way to learn that craft, that remote working craft, is to jump into a group of people that do it really well. And just hang out with them online for a couple of months.

For those of us who worked in successful open source projects or great open source communities, whether it’s a forum or GitHub or back in the day it was Track and CVS, right? It works well because you have people there showing you what the norms and behaviors are in an environment like that. I’m not seeing anybody who, it’s not something where you can send them to a course for a week and then come back the perfect remote worker, which is why I think this topic has grown slower. And it’s eluded some people. I can’t say I’ve seen anybody really try to teach it, but maybe there’s something there. Who knows?

But yeah, if people haven’t had a good experience doing it, you can’t just throw them into a Slack chat and expect it to work. You have to walk them through the experience of successfully remote working and building those new cultural norms, because it’s very out of the box for us. We were trained to go into an office and that’s where work is versus the boundaries between our lives and work are really getting fuzzy. How do you deal with that? They didn’t teach that to me in college.

CHUCK:  One other question I have, and this relates more to the freelancing or running the business side. But how do you find clients? How did you go about doing that?

MIKE:  So, we had various things. But referrals were always, always, always our best source of finding clients. We had clients that stuck with us for five years, some of them. Just had an ongoing need and they never had enough to hire a fulltime person. And we just developed a great relationship. We did a lot of high profile projects and would bring in clients through that. And then we gave all of our employees, developers, the ability to spend some open source time. And that brought in clients. We never were able to really track that very consistently. It’s a very hard thing to track.

CHUCK:  Mmhmm.

MIKE:  [Inaudible] marketing background. But I know it helped. Reputation wise, it was just really fantastic. And always had a solid queue that came in from that. This summer we experimented with some more outbound stuff. And it’s kind of funny. The success that we had there were in out reaching, in reaching out for different clients, was more, “Oh hey, we’ve already heard of you guys. Yeah, we have a project we need help with.” [Laughs] So, it was very organic.

CHUCK:  Cool. Alright, should we do some picks?

DAVE:  Sounds good.

CHUCK:  Dave Smith, you want to start us off with picks?

DAVE:  You betcha. I bring you two picks today. The first one is a library, a JavaScript library that came from Facebook. I don’t think it’s terribly new. But it’s new to me. And it’s called Immutable.js. The idea behind this library is that it’s a set of different data structures that you can use in your application instead of the built-in JavaScript data structures like Object and Array. They have a bunch of different ones like Map and so on. But the key is they are not mutate-able. So, you construct them once and they will never change. So, using this forces your application into a new state of mind, which is kind of cool. We’re going to start using them at work here I think, to start experimenting with them in our application.

My second pick is a sort of new product from Google called Google Keep. And you may have already heard of it, but it is a handy way to manage to-do lists and notes. And it’s slick. I’ve been using it the last few days and I like it. So, those are my picks.

CHUCK:  Nice. Jamison, what are your picks?

JAMISON:  I have two picks. One is a web comic called The link will be easier than typing that in. But it’s a post-apocalyptic comic. But it’s centered in the Nordic countries. So, Scandinavian areas, I don’t know. I’m probably getting the geography wrong, but Finland and Sweden and those places. And the art is gorgeous. So, I’ve been reading that and enjoying it.

The other one is it’s a short essay called ‘The Braindead Microphone’. And it just talks about how the systems that you use to communicate affect the communication that happens through them, that things aren’t just dumb pipes that carry information. And it made me think about how I communicate on Twitter and chat versus in person, and how the things that I say and talk about are different, and the way that I talk about them are different. So, just some food for thought. Those are my two picks.

CHUCK:  Schrodinger’s podcast.

JAMISON:  [Chuckles]

CHUCK:  AJ, what are your picks?

AJ:  I’m going to pick Lowe’s and Home Depot, because sometimes…

DAVE:  [Chuckles]

CHUCK:  Can you pick them both?

DAVE:  [Laughs]

AJ:  Yeah, you can.

CHUCK:  I’m not sure they’re friends.

AJ:  Ah [sighs] alright, then I’ll just pick Lowe’s then, because that’s the one I go to more often.


AJ:  No, I can’t do that, because Home Depot helped me out one time with something that I couldn’t get from Lowe’s.

DAVE:  [Chuckles]

AJ:  Anyway, because sometimes you program a lot and you get a little burned out and you just want a little hobby project to entertain your, well not to entertain your mind for a little while, like build a rabbit hutch or something. And at Lowe’s and at Home Depot you can find the parts and the pieces to do that, or anything else you want to do. It’s like Legos for adults in the more adult than Ikea way.

DAVE:  So, you’re talking Lowes.js, right?

CHUCK:  [Laughs]

AJ:  No, you missed it.

MIKE:  If such a thing existed, would you use it?

DAVE:  [Chuckles]

AJ:  Could I…

DAVE:  Only to build RabbitHutch.js.

MIKE:  Only to build, yeah, exactly. [Chuckles]

AJ:  I would use it if I could order the two by fours but in the length that I want them. But see here’s the thing. It’s that I’m not a master builder. So, I just buy the wood and I just put it together. And if it doesn’t work then I’m just going to have to take it apart and buy a couple of new pieces for the ones I got wrong.

DAVE:  So, after your rabbit hutch, will you build a double-decker couch?

AJ:  You know, I thought about it.

CHUCK:  [Chuckles]

AJ:  I’ve got a friend who built one. And it slides out and everything. So, you can push the first couch underneath the second. And then you can pull it back out. It’s pretty sick tight.

Oh, and I got to pick one more thing while I’m picking, on picks with cool stuff like this. Command Strips. I’ve been intending to call up 3M and see if I can order directly because they’re kind of expensive. It’s four bucks for a pack of four on Amazon, with the lowest price as an add-on item. But Command Strips are just so useful. You can do lots of different things with them. And I wish I could remember some of the cool things I’ve done. But one of them is I took Carl’s projector screen cloth that I got from Amazon and Carl’s black felt contrast boosting boarder tape that I got from Amazon and Command Strips that I got from Amazon. And I now have…

DAVE:  [Chuckles]

AJ:  My projector screen properly mounted on the wall. And let me tell you, Mario Kart 8 has never been so good.

DAVE:  [Chuckles]

CHUCK:  Does Carl know you have his stuff?

DAVE:  [Laughs]

AJ:  Yeah, he actually sells it. He’s got the low contrast cloth and the high contrast cloth and the rear projection cloth. He’s got it all.

DAVE:  These are some of the best picks ever.

CHUCK:  [Laughs]

AJ:  Yeah, I should probably get links for those cloths-es.

DAVE:  [Chuckles]

CHUCK:  Pictures or it didn’t happen. Anyway…

AJ:  Okay, I’ll do that. I will post a picture.

CHUCK:  I’ve got a couple of picks. The first one is ‘The Legacy Journey’ by Dave Ramsey. It is a, the way that he explains is it’s the bible’s way of approaching wealth. And it’s had a pretty profound impact over me, on me over the last week. Obviously if you’re not a Christian or that’s not your thing, then there’s going to be some content in there that you’re not keen on. But I think it’s a healthy view of wealth for one. And it has affected both my faith and my view of finances and wealth. So, I have to pick it just because it is super awesome.

And the other pick I have is JSRemoteConf. I’ve mentioned it on the show before. I’m hoping to have the website up pretty quick here. By the time this comes out, it will be out because this show comes out in a week. But anyway, I’m super excited about it. I’m super excited about some of the speakers we’re going to have come speak. So, keep an eye out for that and we will, or I’ll be getting details out as I have them. So anyway, And those are my picks. Mike, do you have some picks for us?

MIKE:  I do, I do. The first is a site that I’ve been working on called Modern Web is a site for tutorials, links, news, and editorial on the modern web environment, which we basically describe as device agnostic development with HTML, CSS, JavaScript, and Node.js. So, we’ve got tutorials and we’ve got a couple of other really cool features coming out on the site. And if you like those kinds of things and you want to keep up with some good quality content, please take a look at that.

Second is a conference that a good friend of mind helps with called NomadJS. Nomad is this, it’s a virtual meetup. And I think John Paul is the guy speaking at the next one. So, you have to register. It costs a few bucks to register, but they’re doing this virtual meetup thing. And it’s pretty cool.

The last is a little plugin that could. And it’s an oldie but a goodie. But I wanted to bust it out here as a pick, and that’s jQuery Mockjax. Even though there’s so much, “Oh, jQuery, jQuery. We don’t use jQuery anymore,” statistics prove otherwise.

JAMISON:  [Chuckles]

MIKE:  So, you closet jQuery users out there, if you’re using jQuery and you need something to build and mock out your Ajax requests, take a look at Mockjax. We’ve been using it for a long time. It is the little engine that could. It’s a great little tool. So, those are my picks.

DAVE:  Cool.

CHUCK:  Very nice. Well, thanks for coming, Mike.

MIKE:  Thank you for having me.

CHUCK:  It’s been awesome to talk through and just get some ideas. I’m also going to have to get you on The Freelancers’ Show at some point.

MIKE:  Yeah, I would love that.

CHUCK:  Alright. Well, I guess we’ll wrap up then and we’ll catch you all next week.

[This episode is sponsored by MadGlory. You’ve been building software for a long time and sometimes it’s get a little overwhelming. Work piles up, hiring sucks, and it’s hard to get projects out the door. Check out MadGlory. They’re a small shop with experience shipping big products. They’re smart, dedicated, will augment your team and work as hard as you do. Find them online at or on Twitter at MadGlory.]

[Hosting and bandwidth provided by the Blue Box Group. Check them out at] 

[Bandwidth for this segment is provided by CacheFly, the world’s fastest CDN. Deliver your content fast with CacheFly. Visit to learn more.]

[Do you wish you could be part of the discussion on JavaScript Jabber? Do you have a burning question for one of our guests? Now you can join the action at our membership forum. You can sign up at and there you can join discussions with the regular panelists and our guests.]