Serverless Chats
Episode #25: Using Serverless to Transform Careers and Communities with Farrah Campbell and Danielle Heberling
About Farrah Campbell:
After 10 years of working in healthcare management, a serendipitous 20-minute car ride with Kara Swisher inspired Farrah to make the jump into technology. She has worked at multiple startups in many different capacities, eventually working her way to being the Ecosystems Director for Stackery in Portland, Oregon. As the Stackery Ecosystems Director, Farrah has managed the Stackery relationship with AWS including Stackery as an Advanced Technology Partner, achieving the AWS DevOps Competency, a launch partner for Lambda Layers. Farrah has cultivated the serverless community as an organizer of Portland Serverless Days, the Portland Serverless Meetup, along with numerous serverless workshops and the Portland tech community events from Techfest to bringing multiple luminaries to Portland. She's also an AWS Serverless Hero.
- Twitter: @FarrahC32
- Email: farrah@stackery.io
About Danielle Heberling:
Danielle Heberling is a software engineer with a background that includes being a musician and teaching at a K-8 public school. She’s passionate about building things that make the world a better place, whether that be through social change or a good laugh. When she’s not coding, you can often find her reaching back to her teaching roots by mentoring folks from underrepresented groups that would like to make a career switch into tech.
- Twitter: @deeheber
- Email: danielle@stackery.io
Notes:
- Translator GitHub Repo: https://github.com/stackery/language-translator
- Translator App: www.serverlessing.io
- Stackery Blog: https://www.stackery.io/blog/
- re:Invent Session: https://www.portal.reinvent.awsevents.com/connect/search.ww?searchPhrase=DVC16
Transcript:
Jeremy: Hi everyone. I'm Jeremy Daly and you're listening to Serverless Chats. This week I'm chatting with Farrah Campbell and Danielle Heberling. Hi Farrah and Danielle, thanks for joining me.
Farrah: Hey Jeremy, thanks for having me.
Danielle: Thanks for having me.
Jeremy: So you both work at Stackery and we can talk a little bit more about what Stackery does in a bit, but I want to start with you Farrah because you are the ecosystems director there and I think it's a really interesting role. Can you tell us what that's all about?
Farrah: Sure. Well, essentially the way I look at it is my job is to connect with people across AWS and other technical partners along with the serverless ecosystem so that we can increase serverless adoption.
Jeremy: Awesome. And Danielle, you are a software engineer at Stackery, and I'm curious what that role looks like when you are building serverless applications to help people build serverless applications.
Danielle: Yeah, it's pretty meta actually. Well, at Stackery we're a small startup. There's only six software engineers total. So I guess you could say we're all technically full stack, so I just jump in anywhere in the stack where I'm needed. And sometimes do customer support too.
Jeremy: Very cool. So I saw the two of you give a talk at Serverlessconf, New York, called Leveling Up Serverless. And you talk about this app that you built and we will get into that in a minute, but what I really loved about your talk was the story behind it. And as you both explained, you have very different backgrounds. Neither of you started in tech, but somehow you sort of serendipitously came across serverless, started participating in the serverless community. And that's what inspired you and enabled you in a way to actually build this application. And I think your story is inspiring, especially to people who are getting into tech or thinking about getting into tech. So I'd love to just talk about your experiences today and we can go through that. So Farrah, let's start with you. How did you get into tech?
Farrah: Well, my intro to tech wasn't like many people's, I hear. In fact, it wasn't until after high school that I really actually explored the internet. My mom had met a new man that she married who owned a computer company called MicroAge and he started a new startup in the back of that where he had multiple engineers working.
And I talked him into letting me work for them to research the horizontal and vertical markets. Multiple years later being a single mom needing to pay the bills, I found a job in health insurance but always really still had that love for working with developers and would always find ways to try to work with the engineering and IT departments, which was awesome because when I moved to Portland there was all these tech companies and there's this very vibrant growing community.
And I wanted so badly to be a part of it, but it took me... Well, I applied for jobs for about a year without any... I didn't get any interviews scheduled, and then started working or volunteering at a conference where I was able to meet a number of people. One who introduced me to a small startup in Portland where I was able to start working for four hours a week and then quickly turned that into a full-time office management position.
And then multiple startups along the way ended up leading me to Stackery. The cool thing about it though is with each one of those startup jobs, I was always trying to really understand the tech and trying to find ways to work and be a part of the engineering teams. They even set up a way for me to update documentation so I would actually have contributions to our source control. And it's been pretty cool to be able to do something more with that at Stackery.
Jeremy: Awesome. So Danielle, I think you and I probably had a very similar start. I went to college with the intent of being a music teacher actually, and instead I ended up switching into technology. But you started with music and you kind of went from there.
Danielle: Yeah, definitely. So I grew up in a small town and in order to keep out of trouble, I just became very active in music throughout middle school, high school, took piano lessons starting in kindergarten even. I just really loved creating and sharing music, and it got to the point where I had to pick a college major to go to college and I really had no idea what I wanted to do.
So I kind of looked at what I enjoyed doing activity wise and gravitated towards music. And I really like helping people out, teaching people. So I decided to go for music education. So I was a music teacher in a public school system for a few years and it took me to a different state, a completely different mindset in that area. I definitely enjoyed my time there, but longterm teaching just wasn't for me.
So I went back in a whirlwind of not knowing what I wanted to do for a career, but I did need to pay my bills. So I just put out a lot of job applications and ended up getting hired in tech support. I really love tech support because every day was a completely new challenge. A customer would write in with a question about how to use the product and it would be like something that I never even thought someone would want to use the product for.
So it really kind of gave me a great lesson in empathy and kind of role playing in how other people think. It got to a point where I was supporting the developer version of the product. So the customer's writing in were people writing custom code to add to our platform offering that we had. And it was my job to determine is this a bug in our system or is this a bug based off the code that the person added. So I did some free online tutorials in order to be able to have more educated conversations with the people writing it.
And it goes back to being a musician, just creating things. And I build a few silly websites and just really loved doing that and sharing what I created with other people. It was just a different medium. So music to code, and as far as customer support goes, I just wanted to be the person to provide the better experience for the customer. So that's kind of what led me to attending a code school and becoming a software engineer.
Jeremy: Yeah. And I actually, I think that a lot of software engineers don't have enough experience at the product level and so they don't have that customer empathy that you were talking about. And I think your experience dealing with that actually it makes a better software developer, because I think we too often get sort of bogged down with the tech and we don't think about that overall customer experience.
And I totally agree with you on the parallels to music. I mean writing software is definitely more of an art in my opinion than it is a science. And it is really, really rewarding to get to a working product and get that out there, and knowing you've created something. So anyways, so let's talk about how you both got started with serverless. Farrah, Stackery was your first foray into serverless. So how did you get connected?
Farrah: The last startup that I was at, it was called Reflect, was being acquired by Puppet and that fit wasn't going to be for me. And I had put a few feelers out within the Portland community and actually got introduced to the CEO of Stackery at the time who created this role for me. Something that was completely out of anything I had ever done, but I'm always willing to tackle a new problem and I always like a new challenge.
Jeremy: Awesome. And Danielle, you are a container convert, correct?
Danielle: I am, yes. Fresh out of code school, my first job was ECS. We did all containers. Luckily it was microservices, so it wasn't too much of a mind shift set on that front. But ECS is how I first got my feet wet with AWS and cloud services.
Jeremy: Right. So then you both got involved in the Portland tech community and attending meetups and things like that. And that's actually how the two of you got connected.
Danielle: Yeah, so I'm not sure how it is in other cities, but in Portland pretty much every single tech meetup has their own corresponding Slack channel. And Farrah I just happened to be hanging out in one and she mentioned Stackery, talked about how they were hiring software engineers. And the one thing that really appealed to me was she said that half of the software engineering team was women.
So on top of that I was also starting to get my feet wet with serverless. So that's kind of what prompted me to message her just to learn more. I wasn't even looking for a job, but I asked her out to coffee, just kind of more of an informational interview and somehow I ended up applying and now I'm there.
Jeremy: That's awesome. And that's the power of meetups and conferences, right? Where you go and you meet new people, you get new ideas, you expand your list of contacts and just really, really good things can happen. And if you have the ability, if you get the chance to be able to go to a conference or meetups, I definitely suggest you do things like that.
So you had mentioned that half of the developers at Stackery or on the Stackery development team were women. And so this is obviously something we don't see often enough in tech. We're not quite there yet. So is there something about serverless and the serverless community that is more welcoming to people you think?
Farrah: I definitely do. Serverless is a new approach. It's inventing a whole new way to build software applications and it's sticking. And this community, I feel like everybody has a lot of work to do, a lot of big things to accomplish and everybody's at a starting point. Everybody's willing to have open conversations without putting others down or explain to you why you're wrong about something. Everybody's at the same starting point and just trying to learn from one another.
Jeremy: Yeah, I totally agree. And I think one of the things that's great about serverless is the fact that we are still very, very early and we're still figuring things out. I mean we're still developing the tech, let alone the tools and the best practices that go along with that stuff. So when you come from a more traditional sort of computer science background, because things are so different in serverless or some things are different, you need to unlearn quite a few things to be able to do this. And I think for most people this is ingrained in their heads and they probably resist the change. So coming from a fresh perspective is probably a benefit.
Danielle: Yeah, I agree. And I think just because everything's so new and serverless is a lot more than managed services, but that is a big aspect of it. So there's always eyes on the new thing, AWS or GCP is releasing and people are talking about it and how they're using it, planning on using it. So that's what makes it fun too.
Jeremy: Yeah, definitely. All right. So let's talk about this app that YouTube built, and we'll get into the details in a minute, but first of all, like what was it that made you say, "Hey, I want to go build a serverless app?"
Farrah: I actually went to Danielle because there was, I'd say there was a lot going on in their lives at the time and sometimes when that happens you want to take steps forward and try to grow. And so we knew we wanted to work on something together but weren't quite sure what it was. And as I started doing tutorials through Stackery's website, I was able to build my own web hook. I was able to follow along the Wild Rydes tutorial and build my unicorn app.
And knowing that Danielle has been a teacher before, I went to her and asked her if she might be willing to help me to build a serverless application. I then would get the experience of learning how to actually build a serverless app, and at the same time Danielle would have, I think, more experience trying to teach somebody and build something from scratch.
Danielle: And I also think it's a lot of fun to work with someone who's brand new to something because they have that beginner's mindset, that endless optimism. So it can really be infectious in a good way.
Jeremy: Right. The anything's possible until you run up to deploying a cloud front distribution and it takes 45 minutes. But anyways-
Farrah: I was always worried that it would be terrible working with a beginner, because I seem to just run into problem after problem after problem after problem, and Danielle was always so incredibly patient and understanding, which made things so much easier.
Jeremy: Yeah. But that's just how we code. I mean there are probably some people who can write perfect code the first time through, but for the vast majority of us it is a lot of trial and error. We have to test our code and we make a lot of mistakes. We have to test it and test it to get it working properly. So if you are new to development or you are a experienced programmer, that is a perfectly fine way to do it. So certainly don't feel bad about that. So anyways, so you built a language translator app. So what was the motivation behind building this?
Farrah: So the motivation for building the app is we knew we wanted to do something. We knew we wanted to have some sort of positive theme or to be beneficial to our community in some way. And after a trip to Australia, I got to attend the AWS community day in Melbourne and got to meet an incredibly talented group of people.
But in these conversations, and we were talking about what are the barriers that every single one of us has had to developing or gaining new skills. And they started talking about documentation being one of them, and I had never ever thought about that being a barrier before. And so I brought the idea back to Danielle and said, "Do you think that maybe we could build a language translating application or something?" And she was stoked about it.
Jeremy: Awesome. So then how did you get started? How did you plan what you were going to build?
Danielle: So when it comes to planning the app, I just wanted to do something as simple as possible just because I didn't want Farrah to get overwhelmed and frustrated and not want to do this ever again. So a simplest thing possible that I could think of was just kind of a small backend pipeline that could be plugged in elsewhere with serverlessing.io, I added a front end onto it, but I use like that core architecture of, it's a bucket function bucket. So the first bucket takes in a plain text file of what someone wants translated, the function talks to the AWS translate service and then gets the translated text, and then it puts it in the second bucket.
Jeremy: So does it just do text right now or does it do like HTML files as well?
Danielle: That's actually something we'd want to improve in the future, because we were playing around specifically with markdown files because the idea of translating documentation, and a AWS translate was giving us some unexpected results in regards to spacing and things like that. So we actually have an open GitHub issue for that, if anyone wants to help out.
Jeremy: That's actually something you find with working with a lot of these managed services is that either there are limitations or there's these nuances, and sometimes you have to dig to find them and you kind of end up banging your head against the wall to try to figure these things out.
Danielle: Yeah, definitely.
Jeremy: So anyways. So that's really interesting. So then how do you-
Farrah: That was actually... Can I talk about that just for a little bit?
Jeremy: Yeah, go ahead.
Farrah: Because this is actually, I think, one of the hardest parts as a beginner to development, is understanding what the error code messages are, understanding where should I start to debug, when should I research? Is this a limitation on the actual service? We were getting all kinds of error messages and couldn't figure out what was wrong, and we came to find out that AWS translate only processes 5,000 bytes, which is about two paragraphs, which is not something that I would have initially thought and looked for. And so it was definitely a huge learning experience for me to understand how to understand what these error messages are, where to start to look. And again that that just basically is part of the development life cycle.
Jeremy: Yeah, another great point. Another great point. All right, so this exists though, right? It's up and running now, we can go and use this if we wanted to?
Danielle: It is, yeah. If you don't want to add code to it, you can just upload a plain text file at serverlessing.io, and if it's a longer file it might take a bit to translate for you, but be patient and it'll spit out the translated text in a language of your choice.
Jeremy: And you open sourced this, right? So that people can download it if they want and play around with it.
Danielle: Yeah, feel free to download it, play around with it. We also have some open GitHub issues. Feel free to jump in on one of those if you want to work with Farrah or I or both of us on it collaboratively, we're always into working with new people too.
Jeremy: Great. All right, and so what are you going to do with this application next? Got big plans?
Farrah: That's a very good question. That's a very good question. I mean there's definitely some plans. I think the next thing that we want to do is to be able to process more than just plain text files. And then also my next is like adding Polly. So we'd have talk to text or text to talk.
Danielle: Text to speech.
Farrah: Text to speech.
Jeremy: Yes. So you are dealing with a bunch of cloud resources here, S3 buckets and Lambda functions and things like that. So you used infrastructure as code to build this, correct?
Danielle: We did, yeah. We started with the drag and drop interface of Stackery, but we also ran into the classic circular dependency issue with the S3 bucket. So we did have to manually edit the CloudFormation template a little bit.
Jeremy: And how did you find editing a CloudFormation template to be?
Danielle: A lot of fun?
Jeremy: It is. It gets-
Farrah: I thought it was fun. I actually did think it was fun. I actually felt pretty cool at that moment because we were in the CLI and it was really cool just to... if you start to understand the lingo that's being used, like we're navigating through the JSON object to drill into the function. Like those are all big learning moments for me. So I thought it was fun.
Jeremy: That's awesome. And CloudFormation is one of those things where if you stare at it for long enough your eyes will go cross. But once you figure out what it's doing, it's extremely powerful. And the Stackery interface, and actually let's talk about that for a second. So you can drag and drop these resources. You can wire them together, and it's not just the drag and drop either.
Like you can edit the information, and edit those configuration options. There's a bunch of sane defaults in there, and if you've ever had to write a CloudFormation template by hand, then you know you go to the documentation pages and you find certain attributes and then under each attribute there's a complex type. And then you've got to go and look at the details there, and then there's a complex type under that and it just keeps going and going. And so this is something that the Stackery, the visual builder, helps you do really easily and just abstracts all that away, correct?
Danielle: Correct. Yeah. And actually when I first got hired at Stackery, it was just drag and drop. We didn't have the CloudFormation template surfaced in the UI yet. So that was actually one of my first big projects, and it took a while for me to realize how huge it was going to be. But it really is, especially with our new VS code editor where you can have a tab of the template and then a tab of the Stackery visual UI, and you can physically see it change right in front of your eyes. It's really cool.
Jeremy: Yeah, definitely. And it's all local, right? So I mean there's no uploading or anything like that. It's just a very, very cool and simple way to build a CloudFormation. So if you are struggling to write CloudFormation templates, definitely take a look at stackery.io and check out the tool that they have available there.
So anyways, so this episode is actually airing during re:Invent and the two of you are giving a talk called The Power of Serverless for Transforming Careers and Communities. And that is Thursday at noon in the Dev Lounge in the Venetian. So if you're at re:Invent, you're listening to this and it's before noon on Thursday, definitely go and check out Danielle and Farrah giving this talk. And so this is going to be about the app that you built and again, the motivation and how you came to build it, right?
Danielle: Correct. Yes. It will start with our backgrounds and then the inspiration for the app, and just kind of that whole storyline behind every time you build an application, the roadblocks that you go through and how you get yourself unstuck.
Jeremy: All right, so you'll get into a little bit more about the debugging and some of that stuff, right?
Danielle: Correct. Yeah, we'll get more into the storyline of that.
Jeremy: All right, cool. So Farrah, anything else going on at re:Invent that people should know about?
Farrah: Well, there's a lot of things going on at re:Invent. Oh my gosh, I'm still trying to keep up with all the recent announcements that keep happening even up until today.
Jeremy: I know, it's crazy.
Farrah: Well, we're having a party, we're hosting a party Wednesday night. I'm hoping to see many friendly faces there. Please come say hi if we have not met before. I know I've met a ton of people on Twitter and I love to put a face with the name. And yes, please come to our talk, let us know how we did and let us know what we could do better.
Jeremy: Awesome. All right. Yeah, so Wednesday night is the ServerlessForEveryone party. There are so many people signed up for it. I think we're going to have to take over re:Play next year and that'll just be the serverless party because this is getting bigger and bigger, and definitely I will be there. Come talk to me, talk to Farrah, talk to Danielle. The serverless community, honestly, everyone is so approachable. There's just so many great people. It is such an honor to be part of all this. Oh, and by the way, Farrah, you were recently named a serverless hero.
Farrah: I was. I still am taken aback by this entire experience. I was reading the, the RedMonk article about it last night and just tears were running down my face. It's such an honor and such an achievement, and I really just appreciate everybody at AWS for designating me with that. To join people like yourself, Jeremy. It's pretty awesome.
Jeremy: You definitely deserve it. I mean with everything you've done with like the Portland meetups and Portland ServerlessDays and all the outreach that you've done, I mean you're just a huge part of this community. I mean you both are. So you know, thank you for everything that you two do. So if people want to get in touch with either of you, Farrah, how would they go about doing that?
Farrah: Twitter is by far the easiest way and the fastest way to get a hold of me. I'm just at @farrahc32, and then also you can always reach me on LinkedIn or by email. And I think my email is listed on the AWS heroes website.
Jeremy: Okay. And Danielle, how do we get in touch with you?
Danielle: The best way to get in touch with me would probably be a DM on Twitter @dheber, you could also send me an email, danielle@stackery.io.
Jeremy: Okay. And then the Stackery blog is stackery.io/blog and then the translation app that you built is available at serverlessing.io.
Farrah: Right. And you can also reach us through GitHub too, through the GitHub link, which is https://github.com/stackery/language-translator.
Danielle: Yes. Yeah.
Jeremy: Perfect. All right. I will get all of that information into the show notes along with your contact information and where you're speaking on Thursday. This was great. Thank you so much again for being here.
Farrah: Awesome. Thank you.
Danielle: Thanks for having us, Jeremy.