MAS 102:  James Spivey - podcast episode cover

MAS 102: James Spivey

Dec 17, 201927 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

James Spivey, the Director of Engineering at Shutterstock joins Aaron Frost in this week's My Angular Story to talk about his journey as a developer and how he started using Angular. Aaron and James talk about James' work at Shutterstock as well as his working experience with Angular. Aaron asks James to put him through a mock interview and asks him how to do compound selectors in NgRx. James encourages Aaron to ask him to define "compound selectors". They then talk about how James seems himself as a manager and how the leadership culture should be at a company especially in "inclusivity". Aaron mentions that inclusivity may not have a checkbox but its really important to behave in an inclusive manner.   Host: Aaron Frost Joined By Special Guest : James Spivey My Angular Story is produced by DevChat.TV in partnership with Hero Devs. Sponsors ____________________________________________________________ "The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today! ____________________________________________________________   Links Picks Aaron Frost James Spivey

Transcript

Hey everybody, thanks for coming to another episode of My Angular Story. I'm the host Aarren Frost, and today our guest is James James. Can you introduce yourself to the community so everyone kind of gets to hear who you are, where you're from. Absolutely. My name is James Spivey. I'm the director of engineering for Shutterstock. I've been in the industry for about fifteen years. On Twitter handles my spyby nyspi bey if you want to find me there.

This episode is sponsored by Century dot Io. Recently, I came across a great tool for tracking and monitoring problems in my apps. Then I asked them if they wanted to sponsor the show and allow me to share my experience with you. Century provides a terrific interface for keeping track of what's going on with my app. It also tracks releases so I can tell if what I

deployed makes things better or worse. They give full stack traces and as much information as possible about the situation when the error occurred to help you track down the errors. Plus one thing I up you can customize the context provided by Century, so if you're looking for specific information about the request, you can provide it. It automatically scrubs passwords and secure information, and you can customize the scrubbing as well. Finally, it has a user feedback system built in

that you can use to get information from your users. Oh and I also love that they support open source to the point where they actually open source Centry. If you want to self host it, use the code dev chat at centry dot io to get two months free on Century small plan. That's code dev chat at century dot io. Cool. So what's your what's your back ground with it? Let's hear about it. We're we're all here too, regular story, Yeah, yeah, yeah. So, uh I actually started

programming in cold Fusion and then Adobe Flex. Yeah, I'm a big Flex fan, you know. I I was all about that Adobe Life. Yeah, and then uh, Apple had a say or two about where that was going, and uh so I started looking around for alternatives, and Angueler just felt at home as a Flex developer. You know, it's actually developed by the exact same guy. So it was a pretty good transition to moving in the HTML world. And I just got hooked on one dot. Oh and

I've been pretty much with it ever since. Cool. So how early and one dot oh did you start using it? That's a great question. My my fading memory does not recall the exact version. Yeah, it was pretty early though. I wouldn't say one dot oh, but it was. It was pretty early. Yeah, I started in two thousand and the end of twenty twelve. I think he was like dot nine. I don't think it was one oh yet. I don't know it was. Why it was it was pretty early though, Yeah, pretty close. Yeah, well cool so

director of engineering at Shutterstock. And for anyone who's like, what's Shutterstock, it's the people that they have the watermarks and all the images that you try and download from Google searches that shutter stock. Just in case you forgot much bigger than that. Yeah, we do stock photography. We are one of the largest suppliers of stock photography. But we also do stock videos, okay,

music, okay, editorial work. So a lot of times when you're looking at magazines are online reports, the photos of celebrities, are politicians or whatever. A lot of that's our work as well. So, and we do a lot of branding work too. So if a big company wants to put together a photo shoot for their product, we help organize that there's a bunch more that we do, but those are sort of the big ones. But it is generally around media and having kind of stock bunches of media that

people can can use and purchase for use. Is that true. That's definitely our biggest, our biggest segment for sure. Cool. And then I didn't know you guys help organize like photo shoots and stuff too. That's pretty cool man. Here sneaky tentacles doing all kinds of crazy things. Yeah. No, I mean that's the capitalist. The rule is adapter die right, So it sounds like you guys have adapted into a couple of different veins of the

space. So that's cool. So is Shutterstock doing stuff with Angular. That's where it gets rough. We don't touch Angular at all, okay, but there is some interesting stuff. I can't go too much into detail because we're still working on it, but there's some some Cli type things that might be wandering their way over to the React realm. So this is a fairly new role for me. I've been there for eight months or so, so before that, I was the architect for a number of projects doing all Angular work.

