107. The Interest and Passion | Xi Xiao



Xi Xiao, who joins to talk about the Interest and Passion, is a Salesforce Developer, Rust learner.


Main Points

  • Salesforce career
  • sf.nvim Neovim plugin
  • afmt Apex formatter
  • Interest and passion

Links


Video Version

Teaser (2min)

Full episode


Contact Me

If you enjoy this podcast, please reach me out to let me know your thoughts or simply say Hello. My (Xi’s) contact info:

Take care, until next time :)!

Transcript

AI-generated, unedited.

[00:14] Give people a little bit of a flavour of your background. How did you get started in in Salesforce? Yeah, how did you begin working in Salesforce? How did you make it to Finland as well? Because obviously you're based in Finland at the moment. Yeah, so give us give us a little bit of a flavour of your story. Yeah. Well, maybe just quickly is originally Chinese and come to Finland for study, like almost twenty years ago. So it's quite some time based in Finland already, and has been the Salesforce ecosystem for over eight years already, and has always been a developer, a Salesforce developer. So that's basically what I have at the moment. Learning a bit other programming languages, exploring some other things, AI related stuff. Just you know what what what really strikes my fancy, then I just tend to spend a bit more time on those stuff. I don't exactly know what I'm doing, but I'm just following my interests. That's the good way. It's the best way to learn. It's just to follow your interests and follow your passions. Yes, yes. But you also asked how I started in the ecosystem, right? Yeah. I think it's quite a quite a simple story. I wanted to be a programmer like two thousand eighteen, but I couldn't really land a a decent job at the time because I didn't have

[01:44] a. I was never being a paid developer in the past before that, so it's really kind of difficult at the time to. To to get a paid job as other like a technology stack and Salesforce, I had some background when I was working in a big company. So so I think that's the easier jump for me to to start a Salesforce job. So I I joined as a consultant at the time. Cool. And so, was you was your background computer science then, or what was your? Yes. Thanks for asking. I I did have a computer science background, but for me, it's like um. I I didn't really spend much time to think what I wanted in life in the past, and I never wanted to be a programmer. To be honest, even though I have a strong IT background, so I was just like, hey, I'm working in the IT industry. I get some salary paid. I can eat some bread. Then that's good enough. And but after some while, I think I started to really get into programming. I I enjoy it, and then I start to think, hey, why not? Right. So why not to find a job as a programmer? So that's where things started. So, what did you want to be then? If you didn't want to be a programmer originally, we had Peter Chitamon not that long

[03:14] ago. And I I didn't know this about Peter. I've known Peter for a long time, but I didn't know this about him. But he was a theatre major. Yeah, he was. Yeah, yeah. He wanted to be an actor. Um, and so which is yeah very different to being a Salesforce developer. Although as a consultant, occasionally we've all put on an act in front of clients to yeah make them feel comfortable. So what what was it you wanted to be? Was it you did you want to be a Rocket scientist or an actor or what was it? To be honest, I really didn't know. I was just like a a stupid person, you know. Like I don't know what I want. I get paid. I'm not happy. That's it. I may just play games. I may just hang out with friends. I didn't have like a a clear idea like like what professions I want hold. In career, I don't even pay much attention. What what's a career path? So I think I was I was totally like clueless at the time. Okay, it's interesting because I think I think most people that, in fact, I'm pretty sure everyone that I've interviewed on the podcast has said that they didn't intend. No one's, no one's said that. I'm going to, I'm going to be a Salesforce developer. That's what I want to do. I don't think anyone's done that yet. It's really interesting. I know from my myself, I wasn't intending to be a developer or programmer either, or go into IT. I had done

[04:44] that before and had got experience programming, and even as a pay programmer as a teenager, but I only ended up going back into development because I, well. I was planning on being a banker and going and working in the financial services industry because I have a maths background. Was it because the money or the yes? I was. I'll be very upfront, like it. I was the money. I I wanted to. I wanted to go away and I wanted to get a million pound bonus and like do that for do that for five ten years, get a ton of money and then disappear off somewhere and. I graduated just as the financial crash was happening, so there wasn't a lot of banking jobs because there were very yeah in fact was a decreasing number of banks let alone banking jobs, and so yeah so I ended up sort of falling back into programming which is what I'd done beforehand and got a managed to land a job and excuse me the rest as they say is history so yeah I don't think anyone's really a. I don't think until recently, Salesforce Developer has been a career path, or Salesforce Admin, or Salesforce whatever has been a career path. Many people have gone. I'm going to go down that route. It's always interesting. So one of the things you you also are well known for is the Salesforce Way podcast and video. Cast. So, tell us a little bit. Tell tell the audience a little bit about Salesforce Way, about why you started it,

