Podcasts about chris who

  • 15PODCASTS
  • 17EPISODES
  • 1h 3mAVG DURATION
  • ?INFREQUENT EPISODES
  • May 20, 2024LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about chris who

Latest podcast episodes about chris who

Chris Simms Unbuttoned
Tua Tagovailoa, Jared Goff & #AskMeAnything with Phil Simms

Chris Simms Unbuttoned

Play Episode Listen Later May 20, 2024 104:39


(0:00) Phil talks about Chris' cursing origins and playing sick(6:30) Drake Maye: Can he join the (many) other QBs who fixed their mechanics?(15:20) Bo Nix: "He makes plenty of power throws."(21:25) Kirk Cousins: "It will take a tremendous year by him to be the Falcons QB in Year 2."(34:50) J.J. McCarthy: "We need to see more pitches."(45:10) Rookie Timelines: Were Phil and Chris ready when they played their first game?(50:20) Jayden Daniels: Will Kliff Kingsbury maximize his game?(53:10) Daniel Jones: What does he need to do to win back the Giants?(1:03:10) Jared Goff: How much is his success due to Ben Johnson?(1:07:50) Tua Tagovailoa: How much should his contract extension be?(1:13:10) 2024 College QBs: Which ones is Phil keeping an eye on for next year's draft?(1:17:00) Backup QB Intel: Does knowing an opponent's signals really matter?(1:25:00) Giants Post-Parcells: Phil praises Ray Handley's "genius"(1:27:55) NBA vs NFL Athletes: Who can cross sports more easily?(1:30:40) Phil vs Chris: Who would win a fight in their prime?(1:35:00) What's My Grip? Throwback Edition

Top Five
3.12 Couple Friends

Top Five

Play Episode Listen Later Nov 22, 2022 59:21


Liz is obsessed with the podcast Normal Gossip, while Chris is considering a new angle on voting in his last California election. Then we get into a topic we haven't heard nearly enough about: couple friends. Why is it so much more complicated to make couple friends than individual ones? What are the signs of a good couple friend for us and our partners? And crucially for Chris: Who pays the bill when you go out to dinner with another pair? Plus, our top five dinner guests. We did not expect that making this list would change our lives, but for one of us... it kind of did. Note: This episode was recorded before the election and also before Twitter became even more of a raging dumpster fire than it already was! facebook.com/topfivepod Instagram: @topfivepod Twitter: @thetopfivepod Art by Colin Turnbull (colinpturnbull.com) Music by Origami Pigeon --- Support this podcast: https://anchor.fm/topfivepod/support

The Bike Shed
323: Doing Things

The Bike Shed

Play Episode Listen Later Jan 25, 2022 45:43