So it's kind of fresh being out of the Angular world. And I definitely miss my friends, like good Frosty here, Yeah, with you all the time. But the React world is also fantastic with great people in it too. Yeah. As we're as we're recording this, they're recording React cough, like we could pop up in the live stream as we're talking. Oh yeah, they were just doing the announcements on concurrency. It's super exciting stuff. I'm really excited to see where that goes. Yeah. Well cool.

So it sounds like you architect died quite a bit of Angular, then. I have done a lot of years of architecture on Angular from one up for sure. So what are some of the I don't know, what are some of the things that you're like, I'm James Spiley, I'm good at this in Angular. What are some of those things that you're like, Hey, I learned how to do these things really well as an architect. I think for me it was following best practices and how to really put together a code

base. You know, I've known a lot of the Angular community that sort of help put those practices into place from the early days, John Papa especially, you know, being the sort of foundation of the style guide. I'm a big proponent of the style guide, I generally speak speaking from an enterprise level, find that even if we don't all necessarily agree that those are the best solutions, as long as we come together and acknowledge that that's the thing

we should follow. Like, the style Guide's not always going to be perfect, and certainly we'll make adjustments per company, per project based off of needs, but having that sort of roadmap really helps developers a lot in terms of Okay, I'm going to join a new company getting up speed fast. If I already know that style guide, I can just hit the ground running. I know a lot of how they do things. I can sort of match, you know a lot faster and integrate a lot quicker. So that was

actually one of my interview questions for a long time. It wasn't it wasn't to weed people out. It was more just to sort of feel what their familiarity was. So I'd always ask if they had read the Angular style Guide. So let's do some interview here, so let's see if everyone can get

a live glimpse of if a frosty Q pass the Spivy Angular interview. So you didn't give me that heads up, because I these days you know, the being a manager of the the questions get very different, right Like now my position is much more about how they'll fit with the team, the culture of the personality. So I've had to adjust my questions a lot. I don't do the technical ones as much. I could certainly pull them up. I want to see it. Let's just do it. It's a good learning

opportunity for the people listening. Put me on the spot like that. Yeah, sorry for putting on the spot, but we got to do something. We'll do a little segment called Interview Frosty and see if I can pass your technically for you. Actually, I should make that a regular segment. I bet people would get a kick out of watching me fail this. Yeah. Sorry, I'm just goin to pull these up here in a minute, since

I've even used them. See, I feel like it's cheating though, because I already kind of know what you know, Like we've talked about it a bunch in person, about the stuff that you were familiar with. So it's kind of like I got to ask you some trick questions. You could trick me. You should trick me. I don't know that I know any good trick questions for you though. I don't even like trick quest I think it's unfair in an interview to actually do trick questions. Uh so let's uh,

you can find them. Sorry, I tried. You try, you can't find them. It's all right. Sorry, we don't have to do it would have been cool because I just upgraded to Catalina. I had text Wrangler is where I had all of them, and now you can't use text Wrangler on Catalina. Really, the one that I had it needs a I guess I gotta find another version that's sixty four bit compatible or something. Hey folks, this is Charles Maxwood, and I just launched my book, The Maxicoder's

Guide Defining Your Dream Developer Job. It's up on Amazon. We self published it. I would love your support. If you want to go check it out. You can find it there, The Maxicoter's Guide Defining Your Dream Developer Job. Have a good one, max out. All right, bro, we we got to make this part of the podcast not lame. You got to ask me one question, all right. If it stumps me, it's better because then the listeners feel vindicated. All right. Uh yeah, I

feel like I want to go get away from core. Let's do how do you do compound selectors in n gr X Oh geez? Compound selectors? Yeah, so you just busted me. I know how to do a selector. I'm guessing that there's a create selector function that I can pass multiple selector functions to, or maybe there's a combined selector function that I can use to combine

selectors. I would guess that's what I would guess. I don't know if the top of my head that seems like something the front one and you and you can even you can even question me on what a compound selector actually means. Is that just accumulation of two selectors within the same state or is this talking about combining selectors from multiple pieces of state? There? You go, Yeah, what do you so? What do you mean by yeah, let's go, what do you mean by uh? What did you say complex?

What do you mean by compound selector? Compound? Yeah? And I I typically would just accept two selectors from the same state that you you you derive a third selector that pulls from those two selectors to create a new value. Right. And I'm I'm a big you know, I'm a big proponent too of understanding selectors, because I think that's the most critical way to pull data from in r X. So what kind of selector did you say? Because it when you said okay, so yeah, I would guess that you could