[06:15] um, about the kind of other you know kind of guests you've had on there. Um, for anyone, I'll put a link in the show notes to the Salesforce Way Patreon podcast. And if you are not a listener, definitely go and listen to it. Um, yeah. So, tell us a little bit about the podcast and why you started it. Yeah, I mean, almost everything I did in the ecosystem is based on my own interests. To be honest, I start with that. But of course, I need to find the the niche that benefits myself and also benefits others as much as possible. So I try to get this win-win. So podcast is one of the things I personally really enjoy listening. I I learn a lot of things from that. And before that, before joining the Salesforce ecosystem, I was hosting another podcast. So I had the experience. So when I started, like eight years ago, in Salesforce, I just decided, hey, I want to, you know, know more people, right? Build the network, kind of learn from others, and what I had. I didn't have any experience, but I had time. I was young. I had time, so I just used my time and audio skills to start to connect with people, ask questions. Would they be interested in joining? And start to build the website. And all the stuff. So slowly, just

[07:45] build the things up, episode by episode. So that's where we started. But again, because I personally was really into the IT, the technology side, so it's more or less focused on the programming and architect, technical architect. But also sometimes a bit of soft skills. I think it's really important to have the communication skills for everyone. So basically, that's that's what this podcast started. That's cool. That's cool, and yeah. What was what was the podcast you ran before? Then what was that about? Yeah, that one was a a one in Chinese language. Actually, it's it's like a different style, but it's still about programming. Cause in China there's a lot of programmers there as well, so I just talk with them and learn new stuff. Like at the time was Ruby, Python two, and all the you know good old stuff. So you know it's fun too. Yeah, but English was like it wasn't my native, but I was like, hey, I want to to challenge myself and learn a bit more. With the podcast, you try and be more organic, like this, where it is more of a conversation, or do you try and have it more of an interview style? How how do you think works best for yourself on the podcast? Yeah, I always do like this. I want to listen to the the guest and to really understand.

[09:16] To interpret his his sayings, right. So if I can understand, probably the other audience can understand. I'm kind of like the bridge, the medium in in the middle. If the the guest can introduce the the concept to me, I can follow up. Then my my role is to to make sure the the other audience can easily grasp the idea. So I try to be. Fading in there because you need to ask questions. Sometimes maybe the the guest talks too fast because he's too into the talking or he's too familiar with the topic already. Right? He didn't know where to stop. But your idea is to slow it down, ask questions, to rework some stuff. So and actually, it really helps me a lot to learn the new stuff. I mean, if I I didn't host the podcast, I couldn't. I wouldn't really spend as much time to learn that topic. Right, but by doing this, then I learn much deeper. I think that's a really good thing for for myself. Okay, so what would you say is the biggest thing you've learned from the podcast then?

[10:33] Um, like like two things I'm really enjoying at the moment. One is the editor called the Neovim that I'm using daily. The other one is the Rust programming language. I'm also practicing at the time. A lot of my spare time goes into that. Both of them. And they both come from the guests of the Salesforce Way podcast. They introduced me what it is, and then hey, I spent some time to to to pick it up, and then it really get my brain into that. So you've been using, so you've been playing with languages like Rust. And so is that one of the things you? I know you've been playing with as well is SF Neo Vim, which I think you've you've been building and working on. So tell us a little bit about SF Neo Vim. Then is is SF Neo Vim done in Rust or is it separate to? Is it not using your Rust skills? Yeah. So a bit background is that I think most of our Salesforce developers are using VS Code as the code editor, but there are other choices as well. Right. In the past, we had this Java-based Eclipse, right, and now we also have the Illumina Cloud plugin in what is it, IntelliJ. Right. So we have all the choices. So Neo Vim is one of the choices. So it's based on the Vim editor. It's like a dialect of a Vim editor, and it uses Lua script