Steph talks about winter storms and thoughts on name pronunciation features. Chris talks about writing a query to add a new display of data in an admin panel and making a guest appearance on the Svelte Radio Podcast. Finally, Chris decided that his productivity to-do list system was failing him. So he's on the search now for something new. He asks Steph what she uses and if she's happy with it. How do you, dear Listener, keep track of all your stuff in the world? This episode is brought to you by ScoutAPM (https://scoutapm.com/bikeshed). Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy. Upcase advanced Active Record (https://thoughtbot.com/upcase/advanced-activerecord-querying) Svelte Radio (https://www.svelteradio.com/episodes/chris-toomey-talks-svelte-rails-and-banking) Things (https://culturedcode.com/things/) Todoist (https://todoist.com/) MeetingBar (https://meetingbar.onrender.com/) SavvyCal (https://savvycal.com/) Become a Sponsor (https://thoughtbot.com/sponsorship) of The Bike Shed! Transcript: CHRIS: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Chris Toomey. STEPH: And I'm Steph Viccari. CHRIS: And together, we're here to share a bit of what we've learned along the way. So, Steph, what's new in your world? STEPH: Hey, Chris. We have Winter Storm Izzy headed our way. It's arriving in South Carolina early tomorrow morning. So that's kind of exciting just because it's South Carolina. We rarely see snow. In fact, I looked it up because I was curious because I've seen it every now and then. But I looked up the greatest cumulative snowfall in 1 season, and it was 19 inches in the winter of 1971. I was trying to add an old-timey voice there. I don't know if I was successful. CHRIS: Does 1971 deserve a full old-timey voice? STEPH: Apparently. CHRIS: I feel like people from 1971 would be like, "We were just people in the 70s." Like, what do you... STEPH: [laughs] CHRIS: Wait. Nineteen inches, is that what you said? STEPH: 19 inches. That was total for the season. CHRIS: Yeah, we can bang that out in an afternoon up here in the North. So yeah, okay. You were here for the terrible, terrible winter, right? STEPH: Oh, Snowmageddon? Yes. CHRIS: Yeah, that was something, oof. STEPH: I don't remember how many inches. Was it like 100 inches in a month or something wild like that? I've forgotten the facts. CHRIS: I, too forget the facts. I remember the anecdotal piece of data, the anecdata as it were where we shoveled our driveway, and then another storm came, we shoveled our driveway. And then finally, I was living in an apartment, and it was time to shovel the driveway again. But the pile of snow on the lawn was too big. So we had to shovel the pile of snow further up the lawn to make room for the snow that we were shoveling out of the driveway. But I also remember that being a really nice bonding moment, and I met more of the people living in the...it was a house that had been converted into six apartments. So I actually met some of the people from the house for the first time. And then we hung out a little bit more in the day. So I actually have weirdly fond memories of that time. But to be clear, that was too much snow. I will officially go on record saying too much snow. No, thank you again. STEPH: It was a lot of snow. I think it broke Boston for a while. I remember I don't think I went to...I worked remotely for two weeks because they were just like, "Yeah, don't even try to come into the office. Don't worry about it." So it felt like my first dabbling into understanding quarantine [laughs] except at least with less complicated reasons, just with lots of snow. We also went snowboarding in Charlestown, where we were living. And that was fun because there are some really great hills, and there was so much snow that that was delightful. But I'm not expecting Snowmageddon in South Carolina, although people may act like it and rush out and get their milk and bread. But hopefully, we'll get a couple of inches because that'll be lovely. I don't know that Utah has ever seen the snow. So this will be fun. CHRIS: Oh, that'll definitely be fun. I imagine you've got like even if you do get some amount of accumulation, a day later the sun will just be like, "I'm back. I got this," and clear it up, and you won't have any lingering. The year of Snowmageddon, if I remember correctly, the final pile of snow left in July, the shared one that the city had collected. So you'll probably do better than that turnaround time. [laughs] STEPH: Yeah, it's perfect. It's very ephemeral. It snows, it's beautiful. It's there for a couple of hours, and then poof, it's gone. And then you're back to probably 70-degree weather typically what's here, [laughs] which I have no complaints. There's a reason that I like living here. But in some other news, I have something that I'm really excited about that I want to share. So there's something that you and I work really hard to do correctly, and it's pronouncing someone's name. So whenever there is either a guest on the show, or we are referencing someone, we will often pause, and then we will look for videos. We'll look for an audio clip, something where that person says their name. And then we will do our best to then say it correctly. Although I probably put a Southern twang on a lot of people's names, so sorry about that. But that's really important to say someone's name correctly. And one of thoughtbot's projects is called Hub, which is something that we use internally for all of our project staffing and then also for profiles and team information; there's a new feature that Matheus Richard, another thoughtboter, implemented that I am just so excited about. And now that I have it, I just think I don't know how I lived without this. And I want it everywhere. So Matheus has added the feature where you can upload an audio file with your name pronunciation. So you can go to someone's profile, and you can click on the little audio button and hear them pronounce their name. And then a number of people have taken it a bit further where they will provide, say, the American or English pronunciation of their name. And then they will provide their specific pronunciation; maybe it's Greek, maybe it's Spanish, and it's just phenomenal. And I love it so much. And I can't wait for just more platforms to have something like this. So really big shout out to Matheus Richard for that phenomenal feature. CHRIS: Oh, that is awesome. Yeah, we definitely do pause pretty regularly to go scan through YouTube or try and find an example. And often, people just start into talks, or they'll only say their first name. We're like, oh, okay, keep searching, keep searching. We'll find it. And apologies to anyone whose name we still got wrong regardless of our efforts. But it's making this a paramount idea similar to people putting their pronouns in their name. Like, okay, this is a thing that we should get into the habit of because the easier we make this, the more common that we make this. And names absolutely matter, and getting the pronunciation right really matters. And especially if it can be an easier thing, that's really wonderful. I hope Twitter and other platforms just adopt this; just take this entirely and make it easy because it should be. STEPH: That's what I was thinking; if Twitter had this, and then I was thinking if Slack had this, that would be a wonderful place to be able to just see someone's profile because we can see lots of other helpful context about them. So yeah, it's wonderful. I want to hear more people how they pronounce their names. Because I'll always ask somebody, but it would just be really nice to then be able to revisit or check-in before you talk to that person, and then you can just say their name. That would be delightful. CHRIS: I do feel like creating it for my name would be interesting. I actually had someone this week say my name and then say, "Oh, is that how you pronounce it?" And I stopped for a minute, and I was like, "Yes. I'm really intrigued what other options you were considering, though. I would like to spend a minute and just...because I always thought there was really only the one approach, but I would love to know. Let's just explore the space here," but yes. STEPH: [laughs] You ask them, "What else you got? What other variations can I hear?" CHRIS: [laughs] I would like three variations on my desk by tomorrow so that I can understand what I'm missing out on, frankly. There's a theme or an idea that I've seen bouncing around on Twitter now of people saying, "Yeah, I really just want to apply, get hired, work for one day, make this one change to a platform, and immediately put in my resignation." And I could see this like, "All right, I'm just going to go. I'm going to get hired by Twitter. This is it. This is all I'm doing," which really trivializes the amount of effort that would go into it for a platform like Twitter. I can't even imagine what engineering looks like in Twitter and how all the pieces come together. I'm imagining some amount of microservices there, and that's just my guess. But yeah, that idea of just like, this is my drive-by feature. I show up; I work for a week, I quit. And there we go; now we have it. STEPH: Well, we are consultants. Maybe we'll get hired for all these different companies, and that will be our drive-by feature. We'll add it to their boards and be like, "Don't you want this? Don't you need this?" And then they'll say, "Yes." [chuckles] CHRIS: I am intrigued because I can't imagine this hasn't come up in conversations at Twitter. And so, what are the trade-off considerations that they're making, or what are the reasons not to do this? I don't have any good answers there. I'm just asking the question because, for an organization their size, someone must have had this idea. Yeah, I wonder. STEPH: Yeah, there's; also, I'm sure malicious things that then you have to consider as to then how people...because, at the end of the day, it's just an audio file. So it could be anything that you want it to be. So it starts to get complicated when you think about ways that people could abuse a feature. On that peppy note, what's going on in your world? CHRIS: I had a fun bit of coding that I got to do recently, which, more and more, my days don't involve as much coding. And so when I have a little bit of time, especially for a nice, self-contained little piece of code that I get to write, that's enjoyable. And so I was writing a query. I wanted to add a new display of data in our admin panel. And I was trying to write a query, and I got to build a nice query object in Ruby, which I always enjoy. That's not a real thing, just in case anyone's hearing that and thinking like, wait, what's a query object? Just a class that takes in a relation and returns relation but encapsulates more complex query logic. It's one of my favorite types of ways to extract logic from ActiveRecord models, that sort of thing. So I was building this query object, and specifically, what I wanted to do here is I'm going to simplify down the data model. And I'm going to say that we have users and reservations in the system. This may sound familiar to you, Steph, as your go-to example [laughs] from the past. We have users, and we have reservations in the system. So a user has many reservations. And reservations can be they have a timestamp or maybe an enum column. But basically, they have the idea of potentially being upcoming, so in the future. And so what I wanted to do was I wanted to find all users in the system who have less than two upcoming reservations. Now, the critical detail here is that zero is a number less than two. So I wanted to know any users that have no upcoming reservations or one upcoming reservation. Those were the two like, technically, that's it. But say it was even less than three, that's fine as well. But I need to account for zero. And so I rolled up my sleeves, started writing the query, and ActiveRecord has some really nice features for this where I can merge different scopes that are on the reservation.upcoming is a scope that I have on that model that determines if a reservation is upcoming because maybe there's more complex logic there. So that's encapsulated over there. But what I tried initially was users.leftjoinsreservations .groupbyusers.id havingcountofreservations. So that was what I got to. And thankfully, I wrote a bunch of tests for this, which is one of the wonderful things about extracting the query object. It was very easy to isolate this thing: write a bunch of tests that execute it with given data. And interestingly, I found that it worked properly for users with a bunch of upcoming reservations. They were not returned by the query objects which they shouldn't, and users with one upcoming reservation. But users with zero upcoming reservations were being filtered out. And that was a surprise. STEPH: Is it because the way you were joining and looking where the reservation had to match to a user, so you weren't getting where users didn't have a reservation? CHRIS: It was related to that. So there's a subtlety to LEFT JOINS. So a JOIN is going to say like, users and reservations. But in that case, if there is a user without reservations, I know they're going to be filtered out of this query. So it's like, oh, I know what to do. LEFT JOINS, I got this. So LEFT JOINS says, "Give me all of the users and then in the query space that I'm building up here, join them to their reservations." So even a user with no reservations is now part of the recordset that is being considered for this query. But when I added the filter of reservations.upcoming, I tried to merge that in using ActiveRecord's .merge syntax on a query or on a relation, as it were. That would not work because it turns out when you're using the LEFT JOINS...and as I'm saying this, I'm going to start saying, like, here's definitively what's true. I probably still don't entirely understand this, but trying to do the WHERE clause on the outer query did not work. And I had to move that filtering logic into the LEFT JOINS. So the definition of the JOINS was now I had to actually handwrite that portion of the SQL and say, LEFT OUTER JOIN users on and then, you know, the users.id=reservations.userid and reservations. whatever the logic there for an upcoming reservation. So reservations.completed is null or reservations.date>date.current or whatever logic there. But I had to include that logic in the definition of the LEFT OUTER JOIN, which is not a thing that I think I've done before. So it was part of the definition of the JOIN rather than part of the larger query that we were operating on. STEPH: Yeah, that's interesting. I don't think I would have caught that myself. And luckily, you had the test to then point out to you. CHRIS: Yeah, definitely the tests made me feel much more confident when I eventually narrowed down and started to understand it and was able to make the change in the code. I was also quite happy with the way I was able to structure it. So, suddenly, I had to handwrite a little bit of SQL. And what was nice is many, many, many years ago, I recorded a wonderful course on Upcase with Joe Ferris, CTO of thoughtbot, on Advanced ActiveRecord Querying. And I'm still years later digesting everything that Joe said in that course. It's really an amazing piece of content. But one of the things that I learned is Joe shows a bunch of examples throughout that course of ways that where you need to, you can drop down to raw SQL within an ActiveRecord relation. But you don't need to completely throw it out and write the entire query by hand. You can just say, in this case, all I had to handwrite was the JOINS logic for that LEFT JOINS. But the rest of it was still using normal ActiveRecord query logic. And the .having was scoped on its own, and all of those sort of things. So it was a nice balance of still staying mostly within the ActiveRecord query Builder syntax and then dropping down to a lower level where I needed it. STEPH: I love that you mentioned that video because I have seen it, and it is so good. In fact, I now want to go back and rewatch it since you've mentioned it just because I remember I always learn something every time that I do watch it. On a side note, the way that you represented and described query objects was so lovely. I know you, and I have talked about query objects before because we adore them. But I feel like you just gave a really good mini class and overview of like, this is what a query object is, and this is what it does. And this is why they're great because you can test them. CHRIS: Cool. I'm going to be honest; I have no idea what I said. But I'm glad it was good. [laughs] STEPH: It was. It was really good. If anyone has questions about query objects, that'll be a good reference. CHRIS: Well, thank you so much for the kind words there. And for the ActiveRecord querying trail, really, I was just along for the ride on that one, to be clear. I did write a bunch of notes after the fact, which I've found incredibly useful because the videos are great. But having the notes to be able to reference...past me spent a lot of time trying really hard to understand what Joe had said so that I could write it down. And I'm very glad that I invested that time and effort so that I can revisit it more easily. But yeah, that was just a fun little bit of code that I got to write and a new thing that I've learned in the world of SQL, which is one of those topics that every little investment of effort I find to be really valuable. The more comfortable I feel, the more that I can express in SQL. It's one of those investments that I'm like, yep, glad I did that. Whereas there are other things like, yeah, I learned years ago how to do X. I've completely forgotten it. It's gone from my head. I'm never going to use it again, or the world has changed. But SQL is one of those topics where I appreciate all of the investment I've put in and always find it valuable to invest a bit more in my knowledge there. STEPH: Yeah, absolutely same. Just to troll Regexs for a little bit, they're powerful, but they're the thing that I will never commit to learning. I refuse to do it. [laughs] I will always look it up when I need to. But Postgres or SQL, on the other hand, is always incredibly valuable. And I'm always happy to learn something new and invest in that area of my skills. CHRIS: Yep, SQL and Postgres are great things. But let's see. In other news, actually, I had the pleasure of joining the Svelte Radio Podcast for an episode this week. They invited me on as a guest. And we got to chat about Svelte, and then I accidentally took the conversation in the direction of inertia as I always do. And then I talked a little bit more about Sagewell, the company that I'm building, and all sorts of things in the world. But that was really fun, and I really enjoyed that. And I believe it will be live by the time this episode goes live. So we will certainly include a link to that episode in our show notes here. STEPH: That's awesome. I haven't listened to the Svelte Podcast before. So I'm excited to hear your episode and all the good things that you said on it. I'm also just less familiar with them. Who runs the Svelte Podcast, and what's the name of the show? CHRIS: The show is called Svelte Radio. It's hosted by Antony, Shawn, and Kevin, who are three Svelters from the community. Svelte is a really interesting group where the Svelte society is, as far as I can tell, a community organization that is seemingly well-supported by the core team and embraced as the natural center point of the community. And then Svelte Radio is an extension of that. And it's a wonderful podcast. Each week, they talk about various things. So there are news episodes, and then they have guests on from time to time. Recently, having Rich Harris on to talk about the future of Svelte, Rich Harris being the creator of Svelte. Interestingly, if you search for Svelte Radio, they are the second Google result because the first Google result is the tutorial docs on how to use Svelte with radio buttons. But then the second one is Svelte Radio, the podcast, [laughs], which is an interesting thing. Good on Svelte's documentation for having such strong SEO. STEPH: I was just thinking there's something delightful about that where the first hit is for documentation that's a very helpful; here's how you use this. That's kind of lovely. Well, that's really cool. I'm really looking forward to hearing more about Svelte and listening to you be on the show. CHRIS: Yeah, they actually had some very kind things to say about The Bike Shed and, frankly, you as well and our co-hosting that we do here. So that was always nice to hear. STEPH: That's very kind of them. And it never fails to amaze me how nice podcasters are. Everyone that I've met in this community that's a fellow podcaster they're just all such wonderful, nice, kind people, and I just appreciate the heck out of them. CHRIS: Yeah, podcasts are great. The internet is doing its job; that's my strong belief there. But let's see. In other news, I actually have more of a question here, sort of a question and an observation. My work has started to take a slightly different shape than it has historically. Often, I'm a developer working on a team, picking up something off the top of the Trello board or whatever we're using for project management, working on that thing, pushing it through to acceptance. But all of the work or the vast majority of the work is encapsulated in this one shared planning context. But now, enough of my work is starting to spill out in different directions. Like right now, I'm pushing on hiring. That's a task that largely lives with me that doesn't live on the shared Trello board. Certainly, the rest of the team will be involved at some point. But for now, there's that that's really mine. And there are other pieces of work that are starting to take that shape. So I recognize, or at least I decided that my productivity to-do lists system was failing me. So I'm on the search now for something new, but I'm intrigued. What do you use? Are you happy with what you have for to-do lists? How do you keep track of stuff in the world? STEPH: Oh goodness. I'm now going to overanalyze everything that I do and how I keep track of the things that I do. [chuckles] So currently, I have two things that I used to track, and that is...okay, I'm going to expand. I have three to-do lists that I use to track. [laughs] Todoist is where I add most things of where whatever I just think of, and I want to capture it Todoist is usually where it goes. Because then it's very easy for me to then go back to that list and prioritize or just simply delete stuff. If I haven't gotten to it in a while, I'm like, fine, let it go. Move on. And then the other place I've started using just because it's been helpful in terms of linking to stuff is Basecamp. So we use Basecamp at thoughtbot, and we use it for a number of internal projects. But I have created my own project thanks to some advice from Mike Burns, a fellow thoughtboter, because he created his own and uses that to manage a lot of his to-dos and tasks that he has. And then that way, it's already one-stop shopping since you're in Basecamp a lot throughout the day or at least where you're going to visit some of the tasks that you need to work on. So that has been helpful just because it's very simple and easy to reference. And then calendar, I just live by my calendar. So if something is of the utmost importance...I realize I'm going in this in terms of order of importance. If something is critical, it's on my calendar. That's where it goes. Because I know I have not only put it somewhere that I am guaranteed to see it, but I have carved out time for it too. That's my three-tier system. [laughs] CHRIS: I like it. That sounds great, not overly complicated but plenty going on there. And it sounds like it's working for you, sounds like you're happy with that. STEPH: It has worked really well. I'm still evaluating the Basecamp, but so far, it has been helpful. It does help me separate between fun to-do items which go in Todoist and maybe just some other work stuff. But if it's really work-focused, then it's going in Basecamp right now. So there's a little helpful separation there between what's going on in my life versus then things I need to prioritize for work. What are the things that you're currently using, and where are you feeling they're falling down or not being as helpful as you'd like them to be? CHRIS: My current exploration, I'm starting to look for a new to-do list-type things. Specifically, I've been using Trello for a long time for probably a couple of years now. And that was a purposeful choice to move away from some of the more structured systems because I found they weren't providing as much value. I was constantly bouncing between different clients and moving into different systems. And so much of the work was centrally organized there that the little bit of stuff that I had personally to keep track of was easy enough to manage within a Trello board. And then slowly, my Trello board morphed into like 10 Trello boards for different topics. So I have one that's like this is research. These are things that I want to look into. And so I can have sort of a structure and prioritization within that context in my world. And then there's one for fitness and one for cooking. I'm trying to think which else...experiments, as I'm thinking about I want to try this new thing in the world. I have a board for that. So I have a bunch of those that allow me to keep things that aren't as actionable, that are more sort of explorations. But then they each have their own structure. And that I found to be really useful and I think I'll hold on to. But my core to-do board has started failing me, has started being just not quite enough. And then, more so, I wanted a distinct thing for work for a professional context. So I was like, all right, let me go back to the drawing board and see what's out there. And I did a quick scan of Todoist and Things, respectively. And I've settled on Things for right now. It just matches a little bit more to my mental model. Todoist really pushes on the idea of due dates or dates as a singular idea associated with most things. Almost everything should have a date. And I kind of philosophically disagree with that. Whereas Things has this interesting idea of there is the idea of a due date, but it's de-emphasized in their UI because not everything has a due date; most things don't. But Things has a separate idea of a scheduled date or an intent date. Like yeah, I think I'll work on that on Wednesday. It's not due on Wednesday; that's just when I want to work on it. It can have a separate due date. Like, maybe it's due Friday. STEPH: Is the name of the application that you're saying is it Things? Is that the name of it? CHRIS: Yeah, it is. STEPH: I haven't heard this one. You kept saying Things. I was like, wait, is he being vague? But I realized you're being specific. [laughs] CHRIS: It's one of the few things that...yeah, one of the few things that I think is not great about Things. It's from a company Cultured Code, and the application is called Things. And that is all I will say on that topic. Different names maybe would have been better, but they seem to have carved out enough of an attention space. Enough people know of it that if you search for Things and to-do list, it will very quickly pop up. But yeah, that's a pretty ambiguous name. They maybe could have done a different one there. But the design of the application is really nice. It's on my desktop. And now I have it on my phone as well, and they sync between them and all the stuff. So there's never going to be a perfect system. I'm certain of that. I've at least talked myself out of trying to build my own because, man, have I fallen into that trap before. Oh goodness, so many times. STEPH: I'm very proud of you. CHRIS: Thank you. I'm trying. STEPH: But yeah, it'll be interesting to see how it evolves. I continue to struggle with there are these things that come to mind, and I want to capture them during the day. But some of them are just stories I'm telling myself, which would probably be best captured in a journal tool. And then there are notes that I might want to keep on remote work and how people think about that. And so I'm starting to think about Obsidian or a note-taking system for that. And then I've got this Trello board concoction. And now I've got a to-do...and suddenly I'm like, well, that's too many things. And so I'm trying to not overthink it. I'm trying to not underthink it. I'm trying to just find that perfect amount of thinking. That's what I'm aiming for. I'm not sure I'm going to hit it directly, [laughs], but that's what I'm aiming for. Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. STEPH: Some of the topics that you mentioned earlier did stand out to me when you're talking about recipes and working out some other topics. Those are things for me that I often just put in notes. So I liked the word that you used for stories that you're telling yourself or things that you're interested in. Is that something that...I don't put it in Todoist or put it somewhere because I don't really have an action item. It's more like, yeah, this recipe looks awesome and one day...so I'm going to stash it somewhere so I can find it. I'm currently using Notion. I used Bear before. It is beautiful. I really liked Bear, but I needed a little bit more structure, and Notion gave me that structure. And so I will just dump it in Notion. And then it's very searchable, so I can always find whatever recipe or whatever thought that was as long as I try to add buzzwords to my own notes. Like, what would have Stephanie searched for looking for this? So I will try to include some of those words just so I can easily find it. CHRIS: I love you're defining yourself as a Stephanie. For a random Stephanie walking through the woods, what search terms? How can I SEO arbitrage a Stephanie? STEPH: What would she look for? CHRIS: Who knows? STEPH: That Stephanie, she's sneaky. You never know. CHRIS: You never can tell. Obsidian is the one that I'm looking at now. But I'm currently using Apple Notes. And it's really nice to be able to search directly into a note very quickly. I have that both via Alfred and then on my phone. And I'm finding a lot of utility in that, particularly for notes, for things I want to talk to someone about. But now there are seven different things, and how are they connected? And where is something? And to the question of where would a future Christopher look for this, let's make sure I put it in that place. But I don't know what that dude's going to be up to. He's a weird guy. He might look in a completely random place. So I'm trying to outsmart him, and oof, good luck, me. STEPH: [laughs] I have heard of Obsidian, but I don't recall much about it. So I'd have to look into it. I do feel your pain around Todoist and where it really encourages you to set a date. Because there are often things where I'm like, I saw something I want to read. And I know there are tons of tools. There are so many tools and videos and things that people could watch if they really want to invest in this workflow. But right now, I've told myself no, and so I use Todoist. And I see something I want to read, and so I just link to it. And I don't have a particular date that I want to read it. I'm like, this looks cool, and so then I add it to a reading list. But that also, I guess, could be something for notes. More and more, I'm trying to shove things into notes, so it feels less like a task and more of a I'm curious, or I'm interested in things that have piqued my interest. Let me go back and look at that list to see if there's something I want to pull from today or I need inspiration. That's what my notes often are; they're typically inspiration for something that I have seen and really liked, or maybe it's a bug that I looked into, and I want to recall how that happened or what was the process. But yeah, my notes are typically a source of inspiration. So I try to dump most things in there. I don't know if that's particularly helpful for your task, though, because it sounds like you're looking for a way to manage the things that you actually need to do versus just capturing all of your thoughts. CHRIS: Honestly, part of it is having a good system for those like, oh, I'd like to read this sometime. Ideally, for me, that doesn't go into my whatever to-do list system. But if my brain doesn't trust that I'll ever read it or if I feel like I'm putting it into a black hole, then my brain is just like, hey, you should really read that thing. Are you thinking about that? You should think about that and just brings it up. And so having a system externalized that I trust such that then the to-do list can be as focused as possible. It's a sort of an arms race back and forth battle type thing of like, I've definitely done the loop of like, all right, I want to capture everything. I want to have perfect, lossless, productivity system, and that is not possible. And so then I overcorrect back the other way. I'm like, whatever, nothing matters. I'll just let everything fall away. And then I'm like, well, then my brain tries to remind me of stuff or tries to remember more. And there's a book, Getting Things Done, which is one of the more common things recommended in the productivity world. And that informs a bunch of my thinking around this, the idea of capturing everything that's in your head so that you can get it out of your head. And in the moment, be focused and in the moment and not having to try and remember. And so that's the ideal that I'm searching for. But it's difficult to build that and make that work. STEPH: It seems the answer is there's no perfect system. It's always finding what works for you. And I feel like it's always going to change from hopefully not month to month because that would be tedious. But it may change year to year depending on how you're prioritizing things and the types of things that you need to remember or that you need to accumulate somewhere. So I feel like it's always this evolving, iterative process of changing where we're storing this. But I feel like where you store the notes and inspiration, that's something that, ideally, you want to make sure that you can always continue to keep forward. So even if you do change systems, that's something that's usually on my mind. It's like, well, if I use this system to store all of my thoughts, what if I want to move to something else? How stuck am I to this particular platform? And can I still have ownership of the things that I have added here? But overall, yeah, I'd be intrigued to see what other people think if they have a particular system that works for them, or they have suggestions. But overall, it seems to be whatever caters best to your personality and your workflow. That's why there are so many of these. There are so many thoughts, so many videos, so many styles. CHRIS: Yeah, I think a critical part of what you just said that feels very true to me is this is something that will change over time as well. Life comes in seasons, and my work may look a certain way, or my life may look a certain way, and then next year, it may be wildly different. And so, finding something that is good enough for right now and then moving forward with that and being open to revisiting it. And yeah, that feels true. So I'm in an explore phase right now. I'll report back if I have any major breakthroughs. But yeah, we'll see how it goes. STEPH: I will say I think the main tool that I have really leaned into, while some of the others will change over time, is my calendar. There are certain things I've let go. My inbox is always going to be messy. My to-do list is always going to be messy. But my calendar that is where things really go to make sure that they happen. And I will even add tasks there as well. So I feel like the calendar will always stick with me because I can trust that as the one source of like, these are the things that have to happen. Everything else I can check for during that day or figure it out as I go. Or if something gets dropped or bounces to the next day, it's okay. CHRIS: Yeah, the calendar is definitely a core truth in my world. Whatever the calendar says, that is true. And I'm actually a...I hope I'm not annoying to anyone. But I'm very pointed in saying, "This recurring meeting that we have if we keep just canceling it the day before every time, let's get this off our calendars. Let's make sure our calendars are telling the truth because I trust that thing very much." And two apps that I'm using right now that I've found really useful in the calendar world are MeetingBar, which I've talked about before. But it's a little menu bar application that shows the next meeting that's upcoming. And then I can click on it and see the list of them and easily join any video call associated, just a nice thing to keep the next thing on my calendar very top of mind, super useful, really love that. That's just open source and easy to run with. The other that I've been spending more and more time with lately is SavvyCal. SavvyCal is similar to Calendly. It's a tool for sharing a link to allow someone to schedule something on your calendar. And, man, it is an impressive piece of technology. I've been leaning into some of the fancier features of it of late. And it has an amazing amount of control, and I think a really well-designed sort of information architecture as well. It took me a little while to figure out how to do everything I wanted to do in it. But I wanted to be able to define a calendar link thing that I could share with someone that really constraints in the way that I wanted. Like, oh, don't let them schedule tomorrow, and make sure there's this much buffer between meetings. And don't let this calendar link schedule too many things on my calendar because I need to control my day, and give me some focus blocks. And they're not actually on my calendar, but please recognize that. And it basically supports all of these different ways of thinking and does an incredible job with it. As an aside, SavvyCal is created by Derrick Reimer, who is the co-host of The Art of Product Podcast, which is co other hosted by Ben Orenstein, former thoughtboter, creator of Upcase, and a handful of other things. So small world and all of that. But yeah, really fantastic piece of technology that I've been loving lately. STEPH: That's really cool. I have not heard of SavvyCal. I've used Calendly and used that a fair amount. And that is so awesome where you can just send it to people, and they can pick time on a calendar and do all the features that you'd mentioned. So it's good to know that there's SavvyCal as well. Well, pivoting just a bit, we have a listener question that I'm really excited to dig into. This question comes from fellow thoughtboter, Steve Polito. And Steve writes in that, "Hey, Bike Shed, I've got a question for you. I find it difficult to know if there's an existing method in a large class or a class that includes many concerns. How can I avoid writing redundant methods when working on a large project?" And Steve provided a really nice just contrived example where he's defined a class user that inherits from ApplicationRecord. And then comments, "Lots of methods making it really hard to scan this giant class. And then there's a method called formatted name. So it takes first name, adds a space, and then adds the user's last name. And then there are a lot more methods in between. And then, way down, there's another method called full name that does the exact same thing. Just to provide a nice example of how can you find a method that has existing logic that you want and avoid implementing essentially the same method and the same class?" So as someone who has worked on some legacy systems this year, I feel that pain. I feel the pain of where you have a really giant class, and that class may also include other modules. So then you have your range of all the methods that you may be looking through gets really widened. And you are looking for particular logic that you feel like may exist in the system, but you really just don't know. So I don't know if I have a concrete method for how you can find duplicate logic and avoid writing that other method. But some of the things that I do is I will initially go to the test. So if there's some logic that I'm looking for and I think it's in this class or I have a suspicion, I will first look to see what has test coverage. And I find that is just easier to skim where I can find, and I'll use grep, and search and just look for anything. In this particular case, let's use first name as our example. So I'm looking for anything that's going to collaborate with first name. Some of the other things that I'll do is I'll try to think of a business case where that logic is used. So, where are we displaying the user's full name? And if I can go to that page and see what's already in use, that may give me a hint to do we already have this logic? Is there something there that I should reuse, or is it something new that I'm implementing? And then if I really want to get fancy about it, for some reason that I really want to see all the methods that are listed, but I'm trying to get rid of some of the noise in the file, then I could programmatically scan through all the available methods by doing something like class.instance methods and passing in false. So we don't include the methods that are from superclasses, which can be very helpful. So that way, you're just seeing what scoped to that class. But then, let's say if you do have a class that is inheriting from other modules, then you may want to include those methods in your search. So to get fancier, you could look at that class' ancestor chain and then collect the classes or models that are custom to your application, and then look at those instance methods. And then you could sort them alphabetically. But you're still really relying on is there a method name that looks very similar to what I would call this method? So I don't know that that's a really efficient way. But if I just feel like there's probably already something in this space and I'm just looking for a clue or some name that's going to hint that something already exists, that's one way I could do it. To throw another wrench in there, I just remembered there are also private methods, and private methods don't get returned from instance methods. I think it's private instance methods is a method that you'd have to call to then include those in your search results as well. So outside of some deeper static analysis, this seems like a hard problem. This seems like something that would be challenging to solve. And then I guess the other one is I ask a friend. So I will often lean on if there's someone else at the team that's been there longer than me is I will just ask in Slack and say, "Hey, I want to do a thing. I'm worried this already exists, or I think it already exists. Does anybody have any clues or ideas as to where this might live?" I know I just ran through a giant list of ideas there. But I'm really curious, what are your thoughts? If you have a messier codebase and you're worried that you are reimplementing logic that already exists, but you're trying to make sure you don't duplicate that logic, how do you avoid that? CHRIS: Well, the first thing I want to say is that I find it really interesting that I think you and I came at this from different directions. My answer, which I'll come to in a minute, is more of the I'm not actually sure that this is that easy to avoid, and maybe that's not the biggest problem in the world. And then I have some thoughts downstream from that. But the list that you just gave was fantastic. That was a tour de force of how to understand and explore a codebase and try and answer this very hard question of like, does this logic already exist somewhere else? So I basically just agree with everything you said. And again, I'm deeply impressed with the range of options that you offer there for trying to figure this out. That said, sometimes codebases just get really large. And this is going to happen. I think the specific mention of concerns as sort of a way that this problem can manifest feels true. Having the user object and being like, oh man, our user object is getting pretty big. Let's pull something out into a concern as just a way to clean it up. That actually adds a layer of indirection that makes it harder to understand the totality of what's going on in this thing. And so personally, I tend to avoid concerns for that reason or at least at the model layer, especially where it's just a we got 1,000 methods here. Let's pull 200 of them into a file and maybe group them somewhat logically. That tends to not solve the problem in my mind. I found that it just basically adds a layer of indirection without much additional value. I will say in this particular case, the thing that we're talking about presenting the full name or the formatted name feels almost like a presentational concern. So I might ask myself, is there a presenter object, something that wraps around a user and encapsulates this? And then we as a team know that that sort of presentational or formatting logic lives in the presentation format or layer. Maybe I'm not entirely convinced of that as an answer. But it's just sort of where can we find organizational lines to draw within our codebases? I talked about query objects earlier. That's one case of this is behavior that I'll often see in classes as, say, a scope or something like that that I will extract out into a query object because it allows me to encapsulate it and break it out a little bit more but still have most of the nice pieces that I would want. So are there different organizational patterns that are useful? I think it's very easy to start drawing arbitrary lines within our codebases and say, "These are services." And it's like, what does that mean? That doesn't mean anything. App Services, that's not a thing, so maybe don't do that. But maybe there are formatters, queries, commands, those feel like...or presenters, queries, commands. Maybe those are organizational structures that can be useful. But switching to the other side of it, the first thing that came to mind is like, this is going to happen. As a codebase grows, this is absolutely going to happen. And so I would ask rather than how can I, as the developer, avoid doing this in the first place...which I think is a good question to ask. And again, everything you listed, Steph, is great. And I think a wonderful list of ways that you can actually try to avoid this. But let's assume it is going to happen. So then, what do we do downstream from that? One answer that comes to mind is code review. Code review is not perfect. But this is the sort of thing that often in code review I will be like, oh, I actually wrote a method that's similar to this. Can you take a look at that and see can we use only one of these or something like that? So I've definitely seen code review be a line of defense on this front. But again, stuff is still going to sneak through. And someday, you'll find it down the road. And that's the point in time that I think is most interesting. When you find this, can you fix it easily? Do you have both process-wise and infrastructure-wise the ability to do a very small PR that just removes the duplicate method, removes the usage of it, and consolidates on the one? It's like, oh, I found it. Here's a 10-line PR that just removes that method, changes the usage. And now we're good. And that can go through code review and CI very quickly. And we have a team culture that allows us to make those tiny changes on the regular to get them out to production as quick as possible so that we know that this is a good code change, all of that. I found there are teams that I've worked on where that process is much slower. And therefore, I will try and roll a change like that up into a bigger PR because I know that's the only way that it's really going to get through. Versus I've been on teams that have very high throughput is probably the best way to describe it. And on those teams, I find that the codebase tends to be in a healthier shape because it just naturally falls out of having a system that allows us to make changes rapidly with high trust, get them out into the world, et cetera. STEPH: This is that bug or inconsistency that's going to show up where on one page you have the user's full name. And then on another page, you have the user's full name, but maybe the last name is not capitalized, or there's just something that's slightly different. And then that's when you realize that you have two implementations of essentially the same logic that have differed just enough. I like how you pointed out that this is one of those things that as a codebase grows, it's probably going to happen, and that's fine. It's one of those if you do have duplicate logic, over time, based on your team's processes, you'll be able to then identify when it does happen, and then look for those preventative patterns for then how you organize your code. How quickly can you make that change? Can you just issue a PR that then removes one of them? But then look for ways to say, how are we going to help our future selves recognize that if we're looking for a user's full name, where's a good place to look for that? And then what's a good domain space or naming that we can give to then help future searchers be able to find it? I also really like your code review example because it does feel like one of those things that, yes, we want to catch it if we can, and we can leverage the team. But then also, it's not the end of the world if some of these methods do get duplicated. There's one other thing that came to mind that it's not really going to help prevent duplicate methods, but it will help you identify unused code. So it's the Unused tooling that you can run on your codebase. And that's something that would be wonderful to run on your codebase every so often. So that way, if someone has added...let's say there was a method that was full name but is not in use. It didn't have test coverage; that's why you didn't find it initially. And so you've introduced your own formatted name. And then, if you run unused at some point, then you'll hopefully catch some of those duplicate methods as long as they're not both in use. CHRIS: I think one more thing that I didn't quite say in my earlier portion about this. But in order to do that, to use Unuse or to have these sort of small pull requests that are going through, you have to have test coverage that is sufficient that you are confident you're not going to break the app. Because the day that you do like, oh, there's a typo here; let me fix it real quick. Or there's this method I'm pretty sure it's not used; let me rip it out. And then you deploy to production, and suddenly the error system is blowing up because, in fact, it was used but sneakily in a way that you didn't think of, and your test coverage didn't catch that. Then you don't have trust in the system, and everything slows down as a result of that. And so I would argue for fixing the root problem there, which is the lack of test coverage rather than the symptom, which is, oh, I made this change, it broke something. Therefore, I won't make small changes anymore. STEPH: Definitely. Yeah, that's a great point. CHRIS: So yeah, I don't have any answer. [laughs] My answers are like, I don't know, it's going to happen, but there's a lot of stuff organizationally that we can do. And granted, you gave a wonderful list of ways to actually avoid this. So I think the combination of our answers really it's a nice spectrum of thoughts on this topic. STEPH: I agree. I feel like we covered a very nice range all the way from trying to identify and then how to prevent it or how to help future people be able to identify where that logic lives and find it more easily. Also, at the end of the day, I like the how big of a problem is this? And it is one of those sure; we want to avoid it. But I liked how you captured that at the beginning where you're like, it's okay. Like, this is going to happen but then have the processes around it to then avoid or be able to undo some of that duplicate work. But otherwise, if it happens, don't sweat it; just look for ways to then prevent it from happening in the future. On that note, shall we wrap up? CHRIS: Let's wrap up. The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review on iTunes, as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey. STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeeeee!!! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

The Bike Shed
317: Burn The Ships!

The Bike Shed

Play Episode Listen Later Nov 30, 2021 41:41


Steph gives an update about RSpec focus and how she often forgets to remove the focus feature from tests. She figured out two solutions: one using Rubocop, and the other from a Twitter user, suggesting using a GitHub gist. She also suggests that if you're one of those people who misses being in an office environment, you check out soundofcolleagues.com for ambient office noise selection. Chris has been struggling to actually do any coding and is adjusting to doing more product management and shares some strategies that have been helping him. They answer a listener question about dealing with large pull requests and how it's hard to recognize a good seam to break them up when you are in the thick of one. This episode is brought to you by ScoutAPM (https://scoutapm.com/bikeshed). Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy. Twitter note re: rspec-retry (https://twitter.com/jasonrudolph/status/1458416077726158852) soundofcolleagues.com (https://soundofcolleagues.com) mailcheck (https://github.com/mailcheck/mailcheck) Inertia.js (https://inertiajs.com/) Svelte (https://svelte.dev/) devise (https://github.com/heartcombo/devise) clearance (https://github.com/thoughtbot/clearance) Become a Sponsor (https://thoughtbot.com/sponsorship) of The Bike Shed! Transcript: CHRIS: One day, I'll grow up. It's fine. I look forward to that day. But today, I don't think it's that day. Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Chris Toomey. STEPH: And I'm Steph Viccari. CHRIS: And together, we're here to share a bit of what we've learned along the way. So, Steph, what's new in your world? STEPH: Hey, Chris. Well, in some fun news, Utah started his professional training as of this morning, which I'm very excited about. Because we've been working with him to work on being good with walking on a leash, FYI, he's not, [laughs] and also being good about not jumping on people. And essentially, being a really good roommate. And he started training today, and we are using an e-collar, which initially I was really hesitant about because I don't want it to hurt him in any way. But now that I have felt the e-collar myself and we've had a first day with it, it's going super well. I'm very excited for where this is headed. CHRIS: That's very exciting. When does he start paying rent? STEPH: Ooh. I'll have to check with him, or I guess I have set those boundaries. That's my job. CHRIS: I just figured that's a core part of being a good roommate. But maybe we've got baby steps or doggy steps to get there. But that's exciting. I'm glad [laughs] that the first day of training is going well. STEPH: Yeah, it's going great. And the place that we're going to the trainer they have horses, and mules, and goats. And so now I have a very cute video of him trying to play with a goat, and the goat was having none of it. But it's still all very cute. In tech-related news, I have an update for when you and I were recently chatting about the RSpec focus and how I mentioned that I often forget to remove the focus feature from tests. And so then that goes up to a PR, and I have to rely on a kind human to let me know, and then I remove it. Or worst-case scenario, it gets merged into the main branch. And for anyone that's not on Twitter, I just wanted to share an update because I also shared something there. But the resolution for what I was looking for there's already a rule that's written into Rubocop, but it's specifically written in the Rubocop RSpec codebase. And with that rule, you can essentially just say, hey, let me know anytime that a test is using the focus metadata, and then make sure to let me know and fail. And then if you don't want to actually include all of Rubocop into your project because Rubocop is pretty opinionated, you can still add Rubocop to your project, but you can specifically add Rubocop RSpec, and then you can say, hey, all other rules disabled by default, but then you can enable that specific rule. So then, that way, you will catch all of your focus tests. There's also another approach that someone on Twitter shared with us recently from Marz Drel. And Marz shared specifically a really nice simple GitHub Gist that documents or exemplifies that you can add an environment variable that checks to say, hey, if we're in CI mode, then add a before hook. And then that before hook will look for any examples that are using that focus metadata, and then it's going to raise. And then if we're not in CI mode, then don't do anything, don't raise, and carry on. And that's just a really nice simple addition if someone didn't want to pull in Rubocop into their project. CHRIS: Both of those definitely sound like great options. I don't think we have Rubocop on the current project that I'm working on. But I think the RSpec focus thing, the metadata one, seems like it'll work great. More generally, I just want to thank folks out there who listen to the show and then write back in like, "Hey, this is probably what you want." There was a similar thread that someone shared around the RSpec::Retry stuff that I was talking about recently and the failure mode there and trying to get that into the Junit Reporter. And so they had some suggestions around that. Jason Rudolph on Twitter reached out, sharing just his initial exploration and thoughts on how it might be possible to extend the XML reports that are generated and capture a flaky test in that way. So that's really interesting. And again, just really love that folks are listening to the things that we say and then even adding on to them and continuing the conversation. So thanks to everybody for sharing those things. STEPH: Yeah, it's incredibly helpful. And then one other fun thing that I'd love to share, and I found this out from someone else at thoughtbot because they had shared it recently. But it's a neat website called soundofcolleagues.com. And I know you've got your laptop in front of you. So if you'll go visit it, it'll be neat to see as we're talking through it. For anyone else that wants to pull it up, too, we'll include a link in the show notes. But it's a neat project that someone started where you can bump up the sounds that you would normally hear in an office. So maybe you want to bump up background noise of people or an open window. There's one specifically for printers and a coffee machine, and keyboards are on there as well. [laughs] I have discovered I am partial open window and partial rain, although rain is just always my go-to. I like the sound of rain for when I'm working. CHRIS: Gentle rain is definitely nice white noise in general. I've seen this for coffee shops, but I haven't seen the particular one. Also, yes, I definitely know how to spell the word colleague on the first of three tries. Definitely didn't have to rely on Google for that one. But yeah, nice site there. I enjoy that. STEPH: I tried the keyboard option that's on there because I was like, oh yeah, I'm totally going to be into this. This is going to be my jam. I don't think it is because I realized that I'm very biased. I like the sound of my own keyboard. So I had to shush the other one and just listen to the rain and the open window. But that's some of the fun things that are going on in my world today. What's new in your world? CHRIS: I'm just now spending a moment with the keyboard sound. It's a very muted keyboard. I want a little more clackety. STEPH: A little more clackety? CHRIS: I was assuming it would be too much clackety, and that would be the problem. But it sounds more mushy. Maybe we can pipe in some of the sound here [laughs] at this point. Or we can link to these sounds, and everyone can dial up the keyboards to 100. But I, too, am partial to the sounds of my own keyboard. But what's new in my world? This past week and I think probably even a little bit more of the prior week, I've been noticing that I've been struggling to actually do any coding, which has been interesting to observe. And again, trying to observe it, not necessarily judge it, although if that's not the thing that we want to be doing, then try and improve that. But mostly trying to observe what's going on, what is taking my time. A lot of it is product management type work. So I am spending a good amount of time trying to gather the different voices and understand what is the work to be done, and then shape that into the backlog and make sure that that's clear and ready for the team to pick up. And then, thankfully, the other two developers that are working on the project are fantastically prolific. So they're often very quickly working through the work that has been set up in front of them. And so I'm trying to then be proactive and respond to the code. But there's almost a cycle to it where I'm just staying out in front of them, but they're catching up with everything that's going on. So it's something that I'm trying again to be intentional about, name, share some of that back up with the group. If there are things that I'm doing that I don't uniquely need to be doing, then let's share as much of that knowledge as possible. But one thing that I will say is the product management, shaping the backlog work is exhausting. I am astonished by just how drained I am at the end of the day. And I'm like, I don't even really feel like I did anything. I didn't write any code, but I am just completely spent. And there really is something to when the work is clear, just doing the work, I can actually find energizing. And it's fun, and I can get in flow state. And sometimes, I'll be drained in a certain way. But the work of taking a bunch of different slack threads, and communications, and meetings, and synthesizing that down, and then determining what the work needs to look like moving forward, and providing enough clarity but then not over constraining and not providing too much clarity. And there are so many micro-decisions that are being made in there. And I'm just spent at the end of the day, and I have so much...I've always had a lot of respect for product managers and folks that are existing in that interstitial space and trying to make sense of the noise, especially of a growing company, but all the more so this week as I've been feeling some of that myself. STEPH: I totally agree. I have felt that having a strong product manager really makes or breaks a project for me where even though having technical leadership is really nice, I'd prefer someone that's really strong at the product knowledge and then helping direct where the product is headed. That is incredibly helpful. Like you mentioned, the work is exhausting. There's someone that joined the thoughtbot team fairly recently, and I was chatting with them about what type of projects they would be interested in working on. And one of their responses was, "I'd love to work on a project with a strong product manager because I have been doing that a fair amount for recent years. And I would love to get back to just focusing on coding." And so I think they enjoyed some of the work, but they just recognize it's exhausting. And I'd really like to just get back to writing code for a while. CHRIS: Yeah, I'm definitely in that space. And I think there's a ton of value to spending a little bit of time, like having any developer at some point in their career spend a little bit of time managing the backlog, and you will learn a bunch from that. But I'm also in the space of I would love to just turn on some music and code for a while. That sounds fun. There's a lot of work to be done right now. I'd love to just be in there doing the work. But sometimes, out of necessity, the defining of the work is the thing that's important. And so, I think I've been correctly assessing the most important thing. And that that has consistently for a while now been the defining and responding to the work that's in process as opposed to doing it myself. But, man, I really hope I get to dive back into the code sometime and use my clackety keyboard to its fullest extent. STEPH: Have you found any particular strategies that really help you with the product management work? CHRIS: I will say that I think this is a competency. This is a skillset and a career path that...again, I've been at plenty of organizations that I don't think respected the role as much as it should be. But it's an incredibly hard role and multidisciplinary communication at the core of it. And so I don't think I'm great at it is the thing that I'll say. So everything that follows is just to be clear; I'm not saying that I'm great at this, but I have been doing some of it. So here are some thoughts that I have. I think a lot of it is in reaction to where I felt like the work was clear. So I have a sense of what it looks like when I can go to the backlog, trust that it is in a roughly solid priority order, pick up a piece of work and immediately go to work on it. And understand what are the end-user implications of this piece of work? Where would I start on it like, how technically? What's a rough approach that I would have? And getting that level of specificity just right. So it's not overconstrained, but it's not under constrained. So having experienced that on the developer side, I try and then use that to shape some of the guidance that I'm putting into, say, the Trello tickets that I'm writing up here. We recently introduced Trello epics, which is I want to say like an add-on. And that allows us just the tiniest bit of product management, like one level up. So instead of just having cards and a list that is like, here's the work to be done, we now have an epics list that is separate to it, and it links between a card and its associated epics. So it's like project and action within that project. And just that little touch of structure there has been really, really useful to help look at like, okay, what are the big pieces that we're trying to move? And then how do they break down into the smaller pieces? So a tiny, tiny bit of fanciness in our product management tool, not Jira-like not going in that direction yet for as long as I cannot. But that little bit of structure. And then thinking about what has been useful to me as I pick up tickets. And then, as always, trying to just always be cognizant of what is the user's experience here? What problem am I trying to solve for them? What is their experience going to be? How will they know how to work with this feature? And just always asking that and then framing the work to be done in the context of that. STEPH: I like how you're adamant about a little bit of fanciness but not all the way to Jira-like. I also like how you highlighted end-users. All of that, I think, is awesome when developers are able to expand their role to experience all the other facets of building software. CHRIS: Yeah, definitely. I think that whole list of all of the different facets of where our work interacts with different groups. The more empathy or, the more experience that you can have there, the better that you'll be able to understand how to communicate there, how to express things in terms, et cetera, et cetera. So a huge fan of all of those ideas. I am ready to just get back in the code for a few minutes, though. But for now, for as long as necessary, I'll do some of this work. But I am trying to find my way to other things. In terms of actual feature work that we're working on, one of the things that we're doing right now is restructuring our onboarding. So when a user comes and signs up to the website and then subsequently has to fill out a handful of other forms, there's actually an external system that we've been working with that houses some of the core data of our application. And they have a hosted application form. So we can send the user over to them, and the user fills out the rest of the application on this other system's site. And then they get redirected back to us. And everything's got nice DNS entries for a particular subdomain and whatnot. So it looks roughly consistent. There's some branding. But it's still someone else's UI, essentially. And we were feeling enough pain from that experience. We were like; you know what? It's time. We're going to bring this back in-house. We're going to do all the forms ourselves. We're going to do a nice progressive little progress bar. You can see all the steps as you're going through onboarding. We're just going to own that more because that's a core part of the experience that we're building here. So biting the bullet, deciding to do that. But there's an interesting edge case that we run into, which is we are using Devise for authentication. Totally makes sense. We're in Rails context; there we go. It's the thing to use. But Devise exists in truly the Rails world. So like HTML ERB templates, the controllers have certain expectations as to what's going on. So thus far, we've just let that exist in that world and everything else we're building in Inertia and Svelte. But we're just now starting to feel enough of the pain, and that Devise exists in this other context. And for a while, we just kept saying, "You know what? It's not worth the effort to port it over. It's fine." Because we're using Tailwind, we have a consistent design language that we can use across them. That said, the components are drifting a little bit. And it's like, oh, this one's got a rounded corner like this, and that one's got this color. And we don't have the disabled style. But it is nice that it's not completely distinct. But we have finally decided it is time. We need to port this thing over because we feel like the onboarding and authentication type flows; they're actually a big part of the user experience or at least the first run user experience when someone's signing up to our site. So we want to own that a little bit more. One of the things that I ran into as I was trying to introduce Mailcheck, which is a library that I've talked about, I think in a previous episode...but basically, you can have it observe a field and if someone types in like, user@gmaip.com, you can like, did you mean gmail.com? And then go from there. And I think there's more subtlety. They can maybe even look up MX records and things like that. But basically validate an email address heuristically and offer the nice, very friendly to a user, "Hey, did you mean this instead?" So not a full validation that says, "No, you cannot put your email address," because maybe you have a weird one that sounds like Gmail but isn't. But that's a little bit trickier to implement both on the Devise side and then in any other place that we have an email input. And so what we want to do is port over to Inertia and Svelte, and then everything's in our nice, happy context with all our components and all the other work that we're doing. And it really does just highlight how much I've come to enjoy working with Inertia and Svelte. They are fantastic technologies. And now I just want absolutely everything to be in them. So we're finally going to bite the bullet, and I think port those over a little bit after we get the current batch of work done. But soon, soon, that's the goal. STEPH: I'm having a bit of déjà vu where I feel like there was a project that you were working on that was using Devise, and then removing Devise and replacing it with something else was a challenge. Does that ring a bell? CHRIS: Yes, that is accurate. So I had a project that I worked on where we had both Devise and Clearance was actually what was going on. There were basically two different applications that existed; one was using Clearance, the later one used Devise. But then we folded those two applications back together. And by virtue of that, I tried to unify the authentication schemes, and it was like, nope, not going to happen. And then we didn't. STEPH: And then we didn't. [laughs] I like that ending. CHRIS: Well, sometimes you don't. [laughs] STEPH: Yeah, I love that ending because it reflects reality. Sometimes that just happens. In fact, I'm going to segue for just a moment because you're reminding me that there's something I don't think I've shared with you yet. On my previous project, there was a particular feature. It was a big feature that someone had picked up and worked on. And at one point, we were essentially playing hot potato with this feature because we hadn't gotten it to the point that it was merged. There was too much that was happening in that pull request, although then we ended up merging it. But then we found lots of bugs. And it was just one of those features that we couldn't really get across the finish line. There was always something else that was wrong with it or needed to be done or needed to be considered. And we'd reach that point where Chad Pytel, who is on the project, was like, "We're either going to finish this, or we're going to throw it away." And I felt a little guilty saying this, and I was like, "I vote we throw it away. I have lots of concerns about this. We are essentially reimplementing another complex workflow. But now, we are implementing it pretty differently in another portion of the application. It's going to be hard to manage. The cost of adding this and maintaining this is a really high concern." And so he talked with the rest of the team and came back, and he's like, "Yep, we're going to throw it away." And so then he issued a PR, and we removed it. And it was one of those moments of like; this isn't great because then we have invested hours into this, and now we are taking it away. But it also felt really good that that's always an option. And that was the better option because it was either we're going to continue sinking more time into this, or we can stop it now. And then we can move on to more important work. CHRIS: Sunk costs and all that. STEPH: Yeah. I feel like it's so rare when that really happens because then we just feel dedicated to like, well, we're going to make this valuable to somebody. We're going to keep this. And in this case, we just threw it away. It's very nice. CHRIS: There's a similar anecdote that I remember. Actually, I think it's happened more than once. But very particularly, we were working on a system. And this was with our friend, Matt Sumner, a friend of the show, as well been on a few times. And Matt was working on the project. And we got to a point where we had two competing implementations of a given workflow, and we were opting to go with the new one. But there were folks that were saying, "Let's keep the code around for the old one." And Matt was like, "Absolutely not. If we do that, we might go...no, this will be bad. Then we have to maintain that code. We need to burn the ships," as he said. And he actually named the pull request burn the ships where he just removed all the code. And I was like, I like your style, man. You made a decision here. We collectively made a decision. And then this is a classic Matt Sumner move. But he did the thing that we said we were going to do. And he just held that line. And I really appreciated it. And it's a voice that I have in the back of my head often now, which is just like, no, burn the ships. If we need it, it'll be in Git history. We can recover it. But it's going to need to be handled in the interim. We don't want to have to support that code right now and for however long until we actually decide to remove it from the codebase. So let's get rid of it. And if we really need it, well, then we'll resurrect it, but for now, burn the ships. And I like that. STEPH: I like that too. I think it's one of those areas where it takes experience to feel that pain too. If you're pretty new to writing code, you're going to think, well, we can keep it around. There's no harm. And so it often has to be that sage, that person who's been around long enough and felt some pain from making that decision in prior centuries or years. And he's like, "No, we're not going to do this." The WE collective of developers who have experienced the pain from this understand that that's not a good choice. And so we're going to burn the ships instead. But it is one of those that if you're newer, you won't think that way. And I think that's totally reasonable that you wouldn't think that immediately. CHRIS: I think that tacit knowledge that oh, I've gone through this before, and I've experienced the pain, and now let me tell you about that. And let me try and share that with you because there's always the cost-benefit trade-off. Because if that code stays in the codebase, then we know it works because we've kept it around for that whole time. And so there's a nicety to that, but there's a cost, that maintenance cost. And being able to express that well and being able to say, "I've been here, and let me tell you a tale," but do it in a way that doesn't sound overly condescending or explainy or things like that. I think that's a very subtle skill and a very important one, and frankly, really hard one to get right. I'm not sure I always hit the mark on that where I'm just like, "No, can't do it. It's bad." I think it's very easy to end up in a space where you're just like, "No, it's bad." And they're like, "But why?" And you're like, "Because it's bad. Trust me." It's like, well, I feel like you do need to be able to explain the stories, the experiences that you've had in the past, the anecdotes that you've heard, the blog posts that you've read that have really informed your thinking. But I think that is a big part of what it means to continue on in this profession and be able to do the work and make those subtle trade-offs, and the it depends because, at the end of the day, it all depends. STEPH: Or you just issue a pull request and title it burn the ships. [laughs] CHRIS: Burn the ships. Indeed, that is, in fact an option. And actually, while we're on the topic of pull requests, this might be a perfect segue into a listener question that we have. Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. CHRIS: As always, thanks to everyone who sends in listener questions. We so appreciate getting them. They help direct the conversation and give us something to chat about. So this question comes in from Bryan Robles. And Bryan writes in about large pull requests. And Bryan writes in with, "My toxic trait is large pull requests. Any tips on when you get into a place where you're fixing or refactoring something, and it ends up cascading to many more changes than you want it to? I sometimes can go back and break it up. But it's hard to recognize a good seam when you're in the thick of it." So, Steph, what do you think? Large pull requests and finding yourself in them after [laughs] certain amounts of time. STEPH: Yeah, speaking of that knowledge that often comes from experience, this is something that I'm certainly always striving to get better at. I think it does take practice. There are some things that I do that I can share. And I categorize them really into a before, and I guess midway. So there's the before I set sail and set off to deeper waters list that I will think through as I'm starting a new task, and then there's the I'm lost at sea. And then, I need to figure out how I'm going to organize this change. So in the first category, when I'm first starting off a task, I consider what sort of changes need to be made, and are there any obvious roadblocks? So an obvious roadblock may be changing or updating a model that has one relationship, and I need to change it to has many relationships. Or perhaps there's a part of the application that is untested. And before I make any changes, I need to document that existing behavior. And that really falls neatly within Kent Beck's advice where he said, "First make the change easy (warning: this might be hard) and then make the easy change." So I try to think upfront what are some of the small, incremental changes that I can make first that will then make the final change easy? And then I separate that mentally into PRs. Or I may separate it into tickets, whatever is going to help me stay organized and communicate how I'm breaking up that work. And then the other thing that I'll do is I'll consider what's my MVP? So what's my minimum viable pull request? What set of changes include just enough changes to be helpful to users or to other developers? Which, by the way, is also a helpful mindset to have when you're breaking down work into tickets. So, as an example, let's say that I need to fix some bad data that's causing a site to error. So my first step could be to write a task to fix the bad data. And then, step two, prevent bad data from being created. And then probably step three, I need to rerun the task to fix data that was created during step two. But I can think through each of those steps and separate them into different pull requests. And then there may also be the question of well, how small is too small? Like you're saying, what's a minimum viable pull request? How do I know if I am not delivering value? And that one gets a little trickier and vague. But ultimately, I will think, does it pass CI? Is this change deployable? And then I do have to define what value I'm delivering. And I think that's a common area that folks struggle because we'll think of delivering value as delivering a whole new feature or adding complete test coverage for an untested interface. But delivering value doesn't have to represent that end goal. It may be that you added one test for an untested interface. And that's still delivering really great value to your team, same for delivering a feature to a user. You may be able to speak with that wonderful product manager and find what's the smallest bit of value that you can deliver instead of the whole feature set? I think the smallest PR I can think of that I've issued is either fixing a typo or removing a focus metadata from an RSpec test. So that's my starting point. That's the before I set sail. Those are some of the things I think about. I have more for the I'm lost at sea. But what are your thoughts? CHRIS: First, that was a great summary that you gave. So I totally agree with everything that you just said. I think part of the question I would have...So Bryan wrote this in and described this as his toxic trait. So he's identifying this as something that seemingly consistently plagues him. So I would ask, is there a way that you can introduce something? Like, are there natural breaks in your day? And can you ask the question at those breaks? Like, hey, I've been working on a thing for a little while. Is there a version that I could...like, could I close off a body of work at this moment? When you break for lunch, if you go grab coffee in the morning, when you're leaving at the end of the day, use those natural breakpoints. I'm not sure exactly what you mean when you say large pull requests. But if those are spanning multiple days, in my mind, if anything starts to span more than a day, I will start to ask that question to myself. And that's a reflex that I built up over time by feeling the pain of large pull requests and putting it up, and feeling apologetic. And then having my colleagues gently, professionally kindly ask me to break it down into smaller pieces. And me saying, "I really don't want it. All right, fine, fine, fine, I'll do it." And then I do it. And it's one of those things that I never want to do in the first place, but I'm always happy to have done after the fact. But it is work. And so, if I can get better at pulling that thinking and pulling that question earlier in the process, that I think is really useful. Similarly, I will try to, again, as friendly as I can; if I notice someone mentioning the same body of work at stand up for a few days, I might gently ask, "Hey, is there a way that we can find a shippable version of a portion of that of a subset? Can we put it up behind a feature flag and get something out there just to try and keep the PR small, et cetera?" And so gently nudge in that direction. And then I think the other side of that is being very okay with one character PRs. Like, that's it. We changed one character. It turns out we need to pluralize that word, or we need one-line changes are great. That's fine. And more pull requests, in my mind, are better than fewer, larger pull requests. And so really embracing that and having that be part of the core conversation and demonstrating that throughout the team is a way to share this idea. So that's perhaps more in the process or person point of view on this as opposed to the technical, but that's part of the consideration that I would have. I am interested, and I'll bounce back to, Steph, what you were saying of now that you're out at sea, what do you do? STEPH: So I need to react positively to some of the things that you just said because you made me think of two things. One of them is I've never had someone say, "Hey, Steph, that PR is too small. Could you add some more changes to it? Could you do some more work?" I have had people say, "Hey, that PR was hard to review." But even then, sometimes getting that feedback from folks is hard because nobody really wants to say, "I had a hard time reviewing your PR." That's something that, over time, you may become really comfortable saying to someone. But I think initially, people don't want to say, "Hey, that was hard to review," or "There were a lot of changes in that. Would you break it down?" Because that's a lot of complex emotions and discussion to have there. But yeah, I just figured I'd share that I have never had someone complain that a PR is too small, and I've issued a single character change. And then I love, love how much you asked the question of what's the problem we're trying to solve? And so there's this ambiguous idea of a large PR. But what does that mean? What are the pain points? What are we actually looking to change about our behavior? And then how is that going to impact or benefit the team or benefit ourselves? And so, going back to the question of how do we measure this? How do I know I'm starting to break up my changes in a helpful way? We may need to circle back to that because I don't have answers to it. But I just really like asking that question. As for the I'm lost at sea part, or maybe you're not lost at sea, but you've caught too many fish, and the fish warden is going to fuss at you if you bring too many fish back to dock. I don't think this is a real nautical example. But here we are. CHRIS: Was that the fish warden? STEPH: Yeah, the fish warden. You know, the fish warden. [laughs] CHRIS: Sure, I do, yeah. Yeah, I know about that, well-versed in fish law. STEPH: [laughs] Got to know your fish law. If we're going to talk about pull requests, you got to introduce fish law. But I'm actually going to quote Joël Quenneville, a fellow thoughtboter, because they shared a thoughtful thread on Twitter that talks a lot about breaking up your changes and how to break up your pull requests and your commits. And I'll be sure to include a link in the show notes because it's really worth reading as there's a lot of knowledge in that thread. But one of the things that Joël says is get comfortable with Git, and it makes a world of difference. In particular, you want to get really good at git add --patch, git reset, and git rebase interactive. And that is so true for me. Once I have gotten really good at using those commands, then I feel like I can break up anything. Because often when I am helping someone break something up, it's often they want to, but they're like, "I don't know how. And this is going to take so much of my time. It doesn't feel efficient and the right thing to do." And they're probably right. If you don't know how to break it up, then it may take you too long. And maybe it's not worth it at that point. But if you can ask a friend, and they can help walk you through this process, or if you can learn on your own, that's going to be a game-changer because you will start to think about how can I separate these commits? And I can reorder them, and then issue separate PRs, or just keep them in separate commits, whatever process you're looking to improve. In fact, there's a really great course on Upcase called Mastering Git written by someone who is co-host of this podcast. And it has a lot of great videos and tutorials that will help you get really good at these Git commands and then will help you split up your commits. CHRIS: Oh yeah, I did do that. Warning: it's like three and a half hours long. But it is broken up into, I believe, 10 or 11 videos. So you can find just the ones that you want. There's a couple in the middle that I think are particularly useful talking about the object model of Git. Git is weird, unfortunately. And so I spent a bunch of time in that course. Also, thank you for the kind words, Steph. [laughs] But I spent a bunch of time in that course trying to make Git less weird or understandable. If you look under the hood, it starts to make more sense. But if you really want to get comfortable with manipulating Git history, which I think is a really useful skill for this conversation that we're having, that's the only way I found to do it, just memorizing the steps. It's always going to feel a little bit foreign. But once you understand the stuff under the hood, that's a really useful thing for being able to manipulate and tease apart a pull request and break it into different things, and port things from one branch to another, and all those fun activities. Yeah, man, that was a bunch of years ago too. I wonder what I look like in it. Huh. STEPH: I really liked that episode, the one you just mentioned, the Git Object Model. Now that you've mentioned it, I remember watching it, and it's very interesting. So yeah, thank you for making all this helpful content for folks. There's also a blog post that we can include in the show notes as well that is a really nice overview of using git interactive, and rebase, and squash and amend those types of behaviors as well. So will be sure to include both so folks can check those out. And then to round things out, one of the other things that I will do is I will ask a friend. I will ask someone for help. So we've talked about some of these behaviors, or some of these processes that we have are really built up from experience and practice. And you can watch a lot of helpful content, and you can read blog posts. But sometimes, it really just takes time to get good at it. I know, as I'd mentioned earlier, I am always still looking to improve this particular skill because I think it's so valuable. And one of the ways I do that is I will just phone a friend. And I'll say, "Hey, can we chat for a bit? I would like to show you my changes. I want to hear from you if you see something in here that's valuable that you think can be shipped independently, so that way we can get it delivered faster." Or it may be a change that's just like a test improvement or something. And we can go ahead and get that immediately released to the team, and it will benefit them. Or you may want to do this at the start of a ticket. If I am new to a project or when I am new to a project, I will often ask someone to break down a ticket with me if I'm feeling a little bit uncertain. Or just say, "Hey, do you see any clean lines of division here? I feel like there's a lot in this ticket. You're more familiar with the codebase. What would you ship? How would you ship this incrementally?" and have someone else walk through the process with you. CHRIS: Yep, the phone a friend and/or, as always, pairing is a wonderful tool in these sorts of situations. The one other thing that comes to mind for me is part of the question was about sometimes it's difficult to find a clear parting line within a larger body of work, within a larger change. And that can definitely be true. I think there are certain standouts of like is this a refactoring that can be shipped separately? Is this a test change that would be useful on its own? Is there a model change that we could break out and have just that go out? So there's a bunch of mechanical questions that we can ask and say; here's categories of things that might fit that bill. But to flip this to the other side, the question was asked by Bryan very much as an I struggle with this thing. This is my toxic trait is the phrase that he used, which I thought was really interesting. And that can be true. This can be something that if you're consistently and uniquely within the team producing these giant PRs and then folks find that difficult to review, then I think that is absolutely something to work on. But if this is something that is happening between members like, other members of the team are also finding that they keep ending up with PRs that are bigger than they expected and taking longer and harder to review, there is a question of is the codebase actually in a shape that makes it harder to do small changes? There's the phrase shotgun surgery, which refers to a codebase that is so entangled and coupled that any change requires modifying ten files just to make one small alteration. And I think that's a worthwhile question to step back and ask, actually, is it not me? Is it actually the codebase? It could be both certainly. But there is a version of your codebase is coupled in a way that means that any even small, tiny change requires touching so many different places in the code. And if that's true, that's at least worth naming and worth highlighting and maybe talking about in retro and saying, hey, this feels like it's true. So maybe we start to get intentional about refactoring, and breaking out, and starting to add those dividing lines within the code such that hopefully, down the road, small changes can, in fact, be small changes. So that is the one last thing that I would consider here. Also, anecdotally, this is just a thing that came to mind. As I've worked with strongly-typed languages, systems that have a compiler, and have a type system, and the ability for the compiler to keep an eye on the whole codebase, I've noticed that it's very easy to do this sort of thing where I just start with one small data model change, and then the compiler is like, oh, you got to go fix it here, and here, and here, and here. And I found that because the compiler is your friend and will just point you to all the places you need to make the change, it is very easy to just keep going because some of that mechanical work is happening on your behalf. And it's a wonderful facet of typed languages and of having a compiler and being able to have that conversation with the compiler. But I found that for me, it is much easier to end up in this mode where I'm like, oh no, this PR is way too large. When I'm working in a system that has types, that has a compiler, that frankly makes it a little bit easier to chase down all the places you need to make a change. So that's also a consideration. It's not necessarily a good or a bad thing, just something that I've observed that feels like it's adjacent to this conversation. But yeah, I think those are my thoughts. STEPH: Yeah, those are great points. I've certainly worked on projects where that felt very true where it's a small change, but it would cascade throughout the project. And all the changes were necessary. It wasn't something that I could split into smaller PRs. So checking if it is the codebase that's really making it hard to have small PRS is a really great idea. CHRIS: Who'd have thunk such a little question could get us rambling for so long? Oh, wait, I would have thunk that. STEPH: And so far, reflecting on the things that we've talked about so far, I think I've talked a good game of where I'm saying, "Oh, I identify the seams upfront, and then I organize and create different tickets." And that is very much not the case. That's the really ideal outcome. But often, I am in the thick of things where like you just said...and it's this moment of, oh, I've done a lot in this PR. And how can I break this up? And that does take time. And it becomes a conversation of trade-off, which is why those Git skills really come in handy because then it will lower the cost of then splitting things out for others. But for people that are struggling with creating smaller PRs, I do think it's very fair to ask your team for help. I think it's also fair that if you issued a large pull request and folks have already reviewed it, and it's gotten approved, and someone makes a comment like, "Oh, this would be great as two PRs instead of one," to say, "Awesome, thank you for letting me know. I will take that forward with me, but I'm not going to do it for this PR." I wouldn't recommend making that a habit. But just know that that is something that you can say to someone to say, "I think this one is good to go at this point. But I will keep that in mind for future PRs. And I may even reach out to you for help if I feel like I'm having trouble splitting up a PR." And bring that person into your progress and use them as an accountability buddy. They can be someone that helps you down that path towards smaller PRs. CHRIS: Yeah, I definitely agree with that, although it becomes a very subtle line. Saying, "Thank you, but no thank you," in a pull request or to feedback is delicate. It's difficult. That's a whole thing. But I agree there have been times where I have either been the one making that decision or suggesting that or being like, "We probably should have broken this up. But we're far enough along now. Let's get this merged. And then we'll iterate on it after the fact." One last thing, actually. I thought I was done, but I have one more thing, which is I feel like there's a strong parallel between test-driven development and this question in that, often, I hear folks saying, "I don't know how to write tests upfront. I don't know how to do that. I know after the fact I can write tests, and I can add them after." And that can definitely be true. It can become more obvious after you've written the code how you could then write a test that would constrain that behavior that would interact with the system. But I think the useful thing that you can do there is take a moment and pause there and say, "Okay, now that I have written the test, what would it look like if I had written this in the first place?" Or if you really want to go for it, throw away the code, try again. Start with the test first and then rebuild it. That's maybe a little much. But that thing of taking these moments of maybe you don't know upfront how to break the work into smaller pieces, but then you get to the end, and you have that conversation with someone. And they highlight where some parting lines would be, or you figure it out after the fact. Stay there in that moment. Meditate on it a bit and try and internalize that knowledge because that's how moving forward, you might know how to do this in the future. So take those moments, whether it be with TDD or with pull requests, or breaking up a ticket into smaller tickets, anything like that. And spend a moment there and try and internalize that knowledge so that you have it proactively moving forward. STEPH: You know how Slack has status? I really like the idea of there being a status that's meditating on...and you can fill it in. And the example that you just provided, meditating on splitting up a pull request or meditating on how to write a test first, [laughs] I think that would be delightful. CHRIS: I, too, think that would be delightful. But with that long, adventurous answer to what seemed like a simple question, and they always do, but here we are, shall we wrap up? STEPH: Let's wrap up. CHRIS: The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes, as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeeeeee! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

The Bike Shed
309: Naming the Change

The Bike Shed

Play Episode Listen Later Sep 21, 2021 35:28


Steph talks about a new GitHub feature and Twitter account (@RubyCards (https://twitter.com/RubyCards)) she's really excited about and Chris talks about his new job as a CTO of a startup and shifting away from writing code regularly. GitHub (https://docs.github.com/en/codespaces/developing-in-codespaces/web-based-editor) RubyCards (https://twitter.com/RubyCards) Resilient Management (https://resilient-management.com/) The Manager's Path (https://www.amazon.com/Managers-Path-Leaders-Navigating-Growth/dp/1491973897) Transcript: CHRIS: Oh God, my computer is so stupid slow. I need a new computer. STEPH: Come on, little computer, you can do it. You know you could just buy a new one. You don't have to wait for the fancy-schmancy M1. CHRIS: I want to wait for the fancy. I want it so bad. STEPH: [laughs] CHRIS: Do you know how long I've had this computer? And if I can hold out one more month, I want the fancy stuff. I've waited this long. Why would I give in now when I'm right on the cusp of victory? STEPH: One more month. I'm going to send you...as a kid, did you ever make those construction… CHRIS: Oh yeah. STEPH: They look like chain links bow construction paper. So we would make those for a countdown to special days. I'm going to send you one that's all crumpled and folded in the mail. It would be delightful. And you'll be able to snip off a little chain each day as your countdown to your new fancy-schmancy. [laughs] CHRIS: I love it. Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Chris Toomey. STEPH: And I'm Steph Viccari. CHRIS: And together, we're here to share a bit of what we've learned along the way. So, Steph, what's new in your world? STEPH: Hey. Well, I just got back from vacation. So getting back to work is what's new in my world. And vacation is nice. I miss it already. But it's also nice to be back, and see everybody, and see what they've been up to. CHRIS: I've heard wonderful things about vacation. STEPH: Yeah. Have you had one recently? I know you've been quite busy. CHRIS: I have. I think it's hard to tell, especially because everything just kind of blends together these days. But I think I took off a few days recently. I haven't had an extended vacation since much earlier on in the summer, I think. And so I think I'm due for one of those sometime in the not too distant future. But it's one of those things where you got to plan it. And you got to think ahead, and I haven't been doing that of late really with anything. So kind of living for the moment, but that's not how you take a vacation. So I got to rethink some strategies here. [chuckles] STEPH: Yeah, I've been trying to schedule more vacation time just further out. Because then if I don't want to take it, like if I decide that I don't want the staycation or I don't need the day off, then I can just change my mind, and that's pretty easy to do. But I'm like you; if I don't plan it, then I don't feel like I have the energy to plan a vacation, and then it just doesn't happen. So I know that's one thing that I've been doing. I've also been mentoring or coaching others, just checking in with them to say, "Hey, when's your next vacation? Have you scheduled any days off? Do you want to schedule a day off next month?" And saying that to other people has also been a very helpful reminder to me to do so. CHRIS: Oh, I like that a lot as a recurring one-on-one question of, so what can you tell me about vacation? What do you got in the works there? Because that's the most important thing, [chuckles] which it kind of is. It's the way that we keep doing the work that we do. STEPH: And I think so many people just haven't been taking a vacation. I mean, in 2020, we were all locked in and going through a pandemic, so then a lot of people weren't taking those breaks. And so part of it is just reminding people that even if you can't go somewhere, still please take some downtime and just know that you can step away from work and should step away from work. But for us, we did go somewhere. So we went out to Seattle, which I've never...I've been out to the West Coast, but it's more like I've been out to L.A., Santa Monica. But this time, we went to the Northwest region. We went to Seattle, and we explored and did a lot of hiking and camping around the Northern Cascades and then Mount Rainier. And both of those are amazing. And I've never flown with camping gear, but that went really well. It worked out nice. We had an Airbnb every so often just for showers and having a roof over your head. That's really nice. But for most of the trip, we did a lot of camping and hiking. CHRIS: That sounds like an awesome trip. STEPH: Yeah, it was really cool. I'd love to go back to the Olympic National Park because there are just so many national parks that are around Seattle and in Washington that we couldn't begin to do it all. But Olympic National Park is still on my list. And I'm really grateful to have also seen the Northern Cascades and Mount Rainier. But switching gears a bit, I have something that I'm really excited to share with you because I don't think you've seen it yet. I'm excited to find out if you have. But it's a new GitHub feature that came out, I think about a month ago, but there doesn't seem to have been much fanfare from GitHub about announcing this new feature. And I happened to find out through Twitter because someone else found it, and then they were really excited. And so now I think it's really gaining some more traction. But it still seems like one of those sneaky feature releases, but it's really cool. So GitHub has added the ability to open up a web-based editor that allows you to view the source code for a repo, view it in syntax, highlighting, make a code change, and commit the change. And it's free for everybody. And there's a couple of ways to get there, but I'll pause there. Have you seen this yet? Have you interacted with it? CHRIS: I think I've seen it and poked around ever so gently with it. I want to say this is GitHub Codespaces. Is that the name of this feature? STEPH: Yep. That's it? CHRIS: Yes. I poked around with it just a tiny bit, and I'm very excited about it. But it's very much in the like, huh, okay, cool; I'll look at that someday down the road and figure out what I want to do with it. But have you actually dug into it particularly deeply? STEPH: I used it to make a change for a personal project, just because I wanted to see the whole flow. So I went to a personal project, and there are two ways that you can open it up for anyone that hasn't seen this yet. So you can either press the period button that's on your keyboard, and that will open it up, or you can just alter the URL. So instead of github.com, replace that .com with .dev, and then that will also open up the browser. And so I made a change to a personal project, and it worked really well, and it commits the change to main. And it was nice. It was easy. In my case, I was just making a change to make a change. I think I actually went to an older project where I was still using the underscore target to force users that when they clicked on a link that it opened a new tab, and I was like, perfect. This is a good thing to just change. And I could do it from my iPad. I didn't have to be at my computer. And it was really nifty. I was very impressed with it. And they also mentioned that it's very easy to integrate your own VS Code settings and environment. I'm not a heavy VS Code user, so I haven't tried that. But I've heard really positive things about how easy it is to sync your settings between your local VS Code and then GitHub's editor. But overall, it was really easy to use. CHRIS: That's super cool. My very limited understanding of it is like GitHub has had the ability to edit files and things like that for a while. But it was very much like a simple web editor where it's a big text box that happens to contain the code. And they've added some stuff for like browsing with syntax highlighting and even some context-aware show usage and things like that. But as far as I understand it, this is like a whole VS Code instance in the cloud that is running it. And then I think what you're saying about you can have your VS Code settings in there, but even your project settings and the ability to run the tests, I'm not sure where the edges of it are. But my understanding with Codespaces it's like this is how your team can develop. Everyone gets one of these Codespaces. You're developing in the cloud. But it does VS Code remote sync type stuff. I'm very intrigued to see where it goes and that idea of...obviously, I like Vim. That's the thing that's probably known and true about me. So I will probably be one of the later adopters of this. But the idea of being able to bottle up the development environment for your projects and have those settings, and the ability to run the test and all of that packaged up as part of the repository, and then allow people to run with that, especially in the cloud, and be able to carry that with them as they move around, that's really intriguing. And the idea of having this very easy on-ramp, especially for open-source projects and things like that. If you want people to be able to contribute easily but with the linting, and the configuration, and the settings, and all the stuff, well, now you can have that packaged up. And that is very interesting to me. So I'm super intrigued to see where it goes. Again, I will probably be one of the later adopters of this platform for reasons. But I am super interested, and I continue to like...the work with VS Code is so interesting in the way it keeps expanding out and the language server stuff and now the Codespaces stuff. And it's super interesting developments across the board. STEPH: Yeah, I'm with you. I don't actually see this replacing my current development that I do day-to-day, but it's more generally nice to have access. So if I needed to make a change and I don't have my laptop or if it's just something small and I don't want to have to go through…I guess essentially, if I don't have my laptop, but I wanted to make a change, then I could do this realistically from something that doesn't have my full local dev setup. I don't know if you have the ability to run tests. I didn't explore that far as to whether you can actually have access to run those types of commands or processes. I did see some additional notes while reading through GitHub's documentation about this new editor. And they included some notes that talk about how the editor runs entirely in your browser's sandbox. So it doesn't actually clone the repo, but instead, it loads your code by invoking the services API directly from the browser. So then your work is saved in the browser's local storage until you commit it, and then you can persist your changes by then committing it back to the repo. And because there's no associated compute, you won't be able to build and run your code or use the integrated terminal. Ah, I think that actually answers the question about running tests. So only a subset of extensions can run in the web will appear in the extensions panel and can be installed. So this does impose certain limitations for particular programming languages and full functionality, things that we may need like running tests. CHRIS: Interesting. That now puts it back more on the uncanny valley for me where it's like, oh, it's just VS Code, except it can't do a bunch of the stuff. So yeah, I'll probably be hanging out in Vim for a while. But again, I'm super interested to see where they can push this and what the browser platform allows, and then how they're able to leverage that and so on and so forth. STEPH: There is one flow that I was testing out because I was reading someone else mentioned that not only can you use this for looking at source code and then changing that source code but also for a pull request. And so I went to a pull request and changed the URL to dev. And I do have the ability to make changes, but I'm not quite sure if I could commit my changes and if that would go to the branch or how that would work. It wasn't obvious to me how I could save my changes. But it was obvious to me that I could make changes. [laughs] So that part feels weird to me, and I will have to test that out. But I'm going to wait until I have my own PR before I start fooling around [laughs] so I don't ruin somebody else's PR. CHRIS: Ideally, the worst case is you just push commit to a branch, and commits are reversible. You can throw them away. You can reset, and you can do all sorts of stuff. But I agree with you that maybe I'll do this on my home turf first before I start messing around with somebody's PR. STEPH: That way, someone doesn't reach out to me and say, "Steph, what is this commit that I have on my PR?" And I'm like, "Oh, I'm just testing." [laughs] But that's something that I was excited to talk about and share with you. What's new in your world? CHRIS: Well, what's new in my world? I think we've talked about this a little bit, but to give a little bit of context on what's new in my world, I joined a startup. I am now engineer number one. I'm also CTO, a very fancy title, but again, I'm the team of one, so count it as you will. But we do have some consultants working with us. So there is a small team that I am managing, and very quickly, I found myself shifting away from the code or having to balance that trade-off of maker versus manager time. Like, how much of the time am I actually coding and shipping features versus managing and communicating, and trying to figure out the work to be done and triaging the backlog? And all of those sorts of things. I've also just been coding less, and I think that's a trend that will almost certainly continue, and I'm intrigued by that. And that's a thing that I want to poke at just a little bit. And then I've also noticed that my work has become much more reactive than it used to be, where there are lots of things in Slack. And there's stuff that I'm kind of the only person that can do certain things because I have certain access levels and yadda yadda. And I want to make sure other folks aren't blocked. So I'm trying to be as responsive as possible in those moments. But I'm also struggling with that that trade-off between reactive versus proactive. My ideal version I think of the work is gather all of the information, all of the different permutations, and what are all the features we want? And then I think about them holistically, and then I respond once solidly as opposed to little one-off interactions and things like that. So there are just a lot of subtle differences. And I think there are trends that will continue. And so I'm trying to just take a step back, observe them from a distance and say, "How do I feel about these?" But probably most interesting to me is the moving away from code. Have you noticed that at all in your work? Or is that something you've thought about, something you'd be interested in, opposed to? How do you feel about that space in the coding world? STEPH: That is a wonderful question. It's one that I have wrestled with for a while because I really love my current position. I love being a team lead because I feel like there's this wonderful balance between where I get to code a lot of the time, but then I also get to learn how to be a manager, and help those around me, and provide some coaching or mentoring or just help people find the resources that they need essentially. And I really like that balance. That feels like the right balance to me, where I still get to grow in both areas. But then, as you'd mentioned, it still feels like one tries to take over the other with time. Like you find that more responsibilities are growing as CTO of the company. And so you feel more responsible to do more of the managerial task or unblocking others and taking on that role, and then that reduces your time for coding. And I often find myself in that space where I think it's just how I'm wired. I'm very interested and empathetic towards how people are doing and how they're feeling. So I'm always looking for ways to support others and to help unblock them and make sure that they're having a very positive experience with our project. And so then that may mean I'm coding less because then I'm more focused on that. But then, it's still also a very valid part of my job to code. So finding the right balance between those is frankly hard. To answer your other question, I don't think I want to give that up. I've considered for myself if I'm going to head towards more of a manager path, and I'm going to reserve the right to change my mind. But currently, I still like maintaining most of my individual contributor status with a dash of management sprinkled in there and then some responsibilities for making sure that the team is doing well and that people are enjoying their work. Along that line, as I've been having conversations with others around, tell me more about your job as a manager, and what does that look like? What responsibilities do you have? How much coding do you still get to do? There have been a couple of books that have been recommended to me that really help someone define are you interested in management? Is that a place that you see yourself going? This is really an honest look at what it means to be a manager. The fact that a lot of your fulfilling work isn't necessarily work that you get to produce, but it's actually helping someone else produce that work and then getting to see them succeed. That is your new fulfillment or a big part of it. So you are losing that closeness of being a maker,, but instead, you are empowering someone else to be the maker, and then that becomes your win. And that becomes an indication of your success. Versus as an individual contributor, it's really easy to see our wins in a different light: how many tickets have we addressed? How many PRs have we reviewed? That type of work. So there is an interesting dichotomy there, and I can't remember the books off the top of my head, but I will find them and I'll add a link to them in the show notes. CHRIS: Yeah, definitely interested to see the book recommendations. And generally, yeah, everything you're saying makes sense to me. I think I'm somewhat on the adventure right now. I very much intentionally chose this, and I want to lean into it and explore this facet of the work and doing more of the management and leading a team. But I have to accept that that comes with letting go of some of the individual contributor parts. And I was coding a bit over the weekend. I was just rediscovering the flow of that. And I was like, oh yeah, I really like this. Huh, that's interesting. What am I going to do with that? But I think, again, it's an exploration. And there are facets of both sides that I really like. And I've spent a lot of time deeper in the individual contributor side. And I've explored the manager side somewhat but not quite as much. And so this is very much about that I want to push on those edges and try and find what feels true to me. So the moving away from code and then moving more into management, I think I like that overall. Although I know there's the small amount in the back of my head that I'm like, I know there's a cost there. That is a trade-off. And so do I find more time in my evenings and weekends to do personal coding projects and things like that just to have that enjoyable work for myself? The maker versus manager stuff is interesting, though, where my day is now split up into smaller pieces. And even if I'm not coding, there's still writing up docs, or there are things that still require structured blocks of time. And my day is now just sprinkled with other things. And so trying to find that heads down of I want to just do the work right now, and I want to think hard about something is just fundamentally harder to do with more meetings and things speckled throughout the day. So that's one that I think I just don't like overall. But it's sort of a trade-off inherent to the situation. So I think there's also a version of trying to be intentional about that and saying, you know what? I need some heads-down time. And so Tuesday and Thursday afternoons those are going to be mine. I'm going to wall those off on my calendar and try and protect that time so that whatever necessary heads-down work that I need to do this week fits into those blocks of time and then fit the rest of things around that. But I think I have to make that intentional choice to do that. Mid-roll Ad And now we're going to take a quick break to tell you about today's sponsor, Orbit. Orbit is mission control for community builders. Orbit offers data analytics, reporting, and insights across all the places your community exists in a single location. Orbit's origins are in the open-source and developer relations communities. And that continues today with an active open-source culture in an accessible and documented API. With thousands of communities currently relying on Orbit, they are rapidly growing their engineering team. The company is entirely remote-first with team members around the world. You can work from home, from an Orbit outpost in San Francisco or Paris, or find yourself a coworking spot in your city. The tech stack of the main orbit app is Ruby on Rails with JavaScript on the front end. If you're looking for your next role with an empathetic product-driven team that prides itself on work-life balance, professional development, and giving back to the larger community, then consider checking out the Orbit careers page for more information. Bonus points if working in a Ruby codebase with a Ruby-oriented team gives you a lot of joy. Find out more at orbit.love/weloveruby. STEPH: Your mention of having more meetings really resonates with me. And it also made me think of a recent episode of a new TV show I just started watching. Have you seen the TV show called Schmigadoon!? CHRIS: I have indeed. STEPH: Okay. We need to have a whole conversation about Schmigadoon! in an upcoming episode. I'm very excited about this show. It's delightful. [laughs] There's a particular line that Keegan-Michael Key says that I just love so much where he says that he became a surgeon because he wanted to help people without talking to people. And I was like, oh, that's a developer. [laughs] I'm the same way. And I really enjoyed that. Although I do like talking to people but still, it just made me think about when you're talking about more meetings and then increasing the amount of talking that needs to be done as you progress into more of a management role. Also, circling back, I really like what you said earlier about you're noticing the changes that are happening. You're letting those changes happen, and then you're reflecting on how you feel about it. I really like that approach. Do you think that's working well for you? Does it feel too loose because then you don't feel in control enough of those changes? Or do you actually feel like that's a really good way to explore a new role and then find out if you like those changes? CHRIS: Now that you are restating it back to me, I'm like, oh yeah, I guess that is a good way to do things. But to clarify, I'm not doing nothing with it. I am trying to proactively, where I can, structure my days and do things like that or recognize that right now, I'm probably not the right person to be moving code along. And so I'm saying okay, that is true. And I'm actively choosing to not pick up the bigger pieces of work or to pair with someone else so that they can then run with it but not having me being the person that owns it. So it's not completely letting it happen, but it is almost like meditation to invoke that idea of I'm observing that I'm having these thoughts, and I'm just going to let them go. And it's more about the thinking and the response to it. So I'm trying to name the thing and be like, oh, this is interesting that this is happening. And I'm noticing an immediate visceral reaction to it where it's like, you're taking away my coding? And I'm like, well, hey, it's not them, it's you; you chose to do this. But let's just spend a minute there. That's okay. How do we feel about this? And so it's trying to not have it be a purely reactive response to it but have it be a more intentional, more thoughtful, and more observing, and then giving it a little bit of time to ruminate and then see a little bit more what I think. And also, some of it is purposefully pushing myself out of my comfort zone. I think I'm happy, and I do a reasonable job when I'm the person moving the code along. But I also have really enjoyed being at the edge of an engineering team and working with sales or working with other groups and facilitating the work that's happening. And so, if I explore that a little bit more, what's that going to look like for me? So this period of my career, I'm very intentionally trying to do stuff that I'm like, well, this is a little bit different for me, or this is stretching a little bit, but that is the goal. And I hope good things will come out of it across the board. But it may be that I find like, you know what? Actually, I really miss coding, and I need to find a way to restructure that. And I have seen examples of individuals who are even in CEO positions that are like, no, no, no, I still make some time to code. Like Amir, the founder of Todoist talks regularly about the fact that he is a CEO who still codes. And that organization has a very particular approach to work. And they're very much about async remote, et cetera. So having these blocks of times and being intentional about how they work. So it's not surprising that he's been able to do that and a purposeful thing that he's structured. I don't think that will make sense for me immediately. But I could see a version down the road where I'm like, this is who I am. I need to get this thing back. But for now, I'm purposefully letting it happen and seeing how I feel from there. Also, as I'm saying all of this, it sounds like I'm totally on top of this and really thinking it through. I'm like, no, no, no, this is in the moment. I'm noticing some stuff and being like, oh, okay, well, that's interesting. And some of it I intentionally chose. Again, intentionally chose to get out of my comfort zone. So I think I'm just actively out of my comfort zone right now and saying things about it. And then I think I'm telling the story of how I want to respond to it moving forward but not necessarily perfectly achieving that goal immediately. STEPH: I think that's a nice representation of essentially how you and I have processed things. We've highlighted before that you and I...it's funny, I just made the joke about not talking to people, but it's how I actually process stuff. And the best is when I'm talking out loud to somebody else. And so it totally makes sense that as you were noticing this and reflecting on it, that then this is another way that you are then processing those changes and reflecting on it and thinking through is this a good change? Is it something that I'm going to enjoy? Or am I really going to miss my street coding creds? I need to get back to the editor. CHRIS: I just need that precious flow state that comes from drinking some Mountain Dew and coding for hours. STEPH: Do you drink Mountain Dew? CHRIS: No, I gave it up years ago. STEPH: [laughs] CHRIS: I don't drink soda broadly. But if I'm going to drink soda, it's going to be Mountain Dew because if we're going to do it, let's do this thing. I'm pretty sure that stuff is like thermonuclear, but that's fine. STEPH: [laughs] That's funny. I know we've had this conversation before also around Pop-Tarts where you're like, hey, if I'm going to have a Pop-Tart, I'm going to have the sugariest (Is that a word - sugariest?) Pop-Tart possible. CHRIS: To be clear, that means it has icing on it because some people in the world, namely you, would prefer the ones without icing. Although we recently learned that the ones without icing have a higher fat and calorie content, so I don't know. The world's murky. I wish it were all just clear, and we could just work with it. But it turns out even Pop-Tarts icing versus not is not a simple question. STEPH: It's a very simple question. You just need to be on the right side, which is the non-frosted side. [laughs] I can simplify this for you because fat is delicious. Fat trumps sugar; that's my stance. That's my hot take. CHRIS: I'm saying both, a little from column A, a little from column B. You got yourself a stew. STEPH: [laughs] You got a fat sugar stew. CHRIS: Yeah. That was in Arrested Development. All right, we're veering way off course now. [laughter] To bring it back, what you were highlighting of I'm definitely someone who thinks through stuff by talking out loud, and so it's been wonderful. I've learned so much about myself while talking to you on this podcast. I'll say something, and I'll be like, wait, I actually believe that thing I just said. This is fantastic. Now I can move forward with the knowledge that I've just gained for myself by talking about it on a podcast. So highly recommended: everybody should get a podcast. STEPH: Plus one. I also have a very real, maybe silly, follow-up question for you as we are, like you just said, exploring the things that we believe or not. My question for you is part of the transition to management and moving away from coding. Isere some fear in the back of your mind where you're like, if I stopped coding, I'm going to lose this skill? CHRIS: Honestly, no. And I feel kind of bad saying that because I feel like I should say, "Yeah, I feel like it'll fade away and whatnot." But I think I have an aptitude and an interest towards this work. And if I were to ignore it for two years, then frankly, I also know myself. And I'm still going to keep an eye on everything for a while. So I think I'll be aware of what's going on and maybe just haven't spent as much time with it. But I think if I need to two years from now, I'm like, all right, I got to rebuild my coding muscle. I'll skip a couple of JavaScript frameworks, which will be nice, and I'll be on to the 15th iteration that's new now. But I hope that I could revisit that not trivially, not with no effort. It's the wonderful nature of coding. It's one of the things that I love about it so much is that there are blog posts and YouTube tutorials. And it's so individually discoverable that I'm not really worried about that aspect. My concern, if anything, isn't so much that I'm going to lose my skills or not be able to code anymore; it's that I really enjoy coding. It's a practice that I find very enjoyable. A workweek is enjoyable when it contains big blocks of me putting on my headphones, listening to music, and digging into a problem, and then coding and producing a solution. And those tiny little feedback loops of test-driven development or running something and then going to the browser and clicking around like that, there's a directness there that has always really worked well for me. And so the more I'm abstracted away from that sort of thing, and the more of my work is I'm helping a team, and I'm directing strategy, or whatever it is, that just feels so indirect. And so I'm very interested to find out how I respond to that sort of thing. I've definitely enjoyed it in the past, and so that's why I'm intentionally leaning into it. But I know that I'm giving up a part of the work that I really love, and giving up is too strong of a word as well. I'm going to find what shape makes sense moving forward. And I expect I'll still be pairing with the other developers on the team and helping to define architecture and things like that. So it's not like it's 100% gone. But for now, I think the world where most of my week was spent coding is no longer the case. And so just naming that and being intentional about it. And yeah, that's the game. STEPH: Cool. Yeah, that makes a lot of sense. I was mainly interested in that question because that is a question that I've asked myself from time to time that I think I do have that worry that if I step away from coding for too long, then it won't be easy to jump back into. And I've talked myself out of that many times because I don't think it's true for all the reasons that you just said. But it is something that I have considered as like, well, if I take this leap of faith into this other direction, how easy is it for me to get back if I decide to change my mind and go back to being more of an individual contributor? And one other thing that weighs on me as I'm splitting my time between two areas that I really want to grow…So I'm constantly trying to grow as a developer. I'm also trying to grow as a manager, and I don't want to do a bad job at either. I want to do a great job at both, and that's frankly not always possible. And at times, I have to make trade-offs with myself around okay, I'm going to focus a little heavier this day or this week on being a really great manager or focus a little bit more on being a developer and to pick and choose those topics. And then that sometimes means doing like B+ work in one area, and that's really hard for me. I'm an A-work person. So even downgrading to a B+ level of effort is challenging. But I have found that that's a really great space to be because then I'm doing well in both areas, not perfect, but doing well enough. And often, that's really what counts is that we're doing well enough and still pursuing growth in the areas that are important to us. CHRIS: Yeah, I think that intentional switching back and forth between them is the space that I'm in. I expect my work will remain very technical, and I hope that that's true. And I think to a certain extent; I get to shape it and determine that. And so how much of it is strategy and planning and things like that? Versus how much of it is helping the team with architecture and defining processes as to how we code, and what are our standards, and what are our languages and frameworks and all of that? I expect I'm still going to be involved in the latter. And again, I think to a certain extent; I get to choose that. So I am actually interested to see the shape that both naturally the organization needs out of the role that I'm in. But also, what sort of back pressure I can apply and be like, but this is how I want it to be. Is there room for that, or is there not? And it's all an experiment, and we're going to find out. But personally, for me, I'm going to keep reading Twitter and blog posts every day, and I'm probably going to code on the weekends and things. So the idea of my coding muscle atrophying, I don't know, that one doesn't feel true. But we'll see what I have to say a year from now or after what that looks like. But I expect...this has been true of me for so long, even when I had an entirely different career that I was just reading blogs and other things all the time because this is a thing that deeply interests me. So we will see. STEPH: Yeah, I'm excited to hear how it goes. And I think there's something to be said for the fact that you are also a CTO that's very close to the work that's being done. So being someone that is very involved in the technical decisions and the code that's being written but then also taking on more of the management responsibilities. And that feels more of a shift where you still have a lot of your coding skills. And you are writing code day-to-day at least based on what you're saying, but then you are also acquiring a lot of these management skills to go along with it. Versus if someone were going into management and maybe they're at a really large company and then they are very far away from the development team. And they're focused on higher-level themes and discussions, at least that's my guess. But I'm very excited to hear more about your updates and how this experiment is going and to find out who is the true Chris? CHRIS: Who's the true Chris? That feels complicated. I feel like I contain multitudes. But yeah, you know what? I'm excited to find out as well. Let's see what's going on there. But yeah, so that's a grand summary of the things that are going on in my head. And I expect these are topics that will be continuing to evolve for me. So I think we'll probably have more conversations like this in the future but also some tech stuff. Because like I said, I don't know, I can't stop. Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. STEPH: Yeah, that's actually the perfect segue as we were talking earlier about just ways that we're looking to grow as developers. And I saw something that I really enjoyed, and it's published by another thoughtboter. Their name is Matheus Richard. And Matheus runs a Twitter account that's called @RubyCards. And I don't recall the exact cadence, but every so often, Matheus will share a new snippet of either Ruby or Rails code and then will often present the information as a question. So I'll give you an example, but the highlight is that it teaches you something, either about Ruby or Rails. Maybe you already knew it, maybe you didn't. But it's a really nice exercise to think through okay, I'm reading this code. What do I think it's going to return? And then respond to this poll and then see how other people did as well. Because once the poll closes, then Matheus shares the actual answer for the question. So one example that I saw recently highlights Ruby's endless method definition, which was introduced in Ruby 3. So that would be something like def, and then let's say the method name is message. And then you have closing, but empty parenthes equals a string of "Hello, World." And so then the question is if you call that method message, what would that return? And then the poll often has options around; it would return "Hello World," or it's going to return a syntax error. It's going to return nil. And then it highlights, well, because of Ruby's endless method definition, this would return "Hello, World." And then I also saw a new method that I hadn't used before that's defined in Ruby's Hash class that's called store. And so you can use it calling it on a Hash. So if you have your hash equals and then curly brackets, let's say foo is equal to an integer of zero, then you can call hash.store and then pass in two arguments. The first argument's going to be the key. The second argument is the value. And then, that would essentially be the same syntax that we use for assigning a value to a hash. But I just hadn't actually seen the method store before. So there are fun snippets of Ruby or Rails code. A little bit of a brain teaser helps you think through how that code works, what it's going to execute, what it's going to return. And I really enjoy it. I'll be sure to include a link to it in the show notes so other people can check it out. CHRIS: Oh, that sounds fun. I hadn't seen that, but I will definitely be following. That's the word on Twitter, right? You have subscribing, subscribe and follow, smash that like button, all of the things. I will do all of the things that we do here on the internet. But I do like that model of the question and answer, and it's slightly more engaging than just sharing the information. So yeah, super interested to see that. STEPH: Yeah, I like the format of here's some code, and then we're going to ask you what does it return? So that way, you get a moment to think it through. Because if I read something and it just shows me the answer, my brain just doesn't absorb it. And I'm like, okay, that makes sense, and my brain quickly moves on. But if I actually have to think about it and then respond with my answer, then it'll likely stick with me a lot longer. At least we'll find out; that's the dream. On that note, shall we wrap up? CHRIS: Let's wrap up. The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes,; maybe as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeeeeee! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

Comic Culture

This week the boys try something offbeat and go off on a bit of a tangent, Walt tries to figure out just who his co-host is. Walt asks Chris a few telling questions, let’s see what Chris is all about. Please let us know what you thought of the showdown in the comments field and please keep it civil. Did your answers compare to Chris’? The post Chris Who? appeared first on Comic Book Daily.

comics comic chris who comic book daily
Comic Culture

This week the boys try something offbeat and go off on a bit of a tangent, Walt tries to figure out just who his co-host is. Walt asks Chris a few telling questions, let’s see what Chris is all about. Please let us know what you thought of the showdown in the comments field and please keep it civil. Did your answers compare to Chris’? The post Chris Who? appeared first on Comic Book Daily.

books comics comic chris who comic book daily
Everyone I Know
Episode 106 - Everyone's a Critic: Rocko's Modern Life: Static Cling without Chris

Everyone I Know

Play Episode Listen Later Aug 22, 2019 59:26


This week on the 'ole cast the Bois are reviewing the new Netflix reboot of Rocko's Modern Life. Do they love it? Are they colored by nostalgia? Where in the world is Chris? Who is this Horse Doctor? Listen to find out ya chump.

Strong Life Coach Podcast
Transcendent Friendship with Chris Flores

Strong Life Coach Podcast

Play Episode Listen Later Aug 11, 2019 46:55


Chris and Derek discuss transcendent friendship. When a life change occurs - marriage, job, children, move - does the bond between brothers have to change? They intertwine a little international flavor using proverbs from around the world to reveal a friendship principle. How does Derek describe his inmost circle of friends? What is the hardest part of building a deep friendship for Chris? Who is easiest to trust for Chris? When a prior co-worker passed away, how was Chris there for Derek? How do friends treat friends through mistakes, hard times, and hard talks? Find out what happens when Chris and Derek went to the NBA Team Hotel to meet Vince Carter.

Slowes wrestling show
Slowes Wrestling Show Episode 16

Slowes wrestling show

Play Episode Listen Later Jan 18, 2019 41:20


On this weeks Episode I talk with my friend Chris Who is wrestling again for the first time after 2 years as well as Give the Raw, NXT, And smackdown Live recap.

Voice of the Kingdom with Kevo & YeauYeau
Raiders Review/Wildcard Preview

Voice of the Kingdom with Kevo & YeauYeau

Play Episode Listen Later Jan 4, 2019 44:25


We got Chris Who? on the show to help us wrap up the regular season. We talk about EB, BDP's 50 TDs and Wildcard Weekend

Views on Vue
VoV 036: Vue CLI UI and Devtools with Guillaume Chau

Views on Vue

Play Episode Listen Later Nov 6, 2018 53:19


Panel: Joe Eames Chris Fritz Divya Sasidharan Special Guest: Guillaume Chau In this episode, the panel talks with Guillaume Chau who is apart of the VueJS core team, a frontend engineer at Livestorm, and an open source contributor. The guest and the panelists talk about plugins, Webpack, Vue CLI, and much more! Check out today’s episode to hear all of the details.  Show Topics: 0:00 – Advertisement – Kendo UI 1:00 – Chris lists who is on the panel along with today’s guest. Chris: Who are you and what are you working on? 1:50 – Guest: I am working on a startup in Paris. I am calling in from Lyon, France. 2:12 – Panel: Late there? 2:15 – Panel: Almost time for dinner? 2:21 – Guest: Yes, it’s cooking now! 2:26 – Panel asks a question. 2:43 – Guest answers the question. 3:14 – Panel: Anyone who didn’t want to be an expert, they don’t’ have to worry about how things tie together – you could help them with their configurations? 3:36 – Guest: A lot of the work is done for you with the configurations so you can start writing your apps. 3:53 – Panel: How is 3 different from 2? 4:06 – Guest: It’s like a new tool entirely. It’s working very different, too, with a different system. It has a different template base.  5:53 – Panel: To combine templates you have to understand it well, like different Webpacks. 6:12 – Guest: Regarding Webpacks and their configurations... 6:52 – Panel: With the template situation there was an issue where they would make their project and as new versions of Webpack came out...and new versions of Babble, and they will have to manage the dependencies of all of these. There might be some plugins that only work with x, y, and z. IT can be frustrating – can version 3 take care of this for you? 7:44 – Guest answers the question. 9:24 – Panel: How do you update plugins? 9:29 – Guest. 10:26 – Panel: Upgrade your plugins then as long as all of your plugins are the same version it’s okay? 10:34 – Guest: Yes. You can upgrade your... 11:38 – Chris: Divya, you just gave a talk (London) on...plugins, right? 11:50 – Divya: Yes. We talked about Webpack configurations. For example, if there are some testing libraries you can essentially setup a UCLI plugin to create a test – create a test folder – plugins let you generate files or folders (structure your project in a certain way). In London I talked about server less functions with... 13:30 – Panel: Any kind of pattern you want to use in different applications you can wrap that up in a plugin? 13:42 – Divya: Yes. Exactly. Instead of repeating yourself you can wrap it up. It’s really handy. 14:00 – Panel asks a question. 14:02 – Divya: You could do that... 14:10 – Panel: ...or a graph QL – Yes! 14:20 – Guest. 14:33 – Chris: Any thing that third-party plugins don’t have access to? 14:43 – Guest. 14:54 – Chris. 15:08 – Guest. 15:25 – Divya: ...if you want a UCLI service...and so you can grab those commands and add-on those commands and using those default commands. You have access to those commands, so you don’t always... 17:02 – Chris: Like deploy? 17:11 – Divya: Yes. 17:17 – Guest. 17:19 – Divya. Divya: Do you have strategies on how you go about testing your plugins? 17:35 – Guest: Yes, I do. 19:23 – Panel: So this is like end-to-end test for a CLI tool? 19:33 – Guest. 19:50 – Panel: Is there documentation for all of this? 19:59 – Guest. 20:14 – Divya: I think the way I’ve done tests is to edit an example a test project as a local dependency and then seeing that it works. I want to make sure that it works. Divya: And the other way I’ve done it is VUE CLI it is undocumented at the moment. You can test your CLI plugin from within the plugin itself. 21:55 – Guest: I’ve used some of those before. 22:08 – Chris: Speaking of the UI that is something I’d love to talk about. It seems unique to me – a CLI tool that has a UI that is built along with it. That seems strange to some people – how does that work and WHY would you need it? 22:42 – Guest: I’ll start with the WHY. It is way more powerful and as a greeter the API interface is more fixable so you can choose different options. For example when you create a project you can set different things. You basically have to name the project and you have simple options to choose form. Now it’s basically a really fixable system with plugins and stuff like that. I thought it would be nice to free it from the terminal. The best way to do that was creating a graphical interface. The main advantage of this was that you could add more information and explanations to what is going on. You can also create better interface. Guest: Also, it currently improves discoverability. 25:30 – Chris: You could do a search in the UI and type in the name of something you are working with and then your plugin would show up in the list – and then it would just be added to their project. That’s nice so they don’t have to go to the NPM or doing the README. 26:07 – Guest. 26:14 – Divya: I think it’s nice b/c I have used it extensively for my plugin. I want to see what hasn’t been taken already. I have a way of organizing my modules and I’ve used to it see what names have already been taken? 26:47 – Guest: I think sometimes... 27:15 – Divya: The feature that you are able to run tasks from the UI is nice. 27:55 – Chris: It sounds like it offers a nicer way to view a lot of things. One of the other advantages (that I found) is that I have a configuration to the listing rules to Vue – you can pick the exact rule set that you want to use. Normally when you look at a configuration file, you don’t know what rule sets are available, you don’t know what options are available. All of this you have to look at documentation. You can see descriptions of what each rule does. You can do so much in the UI. 29:19 – Guest. 29:40 – Advertisement – Get A Coder Job! 30:25 – Chris: Do they still need a terminal? 30:35 – Guest. 32:41 – Chris: That would be cool! 32:46 – Guest. 33:09 – Chris: They still need a little terminal knowledge right? 33:15 – Guest: Yes. 33:33 – Chris: They need a little terminal knowledge, they need to install the package, then they need to run VUE UI, then they can do anything from the terminal inside of the UI? 33:55 – Guest: You can create and import existing projects. 34:28 – Panel. 34:33 – Chris. 34:36 – Panel: It’s already active? 34:43 – Guest: I would like to talk about what I did in London. That conference I talked about... 37:00 – Panel. 37:07 – Guest. 37:20 – Panel: Nice! 37:25 – Guest. Guest: All of these widgets that I talked about you can use the product API and do anything that you want. 38:47 – Chris: If someone wants to see the dashboard that you are doing – where can they see that stuff? 39:00 – Guest: GitHub. Follow the manuscript instructions. 39:16 – Chris: Your London talk was recorded? 39:22 – Guest: Yes. 39:27 – Guest. 39:38 – Divya: Are you planning on giving this talk in other events? 39:47 – Guest: Maybe not anytime soon. 39:56 – Chris. 40:00 – Divya. 40:09 – Guest: It might be release already we don’t know. 40:15 – Divya: A date you would like to release by? 40:25 – Chris: Where can people support you and your work? 40:35 – Guest: Yes, they definitely can. You can check out the GitHub file. Also, check-out my open source work, too. 41:17 – Chris: Twitter? 41:19 – Guest: Yes. 41:24 – Chris: You have cute cat pictures, too. Let’s go to Picks!! 41:40 – Advertisement – Fresh Books! DEVCHAT code. 30-day trial. Links: Vue VUE CLI 3 Vue CLI – NPM React Angular JavaScript DevChat TV Article: Infrequently Noted Vue.js Fundamentals GetKap Snipcart Netlify Webpack.js Guillaume Chau’s Vue.JS LONDON Guillaume Chau’s Twitter Guillaume Chau’s LinkedIn Guillaume Chau’s GitHub Guillaume Chau’s GitHub Repositories Guillaume Chau’s ABOUT in Patreon.com Guillaume Chau’s Medium Guillaume Chau’s Info Divya’s London Talk Webpack – Configurations Graph QL Sponsors: Fresh Books Cache Fly Kendo UI Get A Coder Job! Picks: Joe VueJS Fundamentals Developer Experience Bait and Switch Divya Get Kap Snipcart How we built a Due CLI Plugin for Netlify Lambda Chris Meditation Gratefulness Guillaume Exercise The Expanse

Devchat.tv Master Feed
VoV 036: Vue CLI UI and Devtools with Guillaume Chau

Devchat.tv Master Feed

Play Episode Listen Later Nov 6, 2018 53:19


Panel: Joe Eames Chris Fritz Divya Sasidharan Special Guest: Guillaume Chau In this episode, the panel talks with Guillaume Chau who is apart of the VueJS core team, a frontend engineer at Livestorm, and an open source contributor. The guest and the panelists talk about plugins, Webpack, Vue CLI, and much more! Check out today’s episode to hear all of the details.  Show Topics: 0:00 – Advertisement – Kendo UI 1:00 – Chris lists who is on the panel along with today’s guest. Chris: Who are you and what are you working on? 1:50 – Guest: I am working on a startup in Paris. I am calling in from Lyon, France. 2:12 – Panel: Late there? 2:15 – Panel: Almost time for dinner? 2:21 – Guest: Yes, it’s cooking now! 2:26 – Panel asks a question. 2:43 – Guest answers the question. 3:14 – Panel: Anyone who didn’t want to be an expert, they don’t’ have to worry about how things tie together – you could help them with their configurations? 3:36 – Guest: A lot of the work is done for you with the configurations so you can start writing your apps. 3:53 – Panel: How is 3 different from 2? 4:06 – Guest: It’s like a new tool entirely. It’s working very different, too, with a different system. It has a different template base.  5:53 – Panel: To combine templates you have to understand it well, like different Webpacks. 6:12 – Guest: Regarding Webpacks and their configurations... 6:52 – Panel: With the template situation there was an issue where they would make their project and as new versions of Webpack came out...and new versions of Babble, and they will have to manage the dependencies of all of these. There might be some plugins that only work with x, y, and z. IT can be frustrating – can version 3 take care of this for you? 7:44 – Guest answers the question. 9:24 – Panel: How do you update plugins? 9:29 – Guest. 10:26 – Panel: Upgrade your plugins then as long as all of your plugins are the same version it’s okay? 10:34 – Guest: Yes. You can upgrade your... 11:38 – Chris: Divya, you just gave a talk (London) on...plugins, right? 11:50 – Divya: Yes. We talked about Webpack configurations. For example, if there are some testing libraries you can essentially setup a UCLI plugin to create a test – create a test folder – plugins let you generate files or folders (structure your project in a certain way). In London I talked about server less functions with... 13:30 – Panel: Any kind of pattern you want to use in different applications you can wrap that up in a plugin? 13:42 – Divya: Yes. Exactly. Instead of repeating yourself you can wrap it up. It’s really handy. 14:00 – Panel asks a question. 14:02 – Divya: You could do that... 14:10 – Panel: ...or a graph QL – Yes! 14:20 – Guest. 14:33 – Chris: Any thing that third-party plugins don’t have access to? 14:43 – Guest. 14:54 – Chris. 15:08 – Guest. 15:25 – Divya: ...if you want a UCLI service...and so you can grab those commands and add-on those commands and using those default commands. You have access to those commands, so you don’t always... 17:02 – Chris: Like deploy? 17:11 – Divya: Yes. 17:17 – Guest. 17:19 – Divya. Divya: Do you have strategies on how you go about testing your plugins? 17:35 – Guest: Yes, I do. 19:23 – Panel: So this is like end-to-end test for a CLI tool? 19:33 – Guest. 19:50 – Panel: Is there documentation for all of this? 19:59 – Guest. 20:14 – Divya: I think the way I’ve done tests is to edit an example a test project as a local dependency and then seeing that it works. I want to make sure that it works. Divya: And the other way I’ve done it is VUE CLI it is undocumented at the moment. You can test your CLI plugin from within the plugin itself. 21:55 – Guest: I’ve used some of those before. 22:08 – Chris: Speaking of the UI that is something I’d love to talk about. It seems unique to me – a CLI tool that has a UI that is built along with it. That seems strange to some people – how does that work and WHY would you need it? 22:42 – Guest: I’ll start with the WHY. It is way more powerful and as a greeter the API interface is more fixable so you can choose different options. For example when you create a project you can set different things. You basically have to name the project and you have simple options to choose form. Now it’s basically a really fixable system with plugins and stuff like that. I thought it would be nice to free it from the terminal. The best way to do that was creating a graphical interface. The main advantage of this was that you could add more information and explanations to what is going on. You can also create better interface. Guest: Also, it currently improves discoverability. 25:30 – Chris: You could do a search in the UI and type in the name of something you are working with and then your plugin would show up in the list – and then it would just be added to their project. That’s nice so they don’t have to go to the NPM or doing the README. 26:07 – Guest. 26:14 – Divya: I think it’s nice b/c I have used it extensively for my plugin. I want to see what hasn’t been taken already. I have a way of organizing my modules and I’ve used to it see what names have already been taken? 26:47 – Guest: I think sometimes... 27:15 – Divya: The feature that you are able to run tasks from the UI is nice. 27:55 – Chris: It sounds like it offers a nicer way to view a lot of things. One of the other advantages (that I found) is that I have a configuration to the listing rules to Vue – you can pick the exact rule set that you want to use. Normally when you look at a configuration file, you don’t know what rule sets are available, you don’t know what options are available. All of this you have to look at documentation. You can see descriptions of what each rule does. You can do so much in the UI. 29:19 – Guest. 29:40 – Advertisement – Get A Coder Job! 30:25 – Chris: Do they still need a terminal? 30:35 – Guest. 32:41 – Chris: That would be cool! 32:46 – Guest. 33:09 – Chris: They still need a little terminal knowledge right? 33:15 – Guest: Yes. 33:33 – Chris: They need a little terminal knowledge, they need to install the package, then they need to run VUE UI, then they can do anything from the terminal inside of the UI? 33:55 – Guest: You can create and import existing projects. 34:28 – Panel. 34:33 – Chris. 34:36 – Panel: It’s already active? 34:43 – Guest: I would like to talk about what I did in London. That conference I talked about... 37:00 – Panel. 37:07 – Guest. 37:20 – Panel: Nice! 37:25 – Guest. Guest: All of these widgets that I talked about you can use the product API and do anything that you want. 38:47 – Chris: If someone wants to see the dashboard that you are doing – where can they see that stuff? 39:00 – Guest: GitHub. Follow the manuscript instructions. 39:16 – Chris: Your London talk was recorded? 39:22 – Guest: Yes. 39:27 – Guest. 39:38 – Divya: Are you planning on giving this talk in other events? 39:47 – Guest: Maybe not anytime soon. 39:56 – Chris. 40:00 – Divya. 40:09 – Guest: It might be release already we don’t know. 40:15 – Divya: A date you would like to release by? 40:25 – Chris: Where can people support you and your work? 40:35 – Guest: Yes, they definitely can. You can check out the GitHub file. Also, check-out my open source work, too. 41:17 – Chris: Twitter? 41:19 – Guest: Yes. 41:24 – Chris: You have cute cat pictures, too. Let’s go to Picks!! 41:40 – Advertisement – Fresh Books! DEVCHAT code. 30-day trial. Links: Vue VUE CLI 3 Vue CLI – NPM React Angular JavaScript DevChat TV Article: Infrequently Noted Vue.js Fundamentals GetKap Snipcart Netlify Webpack.js Guillaume Chau’s Vue.JS LONDON Guillaume Chau’s Twitter Guillaume Chau’s LinkedIn Guillaume Chau’s GitHub Guillaume Chau’s GitHub Repositories Guillaume Chau’s ABOUT in Patreon.com Guillaume Chau’s Medium Guillaume Chau’s Info Divya’s London Talk Webpack – Configurations Graph QL Sponsors: Fresh Books Cache Fly Kendo UI Get A Coder Job! Picks: Joe VueJS Fundamentals Developer Experience Bait and Switch Divya Get Kap Snipcart How we built a Due CLI Plugin for Netlify Lambda Chris Meditation Gratefulness Guillaume Exercise The Expanse

Survivor Whispers
Survivor Ghost Island Recap Show 3-21-18

Survivor Whispers

Play Episode Listen Later Mar 21, 2018 175:00


Survivor Ghost Island returns after a shocking blindside of the former Malolo leader, Brendan. With Michael playing his idol on Stephanie, the votes instead were cast on the former Malolo leader, sending him out of the game. However, will fortunes change for Michael and company as a showmance begins to blossom? Will cracks begin to form in Bradley's majority alliance? What's brewing over in Naviti with the war between Dom and Chris? Are Donathan and Laurel truly willing to work with Dom and Wendell to take out Chris? Who went to Ghost Island this episode and what was the result of their visit? Find out all of this and more as Jim Early and Missyae Productions present the Survivor Ghost Island recap show! Call in after the episode to give your thoughts on this week's show, as well as what could be coming up on next week's and future weeks! Call (657) 383-1308 to get in on the conversation!

Unity Body MOT Podcast
Simon Wellsted - founder of Unity Body MOT - co-hosted with Chris Dabbs Unity Body MOT Podcast 002

Unity Body MOT Podcast

Play Episode Listen Later Jun 28, 2016 38:27


Unity Body MOT Podcast 2   Simon Wellstead and Chris Dabbs     CHRIS: Hi there and welcome to the Unity Body MOT podcast. Welcome to show 2 of the Unity Body MOT podcast with Simon Wellstead. SIMON: Hi there Chris. CHRIS: Hello, and me Chris Dabbs. This week’s podcast is going to be slightly different to last week’s podcast where we discussed how the Unity Body MOT system can help fitness professionals and other people working within the fitness industry to really help their clients make sure that any exercise that their doing is the best thing for them. Now Simon, I understand this weekend you’ve been pretty busy with talking to potential new clients and other people with the fitness industry, is that right? SIMON: Yes, it’s been a fascinating weekend Chris. It was a three day seminar with my business coach who specializes in fitness and exercise and health professionals. And I was there in the capacity of having an exhibition stand and talking to probably about 250 people over the weekend, it was a really massive experience for me listening to fit pros and exercise pros, listening to what they do, how they work with their clients and enabling me to help them understand how we could help them serve their clients in a bigger way. CHRIS: Oh wow! So basically you were talking to people about how Unity Body MOT can help their business, and I guess in turn, help their clients – is that right? SIMON: Yes, absolutely. It’s all, at the end of the day, about them helping their clients in a bigger way so their clients feel as though they’re being served better and say, “Wow, that guy is great” or “That girl’s great, go and use them.” That’s essentially what I was doing so it was a really enlightening experience for me working and talking to so many great people in the fitness industry and enabling me to understand their needs in a better way. CHRIS: Okay, well it’d be great to actually talk about what happened at the conference to really understand how people saw how your system could help them to be able to grow their business and help their clients. So what was the main question that people asked you? SIMON: It’s a really interesting question Chris. The questions were not particularly specific because people don’t know what they don’t know. And what we teach and present and coach fitness pros in is very new to them. So the first question that I generally got was, “Simon, I love the introduction that got done for you and I’ve been watching your video that you’ve got on there and I understand you’ve got a free CD to take away, but actually, what is it you do? Can you explain it to me in my context of my business?” So we’d then start by talking to them about what they did, understanding their clients. So it was a reverse questioning situation that I went through because everybody I work with works differently, they have different clients, those clients have different needs. So it’s not a case of one size fits all, which is actually a phrase I use a lot. CHRIS: If it’s not a case of one size fits all then does that mean that people who work in a specific part of the fitness industry, in other words maybe a personal trainer rather than a fitness professional or any of person within the industry, would benefit more from the Unity Body MOT system? Or do you think it benefits everybody equally just in different ways? SIMON: The latter definitely Chris, it benefits everybody but in different ways because, as I said, they all have different clients with different needs and everybody’s training is slightly different. So a personal trainer will have a slightly different training to a Pilate’s instructor to a sports coach to a running coach or somebody who does group exercises at gyms which is mat based in a studio. They will have different requirements/different needs and the important thing is to realize that once you understand that client better you can give them a better service. You can advise them more effectively and ultimately, hopefully, the goal of this is that the client gets their objectives achieved in a quicker time or more successfully or more safely or whatever it is they want to do. CHRIS: I see, so let’s rewind a little bit there then, let’s try and narrow this down to a specific type of trainer or fitness pro. So let’s have a look at a Pilate’s instructor; how would a Pilate’s instructor be able to use the Unity Body MOT system to deliver a greater range of benefits to their clients? Is it as simple as that – by using the system? Can that actually happen or is it complementary to Pilate’s? SIMON: Totally complementary, I know never step over the line and say I’m doing training or a course specifically for Pilate’s people, I love delivering what I do to a mixture of people. Having said that, a Pilate’s instructor is specifically taught to help improve people’s posture, help them move better, and if they’re working in a therapy context, help them get out of pain if they’ve got back pain – which is very different to a personal trainer who is there to perhaps deliver performance improvement, weight loss, increase somebody’s stamina if they’re training for something or just generally be fitter. So there is a difference and once a Pilate’s instructor understands the information that we present, they understand that need to have good posture, need to move more flexibly, need to move more smoothly in a different way. They’ve got a toolkit of extra knowledge, so if they see somebody struggling and is clearly not responding to an exercise series that is being given to them in the way that the Pilate’s instructor would hope, maybe they could go to their bag of tools and say, “Okay, let’s look at this in a little greater detail. I’ll take a different tool out of my case and work out why what is happening is happening” and therefore give them more understanding so that the client doesn’t get frustrated that things are not working for them. I ran a course in Hertfordshire back end of 2015 and I think I had 3 Pilate’s instructors on that particular course. There were personal trainers and other fitness professional there as well. And we teach them some tools, including a slightly different exercise model that they can employ with their clients, and the feedback I got the next morning was that two of the Pilate’s instructors had taken that exercise model and actually delivered it to their clients that very morning. And the response was that the clients felt much better after it and they were then able to do the other exercises that the Pilate’s instructor was trying to get them to do more effectively. It felt more easy, they were able to get into positions perhaps from a postural point of view or move better. So the Pilate’s instructors had taken what we’d instructed them in, taken the new exercise model and ideas that we’d presented, given them straight away to their clients – which was absolutely fantastic – and had reported back instant benefit. CHRIS: Wow, so what you’re saying is that the Unity Body MOT system gives somebody knowledge that they can use immediately and really get results for their clients immediately. It’s that quick? SIMON: It is that quick. What we’re teaching is actually more a change of mindset, a change of the way to think about a client’s issue. So if you give a client something to do, it’s not quite working for them as well as you or they might hope… CHRIS: Because they’re struggling or…? SIMON: Great, because they’re struggling; then we give them a toolkit that allows that analysis to be done to say, “Okay, why is that happening? Ah, okay, maybe that is happening instead. Now I can understand that and I can change what I’m asking the client to do so it’s appropriate for their body.” CHRIS: It enables them to really think about how some of the information you’ve given them enables them to do something different for their clients so quickly that the client – it’s probably imperceptible to them – it’s so smooth and such a transition. SIMON: Absolutely, that’s a great description. CHRIS: Right, oh wow. So okay, for Pilate’s instructors it’s allowing them to step back and have an overall view of what is happening. And to be able to change their advice to their clients in a way that would benefit them much more quickly. And what about sports coaches and things like that? How would it apply to them? How can they benefit their clients? Is it equally as quick? SIMON: it’s really great that you picked up on sports coaching because I did run some coaching up in Sheffield a few weeks ago and we had two sports coaches actually present. One was a running coach and one was actually a coach for the Great Britain climbing team. I didn’t understand that Great Britain had a climbing team but hey. CHRIS: We do have a team, but that’s fantastic though isn’t it, that we have a team climbers? Brilliant! SIMON: We do, and obviously from a sports coaching perspective, they are more interested in improving performance, improving technique and trying to get them to be able to run better, run faster, run longer, or in the case of climbing which I learned a lot about over the weekend, to help them climb faster – it’s all clock based climbing that they do so they have to basically get from A to B but it’s vertical. CHRIS: Who would have thought? SIMON: And we had some really great discussions because the tools that I present in training are just as equally valid for improving taking somebody up from performance level A to performance level B in whatever they do. So I’ve got colleagues and friends of mine who work in the same area and work with tennis player or work with golf players. And obviously we’ve talked about running and climbing, it is a very big area but it is all performance based. And they’ve got a greater understanding now about their client’s body so if they’re seeing, in the case of the running coach, that somebody is running in a particular way and struggling to get over some kind of threshold that they’re trying to deliver against, whether that be speed or whatever it might be, they can now take a step back and say, “Ah okay, hang on, maybe this is happening so I’ve now got a toolset of tests I can do that will tell me whether something different is happening.” But before the training they would have never known that something different could have been happening or was happening. CHRIS: So you’re really enabling these coaches and fit pros to know more than they didn’t know, if that makes any sense. So in other words, really they didn’t understand precisely how they could help somebody or know what the problems were that somebody had. And just through the initial phases of the Unity Body MOT program, you are actually them to help their clients to make those tiny incremental changes that make all the difference. And I suppose a few very physical types of sports including, as you say, the climbing team for GB – who would have thought that we were a) any good at that, b) actually in it in the first place and c) that yes, every single part of the body has to work in such a way as to be able to literally claw back every single millisecond of climbing a vertical face I guess? SIMON: Absolutely. CHRIS: That’s incredible! So for the climbing team, let’s have a look and try and understand exactly how you helped their trainers and their coaches to help the climbers themselves. Is there something specific you can share with us on that? SIMON: Yes, I mean I’m not a climbing expert, but I had these discussions with the gentleman who was on the course and we were talking about the fact that when you’re climbing you’ve got to have a massive amount of coordination and strength between the fingers that are obviously gripping a particular place and the lower body which is going to help you move up to the next point on your war. CHRIS: Pushes I guess, isn’t it? SIMON: Absolutely, and that is coordination but it’s also strength. So the tools we were delivering would give a different dimension as to why they might be struggling to get from A to B in a particular way given a particular obstacle on a particular wall. They might have a problem with their foot, there may be an issue with their pelvis, there may be an issue their nervous system which is not allowing them to have the flexibility, strength and mobility to deliver that type of movement in that particular situation. CHRIS: Okay so if they had to, I don’t know, I’m trying to think of how to explain this in a climbing term; but if they’re climbing up just normally, I guess any climber can do that properly, I’ve seen some of those very difficult maneuvers where there’s a ledge that comes up on top of them or above their head and they have to… SIMON: I think they call those an overhang. CHRIS: Oh, so overhang. Oh so the overhang, and then they have to kind of flick themselves over. And that sort of maneuver, I guess, really does need to be trained for – it’s not just something you come across and just do through innate skill I guess. How would Unity Body MOT help that particular climber to train for that? I mean are you talking about being able to weed out the people who aren’t able to do that particular maneuver or helping people who find that particularly difficult to make it easier for them to then do that maneuver – if you see what I mean? SIMON: Certainly the latter, it’s finding out what in the body is blocking or providing a blockage for them to do something that they need to do that they can do and that they maybe can be able to do well. But this is all about fractions here, so we’re saying taking them from A to B but that’s actually taking where A is already pretty damn good – they may be completion climbers, or completion runners or competition tennis people – but it’s basically finding that next level. And there may be something within the body, which is maybe not visible to the human eye, which is inhibiting them being able to make that step in terms of additional performance. CHRIS: Yes, so we’re looking at the physicality again here rather than the mental state of any training or any sports person. That’s fascinating really. Okay let’s try and not talk too much about the elite athletes and let’s go back down to basics and really look at, say me, because I’m basic believe me; but me in a gym situation with a personal trainer. Is there a way for a personal trainer to sort of identify that knee issue without me knowing that it actually exists? I mean can they spot it because of my gait for instance? Is that something that the system trains them for? SIMON: Yes absolutely and that’s a really interesting example. We now know that well over 90% of knee problems have got nothing to do with the knee, but what it has got to do with is something that is actually not visible to a personal trainer or anybody really. CHRIS: That sounds strange, how does that work then? SIMON: Well the vast majority of knee problems come from your pelvis not working properly. CHRIS: So what, are you saying it’s referred pain from the pelvis or just because it’s just putting somebody out of kilter? SIMON: It’s not a referred pain because referred pain is where you have pain in place A and pain in place B. What we’re saying is somebody may, after exercise, report some pain in their knee. But that actually could be to do with something not working in the pelvis and there actually isn’t any pain or any symptoms in the pelvis at all. We’re just talking about, “Does the pelvis do its job properly?” Is the pelvis doing its job properly and that’s one of the things we train personal trainers to pick up on because a lot of body functions in exercise and performance are obviously managed the pelvis. It’s in the center of the body, pelvis means basin – it’s the bucket of the body – it’s where everything from the top comes down to the pelvis and everything from the foot upwards comes into the pelvis. So it’s not surprising that a lot of issues stem from the pelvis. But it’s not just a case of looking at the pelvis and saying, “Oh it’s tilted or it’s not doing this or it’s not doing that from a visual point of view.” We actually teach the personal trainers to work out precisely how is or is not working. And then that’s going to deliver a lot of information about somebody’s pain in their knee or pain in their foot or lower back problems or shoulder problems. So the knee is a really good example, we now know that the vast majority of knee problems don’t stem from anything actually happening in the knee, they stem from something else in the body not working properly. CHRIS: Okay, so I kind of understand that really the podcast isn’t the place to give real instructions on how to overcome any particular knee problem per say. But I guess that actually makes a lot of sense because the Unity Body MOT program is about enabling the personal trainer to look – I guess it’s the old phrase – look outside of the box rather than looking at the knee and saying, “Oh yes you’ve got a problem with your knee, you can’t do this exercise or that exercise.” But what you are enabling people with is the tool and the power to step back and to really assess a client’s situation, would that be about right? SIMON: Yes, that’s brilliantly put actually Chris. We’re about changing a mindset and being able to, you use the phrase ‘take a step back’, and use some strategic thinking which will be new to the vast majority of fitness professionals. CHRIS: Oh yes, and foreign as well I would have thought. SIMON: Absolutely! So we’re saying that just because you can see a problem somewhere, you used the perfectly good example of the knee but it could be anywhere in the body, we can move on the other ones in a second. But just because somebody’s coming to say, “You know when I do those types of exercises I actually experience this pain in my knee.” – beyond just saying, “Okay you won’t do those exercises because you get a pain in your knee” we give the personal trainer the tools to say, “Okay let’s work out how you can do those exercises more safely, let’s work out how you can do those exercises so they won’t cause an issue with your knee.” Another classic example is tight muscles, who hasn’t got tight muscles? But the way that most fit pros will address that is to actually see that muscle X is tight, let’s pick one – hamstring – it’s one that is commonly very tight in lots of people. The intervention for that would be most typically to introduce warm ups or components of the exercise regime which try to stretch that hamstring to reduce the tightness. Unfortunately, we now understand that there are several different types of tightness and stretching, quite often, is not the answer. But we teach the personal trainer to take a step back and say, “Okay, I can see that there’s tightness there in the hamstrings. Let me work out (using the tools we teach) what type of tightness it is. And therefore, I can then build an exercise program which matches exactly what’s going on in your body.” The net result, we hope, will be less tightness in the hamstrings; but not just by pulling the ends of the hamstrings to make them longer because they’re tight and therefore we’ll stretch them. It’s using a somewhat more strategic approach to say, “Okay, so I know that there are three of four ways that a hamstring can become tight, which one is applicable to you Mr. Client/Lady Client? Okay, I now understand why your hamstrings are tight, now we can move on. CHRIS: Yes from a lay person’s point of view I guess as with anything, even in my industry everything moves forward at a very fast rate, and really your Unity Body MOT system is really like continuing personal development for fit pros really. To make sure that they’re augmenting their own original training that they’ve been through – sweated through – to qualify and get to be able to do everything that they want to do for their clients. And so yes, Unity Body MOT helping in that way by allowing them to step back can only be a great thing for clients. SIMON: Yes, and I think that’s a key point. I mean I’m a trained sports therapists and I learned this information which I now train people in was something I learned, I didn’t learn it in sports therapy training, it was just through circumstances and the people that were coming to me and the sort of people that I met and got involved with and was talking to – peers in the industry – that said, “Actually Simon, the sort of things you’re talking about can be dealt with now through this additional training.” So I learned this stuff through additional training. I’m now basically paying that back to people and saying, “I’d like to do the same for you.” I benefited from it, I was able to help clients in a bigger way by taking a step back and questioning what I’m seeing, what the client is telling me to enable to then move forward. It’s a case of taking one step back to take two or three steps forward. CHRIS: Well exactly, as opposed to just running into it like a bull at a china shop kind of thing and just doing the first thing that comes to mind. Stand back, consider and then action really, I think that’s that. Okay fascinating, absolutely fascinating trying to understand how personal trainers and fitness professionals can help their clients just by stepping back for a few minutes, it’s incredible. Okay, well let’s go back to the conference that you attended this weekend and you were exhibiting at. You spoke to lots of people I bet, how many people were there, 250 did you say? SIMON: Something around that figure, yes. CHRIS: So you had 200/250 people who are all in the fitness industry, and you must have spoken to a whole bunch of those people, and what sort of things were people asking you? What were the sort of the main issues I guess with how they felt was how the Unity Body MOT program could help them? SIMON: Okay, so generally speaking the conversation would start by them not fully understanding what it was that I was doing. So they were coming at it from the point of view of they don’t know what they don’t know, which is great. But then I would generally turn the question round to ask them who they typically worked with – we use the phrase ‘ideal client’ – who are the people that they go to to get on the marketing? Who are they looking to work with most? And then understanding typically what those ideal clients are coming to that personal trainer or that fitness professional with, then we can start saying, “Well okay, so what typical strategies do you currently employ with those clients and are you hitting any brick walls? And a common one is “Yes they’ve got persistent tightness but for the large proportion of them we don’t seem to be able to get rid of that tightness.” Or in the context of a Pilate’s instructor, coming back to the Pilate’s area, obviously a big thing that Pilate’s instructors do is get people to activate their core but in some people the core just isn’t firing. And when I was having the discussions about, “Okay so sometimes the reasons why the core can’t fire is because something else in the body is stopping it from firing.” So understand what that thing is, it could be the pelvis or it could be something else, it could be in the shoulder. But to understand that there is a route forward to help these clients more rather than the client and the trainer getting frustrated, which is quite often what happens, and then they switch off and say, “Well Pilate’s doesn’t work for me, I went to Pilate’s and I just couldn’t get this working.” Or, I went to this personal trainer with really tight muscles and I just didn’t get any benefit from it.” That’s not a critique of the individual or what they did it’s just that there was some information that was missing and I fill that gap of information. We’ve talked about taking a step back and saying, “Okay, what I’m doing is not necessarily performing in the way that I would hope. Right, okay, now let’s use these tools to work out what that is.” The ideal client is the ideal client with the same problems, it’s just that every body is different and reasons why something is happening in that body will be different. It falls into patterns obviously, but it’s having that ability to say, “I want to learn more about my ideal client, my ideal client is a new mom who’s just had their babies and they want to get back into the fitness that they had their babies” is another classic exampl

Made It In Music: Interviews With Artists, Songwriters, And Music Industry Pros
FCM012 – Writing 100 Songs A Year with Jason Ingram

Made It In Music: Interviews With Artists, Songwriters, And Music Industry Pros

Play Episode Listen Later Feb 9, 2016 37:19


We welcome Jason Ingram to Full Circle Music studios. He is a producer, songwriter, and artist with multiple SESAC songwriter of the year awards, Dove Awards, and Grammy Awards, with more #1 Radio Hits than most ever see. His credits include Brandon Heath, Hillsong, Chris Tomlin, Tenth Avenue North, Casting Crowns, and MercyMe.He talks about the idea that “your calendar will tell me if you're a songwriter”. It is the discipline versus inspiration. Which comes first.He also shares some personal insight into his story and his journey through the hard times in the beginning of trying to make it in a new city as a professional songwriter.To get Top 10 Songwriting Tips click Here.fca_eoi_form p { width: auto; }#fca_eoi_form_269 input{max-width:9999px;}#fca_eoi_form_269 *{box-sizing:border-box;}#fca_eoi_form_269 div.fca_eoi_form_text_element,#fca_eoi_form_269 input.fca_eoi_form_input_element,#fca_eoi_form_269 input.fca_eoi_form_button_element{display:block;margin:0;padding:0;line-height:normal;font-size:14px;letter-spacing:normal;word-spacing:normal;text-indent:0;text-shadow:none;text-decoration:none;text-transform:none;white-space:normal;width:inherit;height:inherit;background-image:none;border:none;border-radius:0;box-shadow:none;box-sizing:border-box;transition:none;outline:none;-webkit-transition:none;-webkit-appearance:none;-moz-appearance:none;color:#000;font-family:"Open Sans", sans-serif;font-weight:normal;transition:background 350ms linear;}#fca_eoi_form_269 div.fca_eoi_form_text_element{text-align:center;}#fca_eoi_form_269 *:before,#fca_eoi_form_269 *:after{display:none;}#fca_eoi_form_269 i.fa,#fca_eoi_form_269 i.fa:before{display:block;margin:0;padding:0;line-height:normal;font-size:14px;letter-spacing:normal;word-spacing:normal;text-indent:0;text-shadow:none;text-decoration:none;text-transform:none;white-space:normal;width:inherit;height:inherit;background-image:none;border:none;border-radius:0;box-shadow:none;box-sizing:border-box;transition:none;outline:none;-webkit-transition:none;-webkit-appearance:none;-moz-appearance:none;}#fca_eoi_form_269 div.fca_eoi_layout_popup_close{display:block;margin:0;padding:0;line-height:normal;font-size:14px;letter-spacing:normal;word-spacing:normal;text-indent:0;text-shadow:none;text-decoration:none;text-transform:none;white-space:normal;width:inherit;height:inherit;background-image:none;border:none;border-radius:0;box-shadow:none;box-sizing:border-box;transition:none;outline:none;-webkit-transition:none;-webkit-appearance:none;-moz-appearance:none;color:#000;font-family:"Open Sans", sans-serif;font-weight:normal;display:block;position:absolute;z-index:9999992;top:-10px;right:-10px;background:rgba(0, 0, 0, 0.6);border:1px solid #000;color:#fff;font-weight:bold;width:20px;height:20px;line-height:20px;text-align:center;cursor:pointer;}#fca_eoi_form_269 div.fca_eoi_layout_headline_copy_wrapper{font-weight:bold;}#fca_eoi_form_269 div.fca_eoi_layout_5,#fca_eoi_form_269 form.fca_eoi_layout_5{display:inline-block;}#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget{max-width:300px;}#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox{max-width:600px;}#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup{max-width:650px;}#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_field_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_field_wrapper{float:none;width:100%;}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_content_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_content_wrapper{margin:20px;}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_field_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_field_wrapper{border:solid 1px transparent;width:49%;border-radius:3px;margin-bottom:10px;position:relative;}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_name_field_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_name_field_wrapper{float:left;}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_email_field_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_email_field_wrapper{float:right;}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_inputs_wrapper_no_name div.fca_eoi_layout_field_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_inputs_wrapper_no_name div.fca_eoi_layout_field_wrapper{float:none;width:100%;}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_field_wrapper input,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_field_wrapper input,#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_field_wrapper input:focus,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_field_wrapper input:focus{border:none !important;width:100%;height:auto;font-size:16px;line-height:1.2em;padding:7px 0;outline:none;background:none !important;box-shadow:none;}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_submit_button_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_submit_button_wrapper{clear:both;transition:background 350ms linear, border-color 350ms linear;}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_fatcatapps_link_wrapper a,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_fatcatapps_link_wrapper a{display:block;margin:10px 0 0;font-size:12px;}@media (min-width:1px) and (max-width:450px),(min-height:1px) and (max-height:450px){#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_headline_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_headline_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_headline_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_headline_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_headline_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_headline_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_description_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_description_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_description_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_description_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_description_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_description_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper i.fa:before,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper i.fa:before,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper i.fa:before,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper i.fa:before,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper i.fa:before,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper i.fa:before,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input:focus,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input:focus,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input:focus,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input:focus,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input:focus,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input:focus,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input:focus,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input:focus,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input:focus,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input:focus,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input:focus,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input:focus,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_privacy_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_privacy_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_privacy_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_privacy_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_privacy_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_privacy_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_fatcatapps_link_wrapper a,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_fatcatapps_link_wrapper a,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_fatcatapps_link_wrapper a,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_fatcatapps_link_wrapper a,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_fatcatapps_link_wrapper a,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_fatcatapps_link_wrapper a{font-size:13px !important;}}@media (min-width:1px) and (max-width:320px),(min-height:1px) and (max-height:320px){#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_headline_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_headline_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_headline_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_headline_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_headline_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_headline_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_description_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_description_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_description_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_description_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_description_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_description_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper i.fa:before,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper i.fa:before,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper i.fa:before,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper i.fa:before,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper i.fa:before,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper i.fa:before,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input:focus,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input:focus,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input:focus,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input:focus,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input:focus,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_field_wrapper div.fca_eoi_layout_field_inner input:focus,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input:focus,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input:focus,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input:focus,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input:focus,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input:focus,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_submit_button_wrapper input:focus,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_privacy_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_privacy_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_privacy_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_privacy_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_privacy_copy_wrapper div,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_form_text_element.fca_eoi_layout_privacy_copy_wrapper div,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_fatcatapps_link_wrapper a,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_popup div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_fatcatapps_link_wrapper a,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_fatcatapps_link_wrapper a,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_widget div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_fatcatapps_link_wrapper a,#fca_eoi_form_269 div.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_fatcatapps_link_wrapper a,#fca_eoi_form_269 form.fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_content_wrapper div.fca_eoi_layout_fatcatapps_link_wrapper a{font-size:12px !important;}}@media (min-width:1px) and (max-width:450px),(min-height:1px) and (max-height:450px){#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_content_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_content_wrapper{margin:8px 13px;}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_fatcatapps_link_wrapper a,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_fatcatapps_link_wrapper a{margin:0;}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_form_text_element.fca_eoi_layout_headline_copy_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_form_text_element.fca_eoi_layout_headline_copy_wrapper{margin-bottom:5px;}}@media (min-width:1px) and (max-width:320px),(min-height:1px) and (max-height:320px){#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_popup_close,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_popup_close{top:-1px;right:-1px;}}@media (min-width:1px) and (max-width:768px){#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_field_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_field_wrapper{float:none;width:100%;}}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_headline_copy_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_headline_copy_wrapper{margin-bottom:20px;}@media (min-width:1px) and (max-width:450px),(min-height:1px) and (max-height:450px){#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_headline_copy_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_headline_copy_wrapper{margin-bottom:0;}}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_inputs_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_inputs_wrapper{margin:20px 0;}@media (min-width:1px) and (max-width:450px),(min-height:1px) and (max-height:450px){#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_inputs_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_inputs_wrapper{margin:8px 0;}}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_field_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_field_wrapper{border-radius:5px;}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_field_inner,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_field_inner{margin:0 10px;}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_submit_button_wrapper,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_submit_button_wrapper{border-bottom:solid 4px transparent;border-radius:5px;padding:0 !important;text-align:center;width:100%;}#fca_eoi_form_269 div.fca_eoi_layout_5 div.fca_eoi_layout_submit_button_wrapper input,#fca_eoi_form_269 form.fca_eoi_layout_5 div.fca_eoi_layout_submit_button_wrapper input{border:0 !important;border-radius:5px;font-weight:bold;margin:0;height:2.8em;padding:0;text-shadow:0 0 2px black;white-space:normal;width:100%;}.fca_eoi_form{ margin: auto; }#fca_eoi_form_269 .fca_eoi_layout_5.fca_eoi_layout_postbox{background-color:#f6f6f6 !important;border-color:#ccc !important;}#fca_eoi_form_269 .fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_headline_copy_wrapper div{font-size:28px !important;color:#1a78d7 !important;}#fca_eoi_form_269 .fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_name_field_wrapper,#fca_eoi_form_269 .fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_name_field_wrapper input{font-size:18px !important;color:#777 !important;background-color:#fff !important;}#fca_eoi_form_269 .fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_name_field_wrapper{border-color:#ccc !important;}#fca_eoi_form_269 .fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_email_field_wrapper,#fca_eoi_form_269 .fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_email_field_wrapper input{font-size:18px !important;color:#777 !important;background-color:#fff !important;}#fca_eoi_form_269 .fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_email_field_wrapper{border-color:#ccc !important;}#fca_eoi_form_269 .fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_submit_button_wrapper input{font-size:18px !important;color:#fff !important;background-color:#81b441 !important;}#fca_eoi_form_269 .fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_submit_button_wrapper input:hover{background-color:#70a01f !important;}#fca_eoi_form_269 .fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_submit_button_wrapper{background-color:#70a01f !important;border-color:#70a01f !important;}#fca_eoi_form_269 .fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_privacy_copy_wrapper div{font-size:14px !important;color:#8f8f8f !important;}#fca_eoi_form_269 .fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_fatcatapps_link_wrapper a,#fca_eoi_form_269 .fca_eoi_layout_5.fca_eoi_layout_postbox div.fca_eoi_layout_fatcatapps_link_wrapper a:hover{color:#8f8f8f !important;} AUDIO 37min:19secPodcast – Interview with hosts Seth Mosley, Chris Murphy & guest, Jason IngramSeth: Hey what's up. this is Seth Mosley, host of the Full Circle Music Show, thanks for listening. Again, this week we've got an awesome guest, one of my long time heroes of the music business, Jason Ingram, Sir Jason Ingram. He's a producer, song writer, artist, worship leader and all of the above. He has multiple awards on his mantle for Sesac songwriter of the year, he's won Dove Award producer of the year, more number ones than you can imagine and really has had, in the last several years, what has been an incredible career in the music business. And today we get to sit down and hear the story before Jason Ingram as the Jason Ingram that we know now.That's half the reason why we do this show is to kind of shine a light on the blood, sweat and tears that goes into making a successful career in the music business and there's a lot of stuff that I learnt in this episode about Jason; some stories about how he got into it and believe it or not at one time he was touring as a merch manager for a band, him and his wife were selling blood plasma just to get back home for Christmas. I'm telling you there's some stuff that you don't know that goes into making a successful song writing and producing career. So stick around and before we dive into it we wanted to thank you for listening, thank you for subscribing, go over to iTunes, leave us a good rating and review. That helps us a ton as we're getting this podcast off the ground.And for our next segment, Full Circle music trivia, the answer to last week's question: What is the highest selling album of all time? Well the answer for that is Michael Jackson Thriller. So to one of you guys who e-mailed in to trivia@fullcirclemusic.org, you get a free copy of the book ‘Hitmen'. And this week's question is: Who is the top Grammy award winner of all time? Again, who is the top Grammy award winner of all time? Email your response in to trivia@fullcirclemusic.org and this week the winner's going to take home ‘All you need to know about the music business' by Donald Passman, 8th Edition. Up to date information on new music business models including music streaming services and cloud lockers, the latest developments in digital rights and updated numbers and statistics for a traditional industry. Again, email your responses in to  trivia@fullcirclemusic.org and thanks for playing along.Alright, let's just dive into the episode, we've got Jason Ingram in here, in the house. A good friend and without even probably knowing it, mentor of mine who I've looked up to since I've moved to Nashville and song writing and production. And just track record for days, the  guy has just had hit after hit after hit and his songs are being sang in churches all around the world.  So for you to take a few minutes to come and spend with us means a lot so thank you for doing this.Jason: Yeah, it's an honourSeth: So do you want to carry us in?Chris: Yeah man, one of the things that I wanted to know from you Jason, is when did the song writing bug hit you or how long have you been doing it? Was it one of those things just where you were doodling in a notepad when you were 6 years old or even earlier or…?Jason: I started taking piano lessons in middle school but I think I was a freshman in high school when I was introduced to just chord voicings so up until then I was just learning to read music and more classical sort of training and which I wasn't excelling at but I loved music and so I just stayed at it and then I think my freshman year in high school, someone just taught me how to play chords. And think about music as chords as opposed to just reading notes on a scale. And I instantly started writing songs once I had chords, I was a songwriter…not a very good one…but from then on, yeah, I mean I was writing songs.Chris: Did it start for you at going on what you were hearing on the radio and just putting chords to that? Or was it truly like “I don't care what's going on, on the radio, I've  got my own vision that I'm…[4.06]Jason: Yeah no, I was, I was writing my own thingsChris: That's greatJason: Love songs for interest of mine, things like thatChris: Yeah, wow that's great man. So were you that guy with the guitar who got the girl because you had the guitar?Jason: Yeah…my wife…and then once I learnt chords I started leading worship as well and so my wife, we were on a little missions trip to Mexico, we lived in California and I was a  graduating senior and she was going into her junior year in high school and we went down there and I led worship at this thing that we were doing. And I didn't know her but she saw me leading worship and she knew, she told a camp counsellor that I was going to be her husband. And so, yeah, I think the guitar strummings, it helps man.Seth: AbsolutelyJason: Helps make up for other things…Chris: The lack of confidence [5.06] actually talking face to face.Jason: Massive lack of confidence, man, growing up in the church, there's so many stories that sound similar to that, it's like going up to that youth pastor or whatever and pointing, like that's going to be my guy.Seth: Did you know at that time or did you find that out later?Jason: I found that out later, we started sort of dating a bit after that but yeah, I found that out later. And she's not that kind of person, she's actually…I wasn't one of the popular kids and she was so I wouldn't have even, like gone there.Chris: Yeah, she was out of your leagueJason: She was [5.38] but yeah, I found that out later and I've just been writing songs out of a ‘heart place' you know. Ever since I first started writing songs I think that's been one of the, hopefully one of the things that people notice when they hear songs that I'm part ofChris: Yeah, yeah. And has that always come naturally to you? To be able to express your heart on paper or in a recording?Jason: I guess it has, yeah I guess it has. I've found music as the gift of…which is hard to hold onto sometimes when you've been doing something for a while and it becomes your career but there was a lot of years where the only reason I had to write a song was just to get something out. There wasn't any career in itChris: AlrightJason: And so I did that long enough that I think that it's easy for me to sort of stay in that placeChris: Yeah, yeah, I think one of the hallmarks of the songs that I know of yours, I mean from a perspective of they've got a story or they've got an intention to it and it sounds like you were saying, in those early days before anybody was paying you to write a song; or asking you to go do something that it was because you had to get something out. And I feel like that there is a trend in, at least pop music these days, where there's not necessarily a story, it's  just the feeling, it's a vibe that's going on. Do you find that you would have a harder time if you were you know, if you needed to go write the next Justin Bieber song versus writing something that has more of a, a heart pouring so to speak?Jason: I will say it, like a melody or a track or a vibe can bring out a lot of emotions so since you've mentioned Bieber…[7.16]…yeah, his most recent album is like, to me it's been the thing I've listened to the most this year. And so I just love it, I think the song writing is amazing, I think the production is phenomenal and it's emotional to me so it feels like, I feel like I can touch it. There is a lot of pop music that doesn't have that same sense to it.Chris: Yeah, maybe Justin Bieber recently is not the best of those examples but it has that pop sheen to it, necessarily more than an emotion.Jason: Yeah, what I'm kind of hearing you ask is, is it those songs that are less about the lyric and about just a vibe or something like that. Lyric is huge for me, especially in the lane that God has me in and I feel like in some regard  a lot of pop music, the lyric is real secondary to whether or not it's a hit or not right? And I think we're accountable to more, I look at songs in this lane that God has called me to, I've often called them life rafts for people and so if I'm throwing someone a life raft, if that's what God lets me do with my song, I want it to hold them up. And so our words often become people's prayers, you know, and that's phenomenal. Martin Luther said when I can't pray, I sing and we're able to throw these life rafts to people, a lot of times that don't even know what to pray and write the prayer that they need to re-engage their heart with the Lord and so it's a huge, I think a weight, that we need to carry when we're considering ‘do we have the words right?'Seth: It's not  just that when you're in a session just like settling on something because at some point, you know, I mean, you've got deadlines and you've just got to get the song out. I mean you've got eight hours a day and you've got to get home to your family. But the intentionality in this genre of lyric is everything.Jason: Yeah, it totally isSeth: So, rewinding, we skipped forward a lot of years but from you leading worship on that mission trip, wherever you were in California to when you, you know, got your first pay check from doing music, what did that look like?Jason: It was a lot of years. I definitely took the long road so I heard Christine Cane talk once on the distance between anointing and appointing and it's different for all of us but I really felt like God anointed me very specifically to write songs for His church, as a teenager. The appointing was probably some fifteen years later and so I went to Bible College, I became a worship pastor at a church in California and had a band, got a little bitty record deal, toured…sold four albums…it was off to an amazing startChris: All to your relatives right?Jason: Right and then at some point my wife and I felt nudged to move here and so we did but I didn't have a job or anything in music and so my entry point into music, and I was working temp agency jobs, I mean it got pretty lean for us, there was a Christmas where we went to sell blood plasma to try to get home for Christmas.Seth: [10.43] from going to Nashville to California? WowJason: That year I just remember thinking, ‘This, this has got to turn around pretty soon', you know, ‘there's only so much blood available'Seth: It was literally blood, sweat and tearsJason: Yeah, right yeah.Chris: That's amazingJason: My entry point into what I'm doing now, oddly enough, was getting a job doing merchandise for Sonicflood and this was back when they were sort of at the top of their thing. And so I needed a job, I didn't think…that's not what I moved here to do…but I started selling their merchandise and I heard they were about to make their second record and I heard that they wanted the title of the record to be ‘Resonate' and they didn't have a song called ‘Resonate', usually you don't title your album until you've got an album you know? Isn't that weird, so I pounced, ‘merch guy' saw an opportunity and wrote a song called ‘Resonate' which was a shoe in because you have to have a song called ‘Resonate' if the album's called ‘Resonate' and they didn't have it, so they had to record it. They recorded it, of course it was the title track but that happened before I wrote the song [11.53] it became their first single off that album. So that was the first time someone else recorded something that I wrote.Seth: You were doing merch for them on a tour and heard some conversation that [12.09]Jason: I heard a conversation, went to a hotel room, wrote a song, came back and said “Here's a song called ‘Resonate'”Chris: What was that like when you presented it? Did you present it as though you had not heard that before but just randomly came up with a song that was…Jason: No, I wasn't, I didn't play it off like I hadn't heard that they were calling the album ‘Resonate', so that was my entry point and then someone said “So that song made a little bit of money”, that was the first time that ever happened to me you know, ten years into writing songs, selling merchandise and blood. Some friends were saying “You should meet with publishers in town”, I'd never heard of a music publisher. I didn't know there was a career to be had in song writing, I had no idea. I was pretty naive to how the music industry worked and so I met with all the publishers in town, got a quick “No” from everybody. I just didn't have, I had this one song you know, and then…Seth: And they were all like, “And what else?”Jason: Right, right. And so the fourth publisher I met with, which was the last option, saw potential in the writing but really valued sort of, my heart for what I wanted to do with my writing so I entered my first publishing deal and that was, I guess, twelve years ago now.Chris: Who was that with?Jason: Cindy Wilt signed me to Word, so I wrote for Word for three years, she's my champion, she's with the Lord now…Chris: Just this past year…Jason: Yes, she signed me, I probably wrote a hundred songs my first year, as a writer at Word, with co-writes, almost every day. I didn't get one cut.Chris: Wow! Out of a hundred?Jason: A hundred yeah, yeah my batting average was pretty low, I wrote a hundred songs, no cuts but I really felt at the time that it was the most amazing year and I thought ‘Well, I'm not going to get my option picked up because I've made no money for the company but I was just really thankful to the Lord to have sort of lived a dream for a year. And so I was really ready to pack up and go back to something else and she picked up my option, wrote another hundred songs for another year, got my first cut, found out it was a hidden track…Seth: So did you even get paid for this?Jason: Well my…Chris: He got paid with hidden moneyJason: Yes, hidden money, Cindy called and assured me that you get paid the same, just no one will hear it. I was like “Ah, awesome”. So again, I thought…Seth: So one out of two hundredJason: One out of two hundredSeth: That's amazing though just for her vision in you, you know. If I signed a writer, if I was a publisher…Jason: You would not, no, you do not stick around, I would have never stuck with me so yeah, she really is a champion for meChris: Yeah, that's amazingJason: And so she picked up my option again…Seth: After the hidden trackJason: Really, really caught a wave, “So you're telling me there's a chance…”. So year three is when I finally kind of did catch my wave and I started having quite a few things work and the real sort of, another real pivotal album for me was Joy Williams did an album called Genesis and we wrote most of the songs on that album together…Seth: You and Joy…Jason: Yes, and it, it didn't necessarily go on to be the biggest album but everyone loved it. So it was like all of our peers loved it and so all of a sudden, doors started opening up and then I met a guy named Bebo Norman and we started writing songs for his album. And I'd never produced anything and I was just doing demos and stuff with the songs we wrote and then I ended up producing that record for him called Between the Dreaming and the Coming TrueSeth: Was that just kind of like, hey, you had been doing these demos and they loved what you were doing, just keep…Jason: Yeah, well what actually happened is we had written, I think, almost all the songs for his album, just the two of us and he went to the producer that they had hired to produce the first couple of songs and they just weren't thrilled with where they landed and so I think Bebo went and just said “Hey, do you mind if me and Jason sort of try to hit a couple?” I think he asked if we could hit a couple and record at the mall. So, then I was a producer you know and that's when I really did sort of catch a wave in that season. And another thing, so I started having lots of songs getting recorded, I started producing a lot. I really think this happened where I might have written a hundred songs and had no cuts, I think I've had a couple years where I've had a hundred songs cut.Chris: Wow, wowJason: And which is nuts so things just got fast and exciting and I found was a part of a couple guys who stumbled into this band called 10th Avenue North and so we signed them to a little development deal and shot them a record deal and that thing's turned into something really significant. Brandon Heath and I wrote ‘Give me your eyes' which turned into something significant and then it just seemed, it seemed to be like…where Seth is right nowSeth: I don't know if I'm there yetJason: Just lots of songs doing really, really, really well and to some degree I'm still on that wave but I have had a bit of a shift in, for me personally, and like God uses music in so many different ways but the song that I was most desiring in my life was songs for the Church. Songs that the Church could bring in worship to the Lord and I had a picture in my mind since high school that one day I would walk in to the back of a room and hear God's people singing something that He let me be a part of writing. So this is relatively recent, about six and a half years ago, six years ago I had…the mailbox money was there…and the accolades and stuff with my peers was there but I had this sort of unfulfilled dream and passion of mine and I was asking the Lord, before I moved into another [18.51] deal, if I was meant to keep doing this because I truly, and I prayed this, and I truly meant it, that I would trade all of the other things and what it brought and the success that it brought for that experience of walking in the back of a church and hearing God's people singing something that He'd let me be a part of writing.So I started bringing this prayer to the Lord about six and a half years ago, took some space from writing and it just seemed like that, at that time God shifted some things from me and really moved me into a place where that was going to become a much more significant part of my life. I remember the day I heard a church sing, I was in the back of a room and I heard a church sing something I wrote for the first time and it was six years ago. It was something I'd written with a guy named Reuben Morgan, because of the success that I'd had, he had come through town and he'd asked if he could get with Christian music's sort of top writer/producers and I was one of three he spent a day with and he didn't really want to write any songs. It was more to just sort of like talk philosophy, hang out, kind of get some exposure to some other ways of maybe approaching songs and take that back because they write their songs internally. So we spent a day and didn't write but we became friends instantly, it was like the brother that was out there that I hadn't met yet. So he came back through a couple of weeks later and on a Saturday morning we just decided to give a go at writing a little something and we wrote Forever Reign but he wasn't thinking that he would take it home and use it at church. So it was just a song that was just on a voice memo on two phones and I didn't know if that's all it would ever be and you really don't know.I think songwriters out there kind of wonder if you know when you've got one of those and you really don't know. I think you should feel like you've got one of those with every song you ever write, so this song was sitting there and I'm still praying this prayer, “Lord, let me walk in the back of a church and hear your people singing something You let me write” and I get this email and it says “Hey, decided to give this a run at church, it's unbelievable what's happening, this is just a board mix so excuse it being rough but I just wanted you to hear it”. And so I'm by myself in my room at home and I push play and I'm listening to Hillsong church sing ‘Forever Reign' like their lives depend upon it and I realized at that moment I was in the back of a church, like, but in God's extravagant and beautiful way, I was by myself with Him but I was listening into the back of not just any church but the most influential church on worship in the world. That really marked a transition for me and I so love radio, it's so fun for me and hooks and pop melodies but if I had to give my life as a writer to one thing, it would certainly be songs that God's people are singing in the church and so I do as much of that as possible these days and really love itChris: What an amazing storySeth: It's pretty crazyChris: Yeah, it is, and the fact that you were able to have kind of a private moment there but still have that experience that you kind of envisioned years and years beforeJason: Yeah, God's got this stuff you know, He's got usChris: Well speaking of that and the faith that it took to get to that point, what kind of faith did it take for you or ‘stick-to-it-iveness' that first year where you had the deal and you wrote a hundred songs and not one cut and then the second year where you finally got one but not many people would hear it unless they knew how to work a CD player the right way? What did it take for you to keep going and for Cindy to continue to have faith in you, just what was that experience like for you?Jason: Well I think what keeps us going is that we love it, it's hard for me to come over here and talk with Seth and not be like ‘So let's write something' because I love it, I love when we write, I love writing songs and so it's what keeps you going is that you love it. Even if there's not the return of people hearing it, that's a big bonus but that kept me going at it. And also too, I'm a bit, I'm driven, I don't think anyone ends up in this world that's achieving things like you're going to find that drive is a big part of a common factor.Seth: Well to push through two years of not having anything, it has to beJason: Right, it is and belief, people believing in you. The other thing, I do think it's important for songwriters in this era, we're such an instant gratification culture and an entitled culture that we don't appreciate the hours. There's this whole ten thousand hours thing that it takes to master anything that we're all familiar with but I really find that's true. I like to tell songwriters, I've got a good friend named Jimmy Abegg who was in The Ragamuffins with Rich Mullins and he's still a brilliant guitar player but his painting is probably his first love, so he's this brilliant painter; we have his paintings hanging all around our house. My wife dabbles in painting sometimes and so she had taken some pictures of the ocean out where we're from in Santa Cruz and had come home and was painting these ocean scenes, she had six canvasses hanging on the wall and she thought ‘Well I'm going to have Jimmy come out and give me some critique'. And I'm like ‘Oh, that'll be amazing, get critiqued by Jimmy Abegg' so he comes out and he looks at her six paintings and he tells her so many…like he just finds encouraging things to say about every inch of all six canvasses…but then he says, “Okay, so  you've got six, so go paint ninety four more and then paint your first painting”Chris: Oh gosh…Jason: But that's like, what good advice, I mean we always just want to fast track to…and some writers might write…their first song might be a world changing song, there's a difference between people who ‘happen' into a good song and people that constantly write great songs. And that comes from really honing your craft and honing your craft is…there's no shortcut to hours.Chris: I was thinking as you were saying that, the hundred songs in the first year and the hundred songs in the second year, even if they didn't get put anywhere that either could equate to significance on the charts or every bottom dollar, whatever that is, like what a classroom that is, to be in front of someone else, doing a co-write, [25.56] writing. All those songs are building towards…just like you were saying Jimmy was saying that all of those hundred paintings build towards being able to put your first one out there that is really a statementSeth: My competitiveness would probably go back and take some of those if I were in your position and play them for somebody and just watch how many of them would get cut. Now because you're Jason Ingram…Jason: You're totally right, and that does happen, that does happen. I mean you don't…it's hard to get a fair listen…people always listen to things through the filter of what their expectation is and so if their expectation is that something is going to be great, they're more likely to hear it that waySeth: Yeah, it's pre-informed, I'm sureChris: That's definitely true. So the kid that's getting out of Belmont and wanting to become the next Jason Ingram…what's your biggest word of advice to him or her?Jason: Write songs that mean something to you and put your head down and work hard and write a lot. The other thing I…when I say write something that means something to you…is I do find that a lot of people sort of come out of these environments and they've learned some sort of craft butSeth: Like meaning [27.17] haven't gone and gotten a degreeJason: Yeah, like got a degree or they've kind of read some books so they want to do something so they study the craft and you can assemble a song because the rhyme is there or the hook is there but I just think the difference, even in the pop world, and certainly in Country and Christian, is the songs that are written because they matter to you is…those are always the ones that do something. And another thing I tell people is if you want to be a songwriter, make sure your calendar tells me you're a songwriter because if your calendar doesn't tell me you're a songwriter you're not a songwriter.We sort of have this sort of idea that ‘Well, I'm just going to catch a song, I'm waiting for inspiration or…', the thing that we learn is,  we calendar our song writing and then good things happen. You tend to want to think that…like even ‘Forever Reign' as an example…or anything like that, that I was woken up in the middle of the night and the Lord said “I've got something for you”, so I got up, I sang something into my phone and the next morning I'm playing it back, and I'm like ‘Oh my goodness, this is amazing'. But, really it was just a date and a time that was scheduled on a calendar and had that not happened, that song would not exist and so I always tell people your calendar will tell me what you are in life and if you want to be a songwriter let's look at your calendar and let's see if you are. That's a big one is because it takes a lot of discipline to keep writing songsSeth: Now that's a good word, it's kind of less of waiting for inspiration to strike and just showing up every day and then the inspiration comes because of who you're around and…Chris: Definitely, definitelyJason: Yeah, and another thing is, on that, because of who you're around, co-write. We both know, we all know co-writing is the key to my success, that wasn't something I was doing…none of the songs that people know me by would even exist…that's a very big dealSeth: Do you sit down nowadays, ever, and just do anything by yourself anymore or is it just kind of like…that's…you don't do it that way anymore?Jason: I really don't. Every now and then, I think last year I wrote a song by myself, I just…you know was in a moment where I felt like I needed to express something…but that's so rare. I have an unfair advantage in that I have access to a lot of talented friends and so I want to know what my idea shapes into with someone else's mind involved in it as wellChris: Was that a process for you? In the early days when you say you sat in your room by yourself writing that song, to being mostly known as a person whose an amazing collaborator and co-writer, that process of transitioning into mostly co-writesJason: One of the things I told my first publisher when I signed my first publishing deal is that I write my best songs by myself and I really believed that and she said “Okay, well we'll see how that shapes up for you”. And it certainly was not true, what I said. I do not write my best songs by myself.Chris: How long did that take for you to fully believe that?Jason: About two years, of writing some by myself and writing a ton with other people, it makes sense though, I mean the community in strength. Like it just…it makes sense that when you do something as a team you're going to get better results than individualsSeth: That word is recurring very many times in this podcastChris: Isn't it though? It's amazingSeth: The importance of team and along with your team, when you were getting into it would you consider that publisher like your mentor, do you feel like you had a mentor, sort of shepherding you in your career?Jason: She would have been my mentor in that season of life for sure, she would listen to everything I wrote and told me what was working and what wasn't, yeah that was just like school for meChris: Was it tough to hear?Jason: No, because the heart was someone who was…when no one else wanted to give me any advance and tell me to write songs…this was the person that said “You can do it” so no, it definitely wasn't. I mean, it's always tough to hear in the regard that I think we put our hearts, we put ourselves into these things that we do and so it's always hard to hear things that are critical but it's so valuableSeth: At this point in your career you've achieved some pretty big success by any world standard. Is there anything that you're still afraid of when you come into work every day?Jason: Yes and it's that I'm afraid that I'm missing what God wants out of me and so I keep that in front of me, like the thing I'm really wanting to be mindful of in 2016 is if I didn't write another song [32.38] my family's going to be okay and I've accomplished something and I could come and write songs purely out of craft and gifting as can you and get good results but I…what I'm afraid of is, I'm not seeking what God wants…What does He want from me? What does He…what are the prayers that people need? What are the life rafts that we need to throw to people? What are the…not just writing songs [33.13] I just don't want to…in this space that I'm in…the music industry works unfortunately, I think, very much like any other industry, there's not a lot of conversation of mission, there's not a lot of conversation of, truly, of life impact, which is kind of sad you know. You want to hope that that's there but we're inundated by ‘Is it a hit?', I hate that word, I love when things become a hit but I…Seth: If that's what you're shooting forJason: The fear in me is just that we would just write really catchy jingles that people enjoy but that we're not really bringing the people what God, what His heart for us to bring them is. So that's front and centre for meSeth: Now that's goodChris: You're kind of building on that, and borrowing from a term you said earlier that you feel you're still kind of riding that initial wave that you caught. Can you foresee what you either want your next wave to look like or what you feel like you're transitioning into now? If it's the same thing, that's fine but what is the next two, three, five years look like for Jason Ingram?Jason: I've reached a place of freedom in my life where there's been a lot of hustle and  a lot of drive for a lot of years and I really want to sit in a place of rest and freedom and gratitude and so when you're too tired or there's something that happens when you're not taking care of yourself or your soul and your ‘get to's' become ‘got to's'. There is some years where I get to write a song, I get to be with this artist today, I get to come and talk about this. They become ‘got to's', I've got to do this, I've got to write today, I've got to be with that artist tomorrow. And there's no joy in that, there's no rest in that and for me, I'm just trying to move just into a space where everything is a ‘get to' again and however long God wants to use me in this capacity, like I'm pumped but holding it loosely.But I am excited, I'm ready to write the best songs I've ever written and to dig deep and jump around a room [35.36] listening to you know, I'm super fired up so I don't know, I don't have another thing, you know, just this thing and I do think there's something to that. I don't often say to people like you can go so many paths when something starts working, when one thing's working it's easy to start thinking about all these other things that you're not doing. And I've just tried to live by this principle that I heard someone say which is so where you have favour and so where I have favour, that's where I'm going to continue to sow and not be thinking about ‘Well because this is working [36.18] what I can get in that door, that I could do that thing'Chris: It's been a pleasure to  hear from you. I know that so many of your words have turned into songs that have turned into these personal words for other people. You know they've taken those as their own, as their prayer like you're saying. So it's been a pleasure for me to be able to sit here and just hear from you because so much of what I've heard from you have been the songs that you've created and so to hear personally from you about some of that with the struggles or the high points or the…what you're thinking of as some of those songs come to light has been a pleasure man, thank youSeth: Yeah, super funJason: Thanks so much for the time manSeth: You've been listening to the Full Circle Music Show, leave us a nice rating and review on iTunes. Editing help this week thanks to Kayley Ingram and [37.05] Jerricho Scroggins, produced by the Full Circle Music Company. Check us out at fullcirclemusic.org/podcastwww.fullcirclemusic.orgThe post FCM012 – Writing 100 Songs A Year with Jason Ingram appeared first on Full Circle Music. See acast.com/privacy for privacy and opt-out information.

Daddel Gebabbel
#9 – Now or never!

Daddel Gebabbel

Play Episode Listen Later Jan 11, 2014 121:10


Der erste PS4 Magazin Podcast im Jahr 2013 +1! Wir sind wieder da, obwohl wir gar nicht weg gewesen sind. Peter, Andre, Chris und Jan reden über das aktuelle Geschehen der PlayStation (Now), Ankündigungen neuer Spiele wie Alien und Evolve und starten endlich das langangekündigte Quiz mit Chris. Was wir zuletzt gezockt und gespielt haben und ein weiteres tolles Gewinnspiel runden die Sache perfekt ab! Ihr könnt wieder zwei GameStop+ Guthabenkarten im Wert von 50€ gewinnen! Macht mit bei unserem Gewinnspiel und beantwortet einfach folgende Frage: Was müsst ihr als GameStop Plus Mitglied sammeln? Möhren oder Tomaten? Schreibt uns eure Antwort einfach per Mail an podcast@ps4-magazin.de. Einsendeschluss ist der 19.01.2014! Beginn - 00:04 Intro feat. GameStop Gewinnspiel 00:04 - 00:49 PlayStation Now a.k.a. Gaikai 00:49 - 01:03 Meinungen zu den Ankündigungen neuer Spiele 01:03 - 01:11 Best of und Bekanntgabe der Gewinner 01:11 - 01:30 Quiz mit Chris - Who the Fuck is Mark Cerny!? 01:30 - 01:48 Was habt ihr zuletzt gezockt? inkl. Assassin’s Creed IV und Deadpool 01:48 - 01:55 Was habt ihr zuletzt gesehen? mit Breaking Bad und Machete Kills 01:55 - Ende Verabschiedung mit Outtakes