On today’s episode we chat with Crystal Xu, chief of staff at FSH Tech. She explains how she learned to build and deploy apps and services inside her company using Python and Java, without ever getting a traditional computer science education or training to write code. Instead, Xu works with GenAI systems like ChatGPT, Cursor, and Replit to build software through prompt engineering.
You can find Crystal on LinkedIn.
You can learn more about FSH Tech here.
Congrats to Stack OVerflow user David Conrad, who earned a lifeboat badge for answering the question:
How do I create a map with key and value in one line in Java?
[intro music plays]
Ben Popper Build smarter apps with AssemblyAI's speech-to-text API, trusted by over 200,000 developers. From transcription to PII redaction and speaker diarization, get fast, accurate results in seconds. Start now with $50 in free API credits at assemblyai.com/stackoverflow.
BP Hello, everybody. Welcome back to the Stack Overflow Podcast, a place to talk all things software and technology. I'm your host, Ben Popper, Director of Content here at Stack Overflow, joined as I often am by my wonderful co-host, Cassidy Williams, newly employed as a– what is it? You're in developer relations at GitHub? Tell me the title.
Cassidy Williams Yeah, Senior Director of Dev Advocacy.
BP Very cool.
CW And so I’m focusing specifically on the community and open source side and not the enterprise side, which is kind of where my bread and butter is so I'm really excited about it.
BP Great. You're going to be doing events. You're going to be doing live Q&A, live coding.
CW All that jazz.
BP All that jazz. Great. Can't wait to collab on all that. Well, Cassidy, you set up our guest today, so maybe I'll let you give a quick intro and then we'll get to meet them.
CW I first was introduced to Crystal by my former CEO, Lily. She was just like, “Crystal's amazing, and she learned how to code with AI!” And I was like, “What? We can do that now?” And honestly, that's the context needed for the show, and I'm really excited to have her on the show and talk about it.
BP Okay. This is the next generation. They're learning to code with AI. What's that like? Crystal, welcome to the Stack Overflow Podcast.
Crystal Xu Thanks for having me, guys. We'll definitely get into how to learn to code in 2024, which is very, very different from anything from the past. I’m really excited to be here.
BP So for folks who are listening, tell them your full name, a little bit of what it is you do and maybe were doing before you decided to learn to code, and what was it that inspired you to start this journey in 2024 of trying to learn some of those skills?
CX So I am Crystal Xu, and I am Chief of Staff here at FSH Tech. And if you haven't heard of us, it's probably because the software we build is often very, very invisible. But if you have ever been involved in, say, the judicial committee in San Diego, or wanted to schedule an appointment with someone who works in Somerville, or even just filed a permit in Philly, then you actually probably have worked with me and the FSH Tech team.
BP So FSH Tech is behind-the-scenes technology that's mostly used by government and municipalities?
CX Yes, absolutely. I would describe it as– have you ever seen Zootopia? Do you know that scene in the DMV where the sloths are just–
CW I literally just watched it yesterday.
CX It's honestly one of my favorite movies. The slow sloths, you always have to wonder, even though they have computers, why is this whole thing taking so long? I recently went to the DMV because I moved from Seattle to Philly and I needed to get a new license and it honestly took up my entire day. But you always have to wonder though, everyone who works at the DMV, they have computers in front of them, but why the heck is that process still taking so much time out of all of our days? And part of the reason for this is something called the procurement process, actually. And the way governments develop software and buy software is through something called an RFP, or a request for proposal. But the issue with that right now is that they tend to favor those really big, heavy contracts for those large vendors, but if we're being honest, those companies don't care about me or you as residents. They're really just trying to scale as big as they can, and you lose a lot of that authenticity which I think is kind of the secret sauce to all of this.
BP So what was it about joining FSH Tech or just the time of life you're in and the work that you're doing where you're like, “All right, time to learn to code. I've got to add this skillset.”
CX I actually joined FSH Tech as a nontechnical person. I was one of those many, many people out there who describe themselves as someone whose brain just does not work for coding. It's just a different wiring or whatever it is. But what I realized was that it isn't too late for me to learn how to code because AI actually lowers that barrier of entry for so many people. So going back to that secret of understanding people and their problems where I started, I learned to code from a business standpoint first, not syntax. And I know it's pretty traditional for people to use things like Codecademy or HackerRank to just see what they can do, but pseudocode was really that secret for me to be able to actually deploy things in real life. So I never did the first print where it's ‘hello, world’ in Python, which is often that first coding challenge that you see. I actually learned the pseudocode, which is that logic, and from there, I learned how to prompt GPT effectively so that I could get it to do exactly what I want it to do.
CW All coding really is just logic and every single language is just different syntax. And so the fact that you kind of learned it from that angle and then you did GPT to get the syntax on the page is really interesting.
CX And I think, honestly, one of the benefits for that was that I was able to ship product in both Python and JavaScript within a week, because if I was so focused on learning the logic behind it, from there, having ChatGPT or any other AI tooling helped me write the rest of the code. And if I was able to just understand what it was saying, that was actually a great benefit because I think typically people would need to learn Python first and then JavaScript to be able to ship any products.
BP It's interesting to think about it as learning in reverse. So normally, you'd go in and you'd sort of say, “What is a language, and what are some of the things that you use in it, like an argument or a function or an if statement or this,” but if you say, “All right, what do you normally build with those things? What do they add up to as business logic?” Okay, business logic is something maybe I can make more sense of. Now I'm going to write that business logic out and get in return stuff from an AI. And then obviously there's an iterative process going back and forth– is there a bug, is there some way to refine this– but you get to use natural language on top of what you've learned, and then, as you said, that's not the end of the road. Now you've learned about architecture. I'm sure you went and did research about that kind of stuff. You went and learned about Git. Those are the building blocks that just make modern software engineering run, but you get to skip the step of learning the particular language and syntax of each coding language. That can become natural language if you can understand what kind of commands do I need to give, or what kind of requests do I need to make, or basically, what am I asking for that you would typically go out and build? And that's what it's really good at– delivering basic building blocks in return.
CX Exactly. My background is actually in psychology and really understanding people and the process, and working at FSH Tech, I learned very, very quickly that it doesn't actually matter what we build if the people such as the city governments and the residents aren't able to actually utilize it. And that's why I think it's so important that I'm someone who really categorizes themselves as a non-coder, because that's actually what a lot of city staff feel and a big challenge of getting them to implement this new software, which all ties back to the reason why we see government as slow and stagnant.
CW Have you run into any pitfalls? Because honestly, AI isn't wonderful at all code. It's really good at getting some of the basics down, but you run into bugs and you're just like, “Oh, dang. Well, I’ve got to get into the nitty-gritty here.”
CX Oh, yeah. There are definitely bugs that come out where AI tools will really spit out nonsense for me, but with me learning how to do the logic first, I can then read through the code that they spit out and I'm good enough where I'm able to pick out what parts of this are wrong. And if I'm able to fix it myself manually, I go ahead and do that. Otherwise, I've also really learned how to prompt GPT effectively to help me the best it can.
CW Have you tried any other AI tools like Copilot or Claude or any of those other tools? There's so many of them out there now.
CX Ooh, I've definitely used a lot of tools, but I have to say that I found Replit to be the easiest one for me to use because of the native AI tooling. It also has deployment in Git just all in one spot, so I would really recommend that for anyone who's learning to code in 2024 in general.
BP Shout out to Replit, we've had them on the show a few times. They're an interesting company because they're very young and they seem to have built a strong following, I think are recruiting great talent, have a leader who's known within the technical community, and so I think they have a unique, almost AI-native approach. Not that the company didn't exist before it, but that compared to the big orgs which have a million different products and want to squeeze a million different things into what their foundation models can do, Replit is very focused and seems to have produced something a lot of people like.
CX Absolutely. It's been really, really helpful to have that AI tooling just right there as I'm working on code, and everyone in our team has been using it so far and we absolutely love it.
BP So you work on something and then do you send a PR to a staff software engineer and they come back and then you get to talk with them and learn with them? Or how does the process work for the whole software development lifecycle?
CX I think what's cool about what we're doing at FSH Tech is that every day we could be building some type of different software, and being just such a small team, it really is a collaborative process so there's not much of a handoff. If we have software to build, all three of us will really work on it side by side and make sure we've got each other's perspectives. I would say that oftentimes when you're working at a tech company, people see non-technical people as somehow less than or that they don't have the skills somehow, but we really go back to that philosophy of people and process and technology just being the way to solve their needs every day.
CW It's cool that you've been able to have that opportunity where at a much larger organization you probably wouldn't get to get your hands dirty with some of the code, and I think that is one of the cool things about startups in general and smaller companies in general. You get to wear a lot of different hats and kind of see, “Does this hat fit me a bit more? Okay, I'm going to wear it more.”
CX No, totally. I think if I were at a bigger company, I would be maybe coding in a very narrow scope. At FSH Tech, what I love about it is that everything I'm doing is driving actual change at the city level. I know that there's a lot of buzz in the political world right now, especially at the federal level. That federal level of excitement is great, but the people who are going to be helping you, say, fill in that pothole down the road or cut down that tree that's in your way every day to work, are going to be people at the city level. And unfortunately, there's just less engagement there. But in the city of San Diego where nobody knows my name, we were able to build a tool that redacts racially biased information so that prosecutors can actually charge without bias, and that's something that really provides direct civic impact for a lot of different people across the state of California.
BP That's very cool. Can we pause for a minute there and just talk about the genesis of that? Was that something that the prosecution was asking for or somebody else was saying, “This is something that needs to be built because we want things to be fair,” and then the prosecutors accepted it. With a company like FSH Tech, how do you go from, “Hey, there's an issue in government,” or some activists are raising a concern, or maybe somebody within the DA's office wants to make change, to actually building a piece of software and shipping it to them?
CX Racial bias is oftentimes a hot topic in police enforcement and things like that, but California as a state actually is passing a law where they have to do race-blind charging for that first round. And that's going to be enacted January 1st of 2025, so cities are really coming up on that deadline, which is why so many people are looking for this. But in that law, there's actually no way for you to figure out how you should actually comply with this law itself. It just tells you that you have to redact all racial information, and that's where a lot of companies, including FSH Tech, are able to use technology to be able to help solve that problem.
BP So an abstract law is passed, but who's going to actualize this? What does this look like as a tool that we can utilize?
CX Exactly.
BP Did they put out an RFP, for example, that you were able to then respond to?
CX Yeah, that's exactly it. They put out an RFP, and oftentimes when cities do put out these RFPs, they end up overspending on their budgets because they are using a piece of software that honestly doesn't work for them since they're trying to find an out-of-the-box solution from big tech companies. But like we've already talked about, those companies don't actually care about the individual resident experience every single day, which makes it really, really tough to move away from.
CW I love that you're working on the local level though, because it is very true that a lot of people don't realize how much impact they can make on that local level because they're very excited by the concerts and awesome things at the federal level and stuff. I remember my sister and I also used to both live in Seattle, and she would go to city council meetings just because she was curious about what was going on. And she'd be one of three people there and she would come home and be just like, “It's kind of cool. I voted on something, and the paint that they use on the sidewalk is one that I voted for, because nobody else was there.” And it's wild how much of an impact you can make whether you're submitting RFPs or you're going to meetings or something, but these governments want to hear from us and so it's great that you guys are building tools that are making an impact at that level, because like you said, it has larger ramifications across a state or even a country.
BP So Cassidy, I want to stop and ask you a question. I know we had this discussion a week or so ago, but I had seen a tweet that was getting a lot of traction. It was from a guy named Ricky Robinette, and it was about what his eight-year-old was able to do in 45 minutes with the assistance of this Cursor AI. And so I was kind of curious. Obviously, Crystal, we're hearing your story which is super interesting and there's this viral tweet of this eight-year-old. And in both of them, the interaction is natural language, receiving code or feature in return, reprompting, addressing a bug, basically having a pair programming session where you are the human with the intention and the natural language description and the AI has the knowledge to generate code or to revise code. So this opens two questions. One, Cassidy, what do you think of this? I know this person personally. And two, to what degree are you learning code in the sense that you can definitely create something, but if I took the AI assistant away and I was like, “Okay, here's the code. Can you make a change for me or can you explain what this function does?” would you be able to, and does that matter?
CW I think that all of this is awesome, which honestly might be a hot take for some engineers. But the thing is, people are often like, “Oh, no. This is going to replace jobs.” And I don't think of it that way because I think these AI tools are enabling more people to become builders, kind of like how no-code tools enabled more people to become builders. And granted, there are times where someone might use a no-code tool and then they hit certain limits and then they're like, “Okay, I guess I do have to learn how to code.” It's going to probably be the same with AI where it gets you to a certain limit and it's like, “Okay, I'm going to actually need to learn some of these a little bit more–” Crystal, you even talked about that a little bit more when something goes wrong– “I'll need to learn just a little bit more to be able to do more with it.” But I don't think this is taking anyone's jobs away because it just enables more people to build different things. And there's plenty of things that need to be built all throughout the world, whether it's at a local government level, federal government level, big tech, small tech, all these different things. I think all of this is a good thing and we shouldn't be afraid of it.
BP Crystal, any thoughts on that topic?
CX I agree with Cassidy. I know that the way I learned to code is going to be controversial and there's going to be some pushback on it, but I 100 percent agree that it really allows someone like me, who didn't think that coding was even in the realm of possibility or something that I could catch up on, to even have a chance at being able to make such a big difference. And at the end of the day, it's not actually about the coding, it's really about that civic engagement that I am able to achieve with these tools.
BP Right, exactly. If you have a small team and your participation means that the tool gets shipped on time or gets shipped with more features and the client is happy at the end, who cares how you learned it or whether your contribution was made in an AI-assisted or no-code way. It's not like you're not working with engineers also. Now you just get to be a participant in a way that would have been impossible before, which is really cool.
CX Yeah, exactly. And I think just two years ago it would have taken a team of, say, 50 supporting engineers and then a few more product managers to build everything that FSH Tech is able to do, but with AI tooling, we're actually able to do it with just a team of three now.
BP Well, that is interesting. That also has some implications for the future, but I'm not even going to get into them now. We'll save it for another episode.
CW Until they run into problems, there's no problem.
BP So Crystal, is there anything else you wanted to touch on or shout out about FSH Tech or about your learning process?
CX Cassidy, you had asked a little bit earlier about what are some of those challenges of learning the way I am, which is a little bit more backwards from everybody else. And I would say that, honestly, for me, it has been the vocabulary part of this. But I am lucky enough to be on a team that understands that a lack of vocabulary doesn't mean a lack of skill, it's just a very different way of thinking. And we really work together to be able to get me up to speed on all of the vocabulary as I keep learning.
CW No, I could totally see that where you're just like, “I know I need to do this thing,” and as you talk it out, you could be just like, “Oh, you want to build a pub/sub model,” or something. You kind of learn what the vocabulary words are as you go instead of learning the words then learning the concept.
CX Totally. I always say that I love to learn through osmosis, so the more conversations I have with my team, the more vocab I just pick up over time. And even in these past two months that I've been coding, my vocabulary has expanded so much.
[music plays]
BP All right, everybody. It is that time of the show. Let's shout out a user who came on Stack Overflow and contributed a little bit of their knowledge or their curiosity. A Lifeboat Badge was awarded two days ago to David Conrad for coming in with a great answer that got a score of 20 or more on a question that had a score of -3 or less. Now that question has a positive score and we've got a great accepted answer. “How to create a map with key and value in one line in Java.” Asked seven years ago, viewed about 30,000 times. So David, we appreciate the answer, congrats on your Lifeboat Badge, and thanks for helping to spread some knowledge. As always, I am Ben Popper. I'm the Director of Content here at Stack Overflow. You can find me on X @BenPopper. If you want to come on the show as a guest, or you have questions or suggestions for topics we should talk about or things you hate to hear us talk about, email us, podcast@stackoverflow.com, and let us know. And if you enjoyed today's episode, the best thing you can do is leave us a rating and a review. It really helps.
CW I've been Cassidy Williams. You can find me @Cassidoo on most things, or you could go to my website, Cassidoo.co. I am Senior Director of Developer Advocacy at GitHub, and I'll talk to you later.
CX My name is Crystal Xu. I am Chief of Staff at FSH Tech. You can find me on LinkedIn. The handle is @crysxu. And if you want to learn more about FSH Tech, we are at fshtech.io, and that is ‘FSH’ because there is no ‘I’ in ‘FSH.’
BP All right, everybody. Thanks for listening. We'll put those links in the show notes, so be sure to check them out.
[outro music plays]