[12:03] language basically. Okay. To to automate things, so the SF. MVM is basically a Lua plugin for for the editor to to do the Apex or Salesforce related programming features. Oh, cool. And so, what made what made you start writing SF NeoVim? Because I need it, right? Again, it's my it's my personal interest. I I need. I started to pick up the NeoVim editor, but at the time there wasn't really a good development environment. Like like Illuminated Cloud, the IntelliJ, we have Scotts there supporting it. It was so good, and VS Code we have the official plugin in VS Code. Everybody can just freely use that. But at the time, wasn't any really good plugin, so I decided to to build build it by myself. So with um. I'm going to ask why? Why did you start playing with Neo Vim then? Because yeah, I many many moons ago used used Vi and Vim, but it was like yeah, at least fifteen years ago. I mean, these things always go. There's a history here, right? Like Vim and. And Emacs are like the always like the two two editors that people enjoy, and there are these

[13:33] modern editors like the VS Code. Or in the past there were there are other ones, but but the old ones are always has its seat no matter how the time passes. So, so I enjoy a lot of other people enjoy because you can easily customize, and there there are different layers of complexity. So you can really do with it. I know it's not easy to pick up, but once you pick it up, it's like your personal tool that it's really tailored for yourself. Oh, cool! And so and so the plugin then does it. Is it plugging into the SF CLI directly, or are you? Okay, so just yes. So how does that how does that work? Is it just calling out to the CLI from your plugin, or? Yeah, actually, Salesforce has this really great idea to has the CLI tool, the SF CLI. All the things actually is on that layer. It's really a fundamental layer. All the other editors can just use it if they want, right? It's just a matter of different commands. So, because of that, I had the the chance to you know just to call the commands. There's a CLI command, for example, to pull Apex metadata files or push metadata files to Org. So I kind of have the NeoVim features, and then I have the SF CLI. I just write the plugin to merge, to glue them together. So basically,

[15:03] that's what the plugin does. Yeah, nice, cool, and so because the plugin's been going now. I think you've had it out for about a year. Is that right? Maybe. Yeah, I think it has. I don't exactly remember, but it definitely has been. More than a year or something. Yeah, there were some people starting using it because it's still such a niche in our ecosystems. For example, in Finland, I don't have any. I don't see any developers, Salesforce developers, using Neovim at all. I have some friends who said they want to pick it up, but they never really pick it up. Yeah, I don't blame them, but you know, it's just the truth. So do you, and do you, do you use it day in day out as your tool of choice, or would you, or do you still use VS Code a little bit, or do you use something different like Cursor, or yeah? Yeah, that's a really good question. I use Neovim as much as possible. First, it's something just because it has the AI feature that Neovim, no other editors, doesn't really catch up that easily. But I'm still like waiting to see what's going on there. But I I I use the web browser like a GPT for the coding part, so I don't really have to integrate in the feeling of everything together. To me. It's always like this. If we, I always consider it like this. If we are a professional developer, we need to hone

[16:33] our tools, and the NeoVim is one of the tools I'm honing. So it's kind of incremental improvement because you have your configurations you save in the GitHub every day you can improve a little bit. And and then after quite some time, then it becomes really powerful and really automated, and it's in your muscle memory. Like for myself, I rarely really use mouse to click things around, so I always have the keyboard. It's really fast and efficient for for myself. It follows my brain in a sense. AI is such a hot topic nowadays for everyone, but I still think for us when we use AI to do the coding, we still need to have the. Skill to understand what they are doing at least in certain levels, right? We we have to to be the judge to like what you said. You need to know whether it does a good job or not. Is it a pure hallucination? That it tends to be really good at it, but it's like all the bullshit. So you really need to to know that if you are just a guy who are like a junior, you didn't understand it, then it's really easy to to get lost there. So. I think it's improving all the time, which is also good. So one of the other things then that followed on from your work with NeoVim and what you were doing on NeoVim was your