create selector and pass it multiple selector functions. Is that? Is that what you're trying to say? Is that the answer? Yep, that's the answer, because that sounds like I'm like a from what I know of the rest of the API, Brandon and Mike you've made it's super usable and Rob and I mean everyone who's been involved, right, Sorry, I didn't mean to just put it on them too, but that seems to make the most sense.

I would just pass you two selector functions. Well, And I've seen a lot coming into projects companies, people don't understand that you can pass selectors to selectors, and so you'll tend to see just a giant selection of selectors and then you'll go into some components somewhere, and then you'll see them selecting every one of those and then doing some combination through RxJS or whatever other approach that they're choosing. Yeah, which is wildly inefficient. Right, Like all

of your selectors are always mamoist. So you're going to get much faster reaction times and reuse when you do stuff like compound selectors that select off of other selectors. Yeah yeah, yeah, yeah, it is more efficient to use selectors instead of just doing your own combined Latest, although depending on your app, the combind latest is probably just as efficient. Depending on your app, everything is dependent, right, Like, there's no one right answer in anything

we do in programming. That's why when it comes to like code exams or technical exams, I generally speaking, you know, I start every interview as just saying, hey, this is supposed to be fun, and get nervous. We're not gonna whiteboard. Whiteboards are silly, Like this is just a conversation to see what you think you know, and then you know, we'll write a little code, see where you go from there. Don't even sweat it, right, Like, this is a good time. Yeah, take

the stress out of it. So like wrong answers, you know, I asked questions sometimes that I don't even know the answer too. I'm just curious if they do, you know, and make me something in an interview. I was like that approach, you know, because Google. Google often did that, right, you know, in their early days, their CTO,

their founders. They would, you know, they'd go into a meeting room and say, teach me something I don't know and see if you could teach them a subject matter they didn't have any familiarity with and get them excited about it. Right, it's actually in their book. I thought that was really interesting, right, Okay, Yeah, I like that. I actually would be interested to go into an interview where someone's like, oh, teach me something I don't know. That would be that would be intense, right,

It can be interesting. I've been I've been using that one a little bit lately, just out of curiosity for some people who know, especially more senior engineers that have a breadth of knowledge that probably my domain doesn't fit within. You know, everyone knows a little something different or as a specialist in someone

something different. So I always find it intriguing to see, you know, what are they really passionate about, Where they really want to know, where they really want me to know, where they really want to teach me about. You know, I've I've had a couple engineers that are super excited about functional programming and want to just tell me all about the advantages of functional programming. And why it's so awesome, and it's like I always find those really

intriguing. Yeah. Yeah, when people get passionate, those those that's when you learn as if you're like, hey, this person clearly cares about this. Now it's time to sit down and get ready to learn. So as a manager, how long you been a manager? Now? Did you say? Director? Yeh? Director of engineering at Shutterstock. Yeah, I've been a manager for a fairly decent amount of time. Now I probably say I've been doing it for I don't know, six years or so, you know,

between previous jobs. I started a company, I was a CTO for a while, did that for a pretty long time, and then bounced over to Shutterstock, really enjoying it. So I'm gonna I'm gonna flip the table a little bit and put the pressure on maybe you sure? So I've been really like I just I just spent the first half of today at a training call the including X Project, which is a training with a company called the Inclusion pro and the Black Chamber of Converse here in Utah. It's all about

increasing your awareness and ability to promote inclusivity in the workplace. It was it was really good, So let me ask you as a manager or as a team as a leader. Let's just say as a leader, so you don't have to focus on management because a lot of the listeners are leaders. As a leader, how do you help promote inclusivity at work? And I'm asking that question supposing me and you have the same definition of inclusivity, So feel

free to clarify if you're not sure. But I'm supposing we mean the same thing when we say that, sure, yeah, I mean inclusivity can have a range of topics. I think for me, it's making anyone regardless of race, gender, you know, orientation, all that sort of stuff, making them feel welcome in the workplace. You know, I'm feeling a part

of the team, and that's actually really important to me. One of my most important hiring rules, one of the things that will help you get a job on my team is not having a coding ego, just thinking you're always right or that you're the rock star that fixes everything. I put in all my job descriptions that we're looking for team players, not ninjas or rock stars. I've got a shirt that says I'm not a ninja. You know,

