This is the transcript of my conversation on @FromSourcePod with Katy Bowman, a Developer at Sparkbox. Sparkbox is a web development agency that focuses on working with clients to build a better web. Before becoming a developer, she worked as a freelance writer and editor and before that as a community and regional planner. We talk about the challenges and joys of being a consultant and how to have a successful apprentice program.
This has been edited for clarity.
Michelle: Katy, can you tell us your current job title and how long you've been there?
Katy: Sure. I am a developer. I work at Sparkbox, which is a web development agency in Dayton, Ohio. I have been here for about a year and a half.
Michelle: What does an average day look like for you?
Michelle: What do you think are the advantages and disadvantages of working in consulting rather than a company where you're working on just one product?
Katy: I've actually had the opportunity of doing both, which is wonderful. In my first job I worked for LexisNexis on a product that they own. I worked there for a little over a year and that was really wonderful. I had the opportunity to really dive deep really and learn a particular product.
Katy: Doing consulting work, even though I don't get to dive as deep into a lot of things, I do still get to dive pretty deep on a lot of projects. Also, I get to learn a lot of new technologies and work on a lot of different things. In a larger app, if I was only working on one thing, I wouldn't have the opportunity to do that. For instance, as a developer that concentrates a lot on the front end, I do a little bit of back end but mostly front end. If I was working strictly on a large web app, I might not have the opportunity to work on things like build process or setting up a node environment. I enjoy being able to get my hands into different areas of web development and consulting gives me that opportunity.
Michelle: Do you think that since consulting exposes you to so much it helps you decide, okay, after this, this is what I want to focus on? Or do you want to continue to work on everything?
Katy: I do like learning about it, but it does get more frustrating for me. I also have friends I was just having a conversation with the other day for whom it's the opposite. They really love the opportunities to work on the CSS stuff and the more design type tasks. It's nice to be able to have the opportunity and the breadth to be able to do both.
Michelle: Have you had a favorite long term project?
Katy: Probably the project I'm on right now is more of a long term engagement. As I said, it's a large react e-commerce app that we're building. It's been really interesting to not only get to do that deep dive but also do that deep dive as a consultant and not necessarily as someone who works directly for that client. It's a different perspective. You're thinking not only about the code you're writing, but how well am I working with these people? Am I learning from them and also helping them learn how to build things better? So that's a really unique opportunity and a neat way of working.
Michelle: When you're a consultant, are you just making a prototype? Or are you creating a whole project? Then how does it end? Do you hand it off to the client's internal team? Do you provide ongoing maintenance?
Katy: It depends. We do several different types of consulting when we work with our clients. Yes, we do build full out sites end to end. When we're done, it's done at least as done as development projects ever are. They're always open to improvement.
Katy: There are other times when we go in and we do discovery work. We just talk with the client and talk them through how to think about what they want. There are other times when clients will hire us for a specific part of their site. Say maybe they're building a specialized page or doing some analysis. I know we worked with a client at one point to put together a visualization of some data that they've run some analysis on and collected some information about. In that case, we were just building a small, simple page to display that for them. We do all sorts of different projects, and it just depends on the client and what they need.
Michelle: Do you feel like you have to be even more disciplined with your code, that you have to make it cleaner and well documented? Because your project might go to another team you never get to have a conversation with?
Katy: Well, yeah, absolutely. But I think that's a concern for everyone, not necessarily just for someone who's consulting on a project. You're always going to have new people coming on that you're not going to get to talk to or you're not going to get to interact with. Teams get shifted around all the time, people leave people join.
Katy: In terms of writing clean code that works and is well documented, I'm not sure that's more true for consultants than it is for people just working on a large project. When you're working for a client, you want to be clear about what you're doing and be able to communicate with them. You want to have that code live on after you're gone and not working on that project anymore. But I would say that that's true for everyone.
Michelle: I definitely wish that was true, having taken on projects without talking to people. laughing
Katy: laughing Maybe that is a bit of wishful thinking on my part.
Michelle: I mean, it's the ideal process, but things are rarely ideal.
Katy: Yeah, it is the ideal process.
Michelle: What's the most boring but essential part of your job?
Katy: Running updates on my computer. You want to make sure that things are kept up to date. But you never want to click at 10 o'clock on a Monday morning. Yes, go ahead and install and find out that it's going to take you an hour of just sitting there and waiting. But that's probably it.
Katy: Most of the work I do is is really interesting. I love building things and solving problems. Even the little things that get annoying sometimes are still interesting. The things where you have to wait, where you don't have control, like running updates and stuff like that, that's probably the most boring but also very essential in terms of maintaining security and keeping everything running fine.
Michelle: Are you often working on multiple projects at one time, or usually one project for a series of weeks or months?
Katy: I have done both. More often, I am working on one project at a time for weeks or months. But it has happened in the past where I have had a couple of projects at the same time.
Michelle: Does it get complicated, trying not to mix things up when switching back and forth between environments for each client? I have enough trouble sometimes comitting to the wrong branch.
Katy: Sometimes when we have a couple of smaller projects it does, but you figure out how to manage it. I have a past career in which working on multiple projects was relatively common. So keeping things straight in that regard has never been much of an issue for me, at least in not in development.
Katy: The interesting thing about working on a couple of projects at the same time, though, is that after a certain point, they do start to communicate with each other. You start to learn things from one project that you can apply to the other project and vice versa, which is really cool.
Michelle: You must be learning new things all the time, starting all these projects, and having to do such a wide variety of tasks.
Katy: Absolutely. That's one of the reasons that I love it. It's one of the reasons I became a developer. I'm never bored. There's always something new, always something different to learn.
Michelle: What's the most stressful part of your job and how do you manage it?
Katy: The most stressful part of my job is when things don't work quite the way I want them to. As a developer, you often run into tasks where you think, Oh, this is going to be straightforward. I'll have this done in a day or two. Then two weeks later, you're still struggling, because a data structure isn't quite what you thought it was or coming in the way you thought it would be. Or maybe you got it most of the way done and the person designing the UX decided they wanted to go in a different direction and you had to completely redo it. Or you found out that you were implementing something incorrectly and you have to go back and redo it. That can get pretty frustrating.
Katy: The way I manage that is to sit back, take a few deep breaths, and realize that a lot of that frustration is really coming from my expectations, and not so much about actually completing the work. I'm frustrated not because this is hard, it's because I feel like it's taking me too long. And maybe it's not maybe it's just taking the amount of time that it needs to take. It's about adjusting my expectations for what the project needs and for what I'm able to produce. Also pairing with someone and asking for help. That helps a lot with frustration. Then you can just talk to somebody and you realize that maybe your expectations are not their expectations. And that's always nice.
Michelle: That's great advice for a common developer problem. I've experienced moments where it seems to take forever to solve a minute problem while other days I'm flying through tasks.
Michelle: What skills do you find the most essential on a day to day basis?
Katy: Especially as someone working with clients, you need to be able to relate with people and to empathize with them. You need to come into an interaction ready to learn from them as much as you are there to help them. We're coming in as experts that can help build them a website or web app or whatever they're building. But we're also coming in as people who have something to learn from our clients as just as much as we are there to help them. That perspective goes a long way.
Michelle: Are there any skills that were on your job description or advised to have that you have never used at all?
Katy: When I was starting out learning how to build websites with HTML and CSS, I was advised to learn Bootstrap and jQuery. I don't use either of those things very often, if at all. For the most part, a lot of what I learned were the basics and I use that every day.
Michelle: I don't work much with the front end. So can you tell me more about why you don't use bootstrap and jQuery?
Katy: Oh, ok. Well, Bootstrap is a design library. It's great if you just need some basic styling for elements that look nice and is accessible. It's a tool that's great for that. Once you get into an environment where you are building custom sites for people, you're probably not going to be using bootstrap all that much, although you might be. Once you get into building more complex and more custom sites, you want a lot more control over the design, you want to be able to develop that design more yourself. It is useful for starting out and learning some of the basics. It's a great tool that and I'm glad that it's there.
Michelle: Thanks for the explanation. If someone wanted your job, what's a good path for them to take?
Katy: I'm not sure that there is one good path. One of the amazing things about where I work is that most of the people that I work with have taken different paths to get there. We do have a few people who have computer science degrees, who have gone through that whole process. Some people have worked on a large web app or in our area, we have a military base nearby so defense contracting is a big deal. We also have people who went through a bootcamp or like myself who learned online. We have people who came from other careers, from other degree programs. We have an apprenticeship program, where I work where every year we bring on a few people who are learning how to build websites, and they come in and we teach them. Some of them end up working for us after their apprenticeship is over.
Katy: The best thing to do if someone wanted my job would be to find the way of learning that works best for them. Then get out in the community and connect with other people. I've attended a few meetups in my area and that's how I got my job. I got out and I talked with people. I made friends and built connections. But really a lot of it's just finding the way of learning that works best for you and then getting out there and doing it.
Michelle: Are you involved in hiring or training new apprentices?
Katy: We all work with the apprentices to some extent. We're all encouraged to have office hours every week where apprentices can get in touch with us, if they just want to chat about whatever projects they're working on or what they're learning or if they have questions or problems. I was actually speaking to one this morning, she had some questions.
Katy: As far as hiring, I've been involved in some interviews. Not too many. The apprenticeship program is built into the fabric of what Sparkbox is and does. It's a program that we all participate in, to some degree.
Michelle: I often hear more from companies that are only hiring senior level engineers and aren't interested in training. So it's encouraging to hear about programs like that where it's integrated into the whole company.
Katy: Yeah, it's a really awesome program and I love it. I've started to see a few more places offering it, which is really neat. A lot of smaller companies I have seen like, like Sparkbox, have been offering some of these apprenticeships and I think they're really wonderful.
Michelle: When you're hiring someone for the apprenticeship or considering a promotion to full time, what do you look for?
Katy: Empathy and humility come into play, absolutely. We like to say that fluency, empathy, and humility are the basic core values. You have to have those to get in the door. We're looking for someone who will work well with our team will work well with our clients. Who is always willing to learn. Like I said, who is who's willing to come at this from an attitude of humility from? Yes, I have something to offer you. But I realized that you have something to offer me as well. And then yeah, I mean, there are some basic technical fluency skills that you have to know. And it depends on the position. You know, absolutely.
Michelle: Is there anything you wish you knew when you started learning and working in tech?
Katy: I knew a lot going in. My husband is a web developer and has been for the last 15/20 years. I had some adjacent knowledge around how all of it worked and what the processes were. I think part of it is just having the perspective. I know I'm not going to know everything going in. That's not possible.
Katy: Part of this is the journey and part of it is learning different things at different times, when you need to know them. I'm not sure I would say that there's anything I wish I'd known going into it. But I know that there's a lot that I have learned that I didn't know when I went into it.
Michelle: So what's your next step?
Katy: As far as my career goes, I'm happy where I am for right now. I am in a position where I'm learning a lot. I enjoy the people that I work with. I enjoy the projects that I get to work on. So right now my next step is really diving in and learning as much as I can while I'm here.
Michelle: Is there any specific technology that you're really excited to dive into next?
Katy: In a previous career, I did a lot of data analysis and data collection. One of the things that my husband does is a lot of data visualization. I've been very interested to get into that more. I have a background in statistics and data analysis and even some data presentations for print. I used to make a lot of charts and maps for print. But I haven't done a lot of that for the web. I would like to dig into doing that for the web and programming in general.
Michelle: That sounds like fun, combining both your design and engineering skills. Are there any technical organizations that you'd like to recommend?
Katy: Most of the organizations that I've been involved with have been very local to Dayton. What I would recommend is to find those local organizations for yourself. Having that community and having people that you can talk with, that you can relate to is essential.
Follow @FromSourcePod for more episodes and to continue the conversation about what tech jobs are really like, from the good, the bad, to the boring.
Rate & review to support the show!