[18:04] Apex Formatter AFMT. So, can you tell? Can you give us a little bit of a flavour as to what AFMT is and why did you write AFMT? Why have you put together another another Apex Formatter? Yeah, again, it's for my own interests. I just wanted to write it, and of course, there were some pain points when I was using the pretty Apex. It's a bit slow. And and you need to install like what you said the note. You need to install the the prettier plugin, and you have to tweak the things. And and frankly speaking, when the file the Apex file is over several thousand lines, then it becomes really laggy. Take like several seconds to really format to get the result. And I was just thinking, hey, how hard could it be to write a full matter? Well, let me try. Then I started it. Then it was like five months later. Then I almost finished it. How how hard can it be? Yeah, how hard can it be? Yes, yes. That's a great impression. A great great way of looking at it. Also, you ever seen that sign? We we did this not because we thought it not because it was easy, but because we thought it would be. Yeah. And at the time, I think I had I I have all the support. I was chatting with Dan, the free Apex author,

[19:34] and I was chatting with. Anthony, who is the the Apex parser author, it's like a three-tier Apex parser. For people who don't know what the parser is, is the formatter actually needs to use the parser. So parser is like the the prerequisite. So once you have the parser, then you can write the formatter. Otherwise, you need to write both by yourself. So at that time, Anthony has already made a really good parser parser for me, and even if I I in along the journey when I write the AFMT, I have requested multiple times that he could update his parser to facilitate my work. You know, you have this kind of a synergies there. He can really nicely support you. That's that's really wonderful. Oh, cool. That's good. That is good. I mean, so, so is it? Um, is AFMT written in Rust or is it? Yeah, it is written in Rust. No surprise. No surprise. Right. No, no. Well, it's it's good to have. It's good to have a a use case as as we were kind of saying earlier. Like when you're trying to learn something new, having a having a thing you want to build in it is a good way of good way of understanding and getting going. I think writing in Rust is not just my interests. I think it really shines out. to To write the CLI tools using Rust,

[21:04] because first of all, it's a system programming language. It's really similar to C or C plus plus, which means it's really fast when you write the code in a good way. It's super super fast. And also, it it's really strong typed language. It handles there already elegantly, so it's it it's just a perfect language for CLI tools. And since since I wanted to write it, and as as C pretty Apex was a bit slow in my terms, then I started you know just tackle it, you know, you last. One of the things I think would be fair to say is that a lot of what you've done is based upon what you're passionate about and finding finding things that interest you. So, would you would you agree that that's been kind of a guiding principle, and do you think that's very important in terms of building a career and? And spending time doing things that you find interesting for you, and not you know not just paying paying the bills as you mentioned. I totally agree with this idea. It's it's almost my guiding principle in my life nowadays. I also totally agree. Everybody needs to earn bread, right? Yeah. So you have to get paid. You can't if you don't get paid. Then why you don't have this luxury to say, hey, I have the passion to do something open source without pay? So we definitely need to have that baseline. And once we have the baseline,

[22:35] we can. Take the time you have the time luxury now, so that you can slowly to build the things up and follow your passion. And it's not easy to find what you want to do in life. I was like clueless, as I said, like thirty years in my life, and finally find out what I wanted to do. But after that, once you have a clear goal, I think things become much easier. You just heads down, dash forward. You know, follow your passion and move forward. So, how would you? Would you? Would you have any advice for people that are in that position that you were, where they're not sure what that passion is, and not sure, not sure what they want to do or where they would want to go?

[23:24] Just sit with yourself and spend a lot, a lot of time to figure out what you want to do. There's no shortcut, at least not to me. the The good thing in Finland is that it's a small country, and the people don't tend to have any relationship one with another. It's like atomic society. You never really see your neighbors. In Finland, it's like when the neighbor opens the door, you don't go out. You wait until your neighbor moved away, then you go out. So that's that's a bit exaggerations, but indeed, like you spend the time with yourself to figure out, then you start to pick up the the the feeling, the moment. I think. I don't know for myself. I listen to podcasts and read books. I especially like the philosophic books. Start to kind of to to figure out how people are thinking about what's the life of the meanings. Okay, so these people like several thousand years ago, they already started to pick up these ideas. And me, now I started follow up and try to understand what they did. Yeah, I've been using. I've been watching some of those videos on YouTube, which is a really sad thing to spend your like sort of Friday evening doing is watching CSS YouTube videos, CSS baffle YouTube videos. No, no, it's fun. But yeah, it's yeah, yeah, exactly. But it's it's really really. But it's