early in my career I kind of had that attitude. You know, I fix all the stuff, I fix all the problems, and I feel like it hurt teams more. You know, I thought it at the time it was you know, we got a product out and made it better, but ultimately it just made things more difficult for everyone involved, right because you're not you're not being collaborative, you're not helping grow others. You're just kind of concerned with yourself. And that was a wrong view. And you know,

I can't take those things back, but I can learn from them. And so a lot of that is, you know, trying to get a workforce it's more balanced, has different views that that feels welcome and comfortable to share those views, you know, so that it's not one person that's like, got these great views but gets drowned out because they're not a loud voice and

so they don't feel comfortable sharing them. So, you know, trying to set an environment where that's a that's an understood that we want to be collaborative, that we want to help raise each other up and build a stronger team. From that, I I've been inspired by a lot of books that I've read recently to kind of raise awareness around inclusivity around making people feel they belong, you know, and uh, it's it's hard to it's hard to do,

you know. I think it's one of the harder aspects of software engineering, is the communication piece. I mean, I don't think it is. The harder part of engineering is the communication side, clearly the harder part and being inclusive, like inheriting places that aren't as inclusive they should be, trying to leave them more inclusive than than you, you know, than when you walked in the door. It's important, but it's also difficult and it's also

really scary to talk about loud. What are some of the wins you've experienced through your career as far as like leaving a better legacy of inclusivity. Yeah, you know, it's one of those things that you're always going to work on. Like you said, I think the first step is talking about having

these types of conversations. You know, we've we've talked about it a bit on this Dot Labs podcast too, and it's about, you know, sort of building those connections for us. You know, can be anything, right Like obviously you know, I've I've worked with and been a friend of Tracy for a long time. And I really live by her model of you change

the ratio. I believe heavily in that. So some of that has come from hiring, you know, like getting wins where we get people to stop just thinking there's one type of coder that we're looking for, and you can be small things, you know, like I'm not going to name names, but you know, the company had a problem with ordering just Uni sex you know, T shirts and it you know, doesn't fit everyone right, and so you were like, well, can we get some female cut you know,

that would be a really big win, and just hammering and hammering and hammering on that, saying it, saying it, saying it, you know, and trying to push for let's let's have stuff for everybody's body type, you know, and that was that We got that, and I was really happy about that. Adventures and Any is a dev chat dot tv production made in partnership with hero Devs. Hero Devs is a group of Angular experts who can help your team code like true developer heroes. If your team needs an

Angular expert, reach out to Aaron at hero dot dev Today. I think I think it's a thing that more leaders in software engineering need to focus on. I like that you are willing to talk about it because it can be scary. I just kind of pulled it out and put you on the spot for it. My hope is that more leaders, regardless of where they're from, what they look like, act like, where they spend their holidays or not, any of the diversity backgrounds that they might have or don't have.

My hope is that leaders can own it because I think the role of senior engineer needs to expand to include that, and it needs to expand to include culture, because culture, you know, once you when you're a junior engineer, you're kind of drinking out of the firehouse, right, and you're kind of barely able to focus on your own tickets and what you're being assigned, right, and you don't you're still learning how how to even talk to the

designer, Like you're still just learning your job for like largely, right, And then once you get into it, you're kind of now graduated to mid and you're able to focus on your own stuff, and you're also able to start being aware of other people's stuff even though you don't affect it as much. But then when you're senior, you're you're now you're looking at your own

team and you're kind of focusing on your whole team. True, yeah, And I think that that part of that focus isn't just on the technical side. We also need to focus on is if I'm on James's team, is James welcome here? Is is Jim's welcoming others here? Right? Like?

Those the both of those aspects, And so I think I think that the senior engineer role does need to expand generally to include these kind of I think I think brankly, it's every level, right like, Yeah, it starts at the top leadership, a CEO, a CTO, based at the bar for what a culture looks like, and then that trickles down, you know, and every level can adjust some of that and try to maybe push back on it if they want to. But you know, everyone's responsible for making

an inclusive environment where people feel safe to challenge ideas and bring new ones and not scare people out of the industry or or have too loud a voice. And that's that's an art form that all of us could always be better at. You know. I'm I'm always learning both from my mistakes, from other people's mistakes and just in general about as you said, you know, taking opportunities to go to conferences or or workshops and just learn what it means.

And you know, and I don't think. I don't think I could even define it really that well because of the fact that it's constantly evolving in my head how to be inclusive and think about being inclusive. Yeah, Like, if someone's like, hey, bullet points on how to make things inclusive, it's tough to make a checklist, right, you could, I could defind some things. But inclusivity is it's just a way of It's just a way.