[24:54] a it's a. I think there's a lot of fun ways and interesting ways you can learn things as well. And if it's not you know something programmatic and it's not technical and you just want to get better at formula fields or you want to get better at Data model design, or you want to get ahead of all these things. I think there's so much that is important to do, which is just play. Is to just play with a tool and mess around with it, and that's you know, I think that's. I mean, that's how I got started doing any sort of programming or any sort of stuff with computers. Is I just was wanting to play with it and play games, and then write my own games, then play with them and things like that. I think it it definitely reflects back to your your original questions, like the like. Like to follow your passion. Everybody really has different interests. Like you are into CSS. You maybe in the weekends you will watch YouTube videos like this. I would totally not doing this because CSS to me is really disaster. I don't want to spend any of my time. I would just avoid that. But I accept it, right? Different people just have different things to do, and that that's really good. And that's also to our audience. And as a Salesforce developers, there are so many different types of Salesforce developers. You just follow the things that you want to learn. Like the LWC is one thing, Apex one thing, integration with Salesforce platform is another thing. There's so many things you can be good at,

[26:24] and you just need one job, right? You don't need to be good at everything. Whichever fits you the best, then whichever topic you think weekends you will spend time watching the video to learn that, then that's your thing. And to be clear, the reason I watch those CSS videos is I find it mind blowing. My CSS is horrific. My CSS is is a is a war crime in many areas. It's terrible, terrible CSS. So I suppose the question is, what what's next for you? What what are you going to be working on now? What do you want to be working on in the future? This kind of your that is igniting your passions currently. I think what I want to do is still to write the the backend programs. So I'm not really into the front ends, like CSS, for example. Yeah, because to me the backend has more. Designs and algorithms, efficiencies, and easier to test compared to front end. So these things actually makes me feel more efficient. So I'm really more into those stuff. Be it Rust or Apex or other language, that doesn't really matter, but But there's a lot of things I can learn. Rust is one of the languages that are really hard to pick up. Actually, comparing all the other ones

[27:55] I've I've learned in the past, especially like a Go is a is really easy language, but Rust isn't. But it has so many dimensions and layers of of learning. Those those good stuff that I just take my time to to pick things up. I I never really haste. In a sense, to to learn those things, and whenever I have a chance to to do some other jobs, maybe I will take it. But so far, so good. I'm I'm still enjoying. Like my daily life is the my daily job is doing Apex language. And then you must spare time. I do a bit of rest, a bit of everything. Yeah, I don't have a clear plan like you do. Like I don't really want to be entrepreneur, in a sense. Even though I have my own company and like one man solo company doing doing my stuff. I'm happy with my life, so I'm content with it. That is a brilliant ending. The words I'm happy with my life. I'm very content. A brilliant ending. So, thank you so much for joining us, Xi. I suppose the the one last question I do have is: okay, I like to ask to see if you've got one bit of advice or one tip. You would give to the listeners that they could take away as an action they could they could do today. I know we've covered a lot of things about finding your passion, about playing and learning through play, about scratching your own itches is

[29:25] obviously a big one for yourself with Neovim with AFMT. So, yeah, what would if you had one one tip or one bit of advice to finish up on? What would it be? Yeah, I think we discussed people would follow their passion, but I also maybe to add on top of that is that no matter learning whatever topic you are learning. It always takes a lot of time if you want to be good at it. No matter it's programming, communication skills, whatever is your professional, your hobby, playing games included. So it's really hard. Just be patient and give it time to to hone your skill. So that's that's really concrete and important. It will support you. And also, the AI nowadays really does a good teacher role. It can plan a lot of things for you, so you just need to follow it. If you enjoy learning with AI together. Perfect. That's brilliant. Thank you once again so much for joining us today. I've loved catching up with you again. Thank you so much, everyone, for listening. Please remember to give it a like if you've enjoyed the episode, and to subscribe to stay up to date with new episodes. And once again, thank you so much for joining us for this Cloudwise conversation. Thanks a lot, Paul. See you next time. Bye bye. Thank you. Thank you, everyone. Bye now. Bye.

Leave a Reply