It's not necessarily a bunch of boxes you can check. Yep. Not everyone's going to agree with it, but you know the fact that we try, right, Like, I think that's why so many people really respect the work you do with Jie comf. Right is that it's supposed to be a conference that's truly inclusive. Right, it's the angular community can feel safe together, learn together, challenge ideas together, and grow together, as opposed to like, this doesn't feel like a safe place for me to be and I

don't want to be. And you know, I think Angie comp is well renowned for being inclusive and wanting people to be there to learn and share it in that together, which is always awesome. You know. I think that's

a really awesome fact of what you guys do. Yeah, I think it's cool to go somewhere you've never been with a group of people you don't know and feel welcome, right, Like, have an interaction, and by the time it's the first night's over and it's dinner time, you're like, Hey, where are we going for dinner with your new friends that you you you've known for less than three hours, right, I like, I really really appreciate about a lot of the different communities I'm the part of, and I

think the angy of the community is one of them. So yeah, you know, my first time attending injin comp, I was still in the one dot zero self taught days. You know, I wanted to learn more about what this you know, two dot zo thing was, and Dan Wallin and John were doing their workshop, and I was like, I'll take that, you know, and I've I've been friends with those guys and and you know,

all of you with Angry Angular family ever since. You know that that one conference changed a lot about how I viewed Angular and the people that were in it, and I made you know, some lifelong friends out of that. So it was a really special experience. And conferences in generally, you know, the in Atlanta is just such a great, great conference for being inclusive and talking about it and meeting new friends and lifetime friends and so many

others. I mean, there's I could list them for for days probably. Yeah, well cool, you're in the Colorado area? Am I right in the Denver area? Okay? So if anyone, if anyone in your in your area wants to kind of reach out, get in touch with you, ask for help, ask for advice, or anything else find out about what's going on a shuldar stock. What's the best way to get in touch with you? Twitter? Uh, you know, I'm happy to contact with you on Twitter. You can also add me on LinkedIn. I had a lot

of people on LinkedIn. I love mentorships, So there's you know a number of people have reached out to me to just say, hey, can you kind of tell me like how you got there and stuff. I can think about things I can do, and you know, I'm happy to do that. I love doing that, so I think that would be awesome. So share your your my Spivey on Twitter. Is that you right? M y s P I V E y Yep. Can you guess why my handle is that way? My spiy with my little eye. I don't know. Yeah,

I have no idea. It's an old school throwback to the early Windows days. I couldn't think of a username, and my last name was taken and I saw my computer he used to be Remember, it is all just my computer on Windows, and so I changed it to my spiby and that just kind of stuck and it became a thing. Yeah, it's largely available. Yeah, I've never had to compete for it, thankfully. Yeah, it's not even get into that always the whole podcast on competing for my name?

All right, baby, yep, that's cool. All right, So anyone questions reach out to James my Spivey on Twitter. Let's move on to picks. I have a pick. It's pretty simple. React Coff we've mentioned is going on right now and there is uh the MC. Her name is Devin Lindsay, Devon Lindsay. Anyway, her suit that she's wearing to MC and that is my pick. She has a pretty posh looking suit, but it's pac Man Maze. Nice Ghosts and the pac Man. So I'm picking

the Valnz's mc attire for reacting off That is my pick. Nice. I will share picks in the show notes if you want to see. Yeah, you got to pick anything you could pick and share with the with the podcast. I think one of the things I'm most excited about right now is that Basil Onondato just got released. I think that's a big step. You know, Alex Eagle and everyone at Google that's been working really hard on that. That's going to be a super sweet tool that I think a lot of people

in the industry are really going to like. You know, I know there's like Pants and some of the other ones, but Basil basles my jam. I'm a Google guy through and through, so I'm excited. Yeah. So a guy actually on my team Hero Devs. One of the guys on my team, you know, Jorge. I don't think I know him. Awesome, So yeah, Jorge, he just finished writing his book on Basil and we're working at translated into English. He wrote it in Spanish, so that's

cool. I'm a exvan of Basil as well. So anyway, James, appreciate you coming on the show. Thanks for chatting and sharing some of your knowledge in the industry. And to the listeners, I will say thanks for listening and we'll see you next time, See you later bye. Bandwidth for this segment is provided by cash fly, the world's fastest CDN. Deliver your content fast with cash Fly. Visit c A, C H, E, F l Y dot com to learn more

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android