From Code to Community with Yassine Benabbas – Techstrong Unplugged EP49
Yassine Benabbas, a PhD in computer science turned developer relations expert and educator, shares his journey from iOS development to community building through the Android User Group in Lille, France. Dive into discussions about teaching, Kotlin, cross-platform development, and the fascinating intricacies of threading and algorithmic optimization. Plus, learn how Yassine engages students with innovative lessons like the Game of Life and stays updated with podcasts and YouTube channels.
Transcript
Welcome back to Text Journal Unplugged. My name is Cassandra Chin, and today we have Yasin Beba. Hello.
Can you do a short introduction? Yes, of course. So, hi everyone.
I'm, uh, Yasin Veba. Uh, I have a PhD in computer science, and after that, uh, I did 10 years of iOS development at Word Line. Uh, and since two, three years ago, I'm, uh, dev Re and I'm also a teacher and also part of the Lil Android user group.
So you're a part of a lot of things, So I try my best to, uh, to have the community and to spread the knowledge as much as I can. So you said you're part of a user group? Yes.
You wanna describe what that is? Yes. So it's the Lil Android user group.
So it's an Android user group located in Lil, uh, its goal is to, uh, invite speakers and organize meetups so that these speakers can share the knowledge about Android, coline or anything related to this, uh, to the Android community of Lil. So Lil, it's a, a town in the north of France, And like, uh, how do you contribute to the user group? Yes.
So my contributions, uh, are, for example, getting contacts, uh, with speakers, uh, trying to organize the meetup, like finding the location where to organize the meetup, trying to find, uh, the funds to, uh, pay for the, for the food, for the meal after the meetup. Creating the meetup page by itself, uh, like with the images, the description, and so on. You have To create actual page Yes, Yes.
On Meetup and also on Google Develop Google Developers group page. Yeah, I think that's really cool. Yeah, it's a great experience.
Yeah. Yeah. I enjoy it so far.
Uh, do you get a lot of new people when you go there? Um, so the, so since it's a meetup, you know, where, um, uh, we get like 10, five people, sometimes 15. Uh, it depends, you know, the day of the week, it's like you can come, uh, what whenever you want, uh, and, uh, just to sit, relax, and, and discuss.
So It's really flexible and that gets nice. Yeah. Yeah.
Flexible. Everyone is welcome. So, yeah.
Nick, you also said you're a teacher. Yes. Do you wanna tell me more about it?
Yeah, so, uh, actually since I was a child, I was teaching like private classes, uh, like, uh, to other, uh, students. So since I was a child, I loved, uh, like sharing knowledge, teaching, and, uh, now I'm continuing this. During my PhD, uh, I taught, um, some Linux Bash scripting.
And after that, uh, even after I joined a private company, I continued on teaching, uh, more like programming languages in general, uh, or some theoretical, uh, aspects like mark of chain. But, uh, but I really enjoy teaching, sharing knowledge, discussing with students, and it also myself allows me to better understand, uh, the topics that I'm teaching and also, uh, to be a better developer and also to, uh, to renew my, uh, motivation for work. I think that's interesting that like you're teaching others, but you're also learning yourself.
Yeah, indeed. Like, uh, uh, every year, like when I do my classes, I discuss with students, uh, I see their needs, so I adapt my lectures and they also follow like, uh, the podcasts, uh, YouTube channels and, uh, and so on and so forth to really, uh, update, get updates, and, uh, yeah, I really enjoy the, this, this activity. How do the podcast and YouTube channels help you?
Yeah, so podcasting and YouTube channels help me get up to date and also get real life, uh, feedback. Uh, so some YouTube channels like give you a concentrated update, uh, like in 10 minutes. For example, in France there is a YouTube channel called Dev Cafe.
It's a coffee, you know, for developers. Like every day you have 10 minutes of concentrated news. Uh, there's also like, uh, podcasts, which is, which is a longer format so that you can have a more deeper, uh, understanding and more deeper discussions like syntax for JavaScript developers In France, we have, uh, cast coders for Java, uh, news, uh, also discovered the, the podcast of Raio Gonzalez.
So I'm, I'm sub subscribed to it. So yeah, that's, uh, I really enjoy listening to people talking about programming in general. Do you recommend some of these to your students?
Uh, yes, of course. I recommend it. For example, dev Cafe to my students, because like, you know, it's a short format.
It's in YouTube, so it's, it's speaks to them a lot. And some students come back to me like they were sharing the same news. You know, we, we watch the same show, so like when I share news, they, they'll tell me, oh, yeah, I heard it also in deaf cafe.
And, uh, yeah, that's really pretty. You're doing a nice topic you can relate to. Yeah.
And do you have like a preferred programming language? Uh, so currently my preferred programming language is Kotlin, uh, and, uh, yeah, recently, uh, so I That's one, sorry. That's what, um, more part of conferences, uh, that I, uh, go to Kotlin conferences and also like Java conferences to share about Kotlin.
Uh, so currently, like it's really powerful, mature language and it's cross-platform and full stack. So with Kotlin, you can write, uh, j you can't argue the JVM, so you can use, uh, spring Qua case. You can also use tline exclusive framework to develop, uh, backends, like cater.
You can also write front ends, which are cross-platform. Uh, with the composed multi-platform, you can write, it's your UI once and it runs on, um, Android iOS desktops and the web with web assembly. So Kotlin runs on both iOS and Android?
Yes. I always thought that like, development for Android and iOS was a little separate. Sorry, I thought development for iOS and Android is separate.
Yeah, it's, uh, like, uh, without these kind of, uh, new frameworks, it's separate. If you want to develop Android apps, you have to download the Android SDK and use Android studio and use like, uh, compose jet by compose to make your UIs for iOS, you have to download code, then use, um, swift and Swift UI to develop your applications. That's like, You still need different UIs Now.
You don't need different UIs. Yeah. Now with compose mi platforms, uh, sorry.
Compose MI platform, one UI is, uh, runs on both, uh, operating systems. Think That's really cool. Like it runs on both now.
Yeah. Um, are there any, uh, apps which you really, you develop or you like? Um, an app that I like in the, in the, in the store That you're working on, or, ah, like more on the development side.
Okay. So on the development side, so I am not more of a mobile developer, but when I was a mobile developer, I de developed a, a drive application for a client and, uh, mail application also. So, uh, it's really fun to like, uh, see like the internals of these kind of apps, like caching, you know, because drive apps, you have to be fast when as soon as you open the app, you have to see the list of files that you have on your cloud drive.
And, uh, so caching is really important. It has to be smart. So as soon as you open the app, you have to show what you have in your local cage so that you have an immediate, uh, like feedback from the application, and then you fetch the data from the server and you synchronize it.
So that's really challenging in terms of algorithmics also, like, uh, it's not just like develop UIs, and so there's also like some algorithms and some optimizations to take into account. That's Really interesting, like how you have to show something to the user immediately. Yeah.
And then fetch the data later. Yeah. That's one thing that we learn when you develop UIs.
Uh, because originally I was, uh, I did mostly like backends, uh, with spraying and, uh, even, um, uh, with the called, uh, I forget its name, uh, like all the Java framework, uh, all the Java server frameworks, uh, and um, and like, you don't think about this kind of stuff, like you just, uh, reply to requests and so, uh, that's it. But when you develop UIs, like a whole world of, uh, like your constraints appear, for example, memory is limited, you know, in Android and iOS, when you reach a certain amount of memory, your app may, might get killed. Trading is very important.
So the UI thread, you don't need, you don't, it's forbidden to do like, uh, time consuming stuff. HTTP requests, for example, in Android, when you do, uh, um, an h TT P request in the main thread in the UI thread, your application will crash. Oh, Christy.
So, yeah, that's, so that's, uh, there are many things, many constraints to consider. And uh, for example, when I started working on the drive project, like we had the application freezing from time to time. Yeah.
It's because we did HTTP request or database requests locally in the main thread. So while the main thread was busy, like fetching, uh, HTTP data fetching the database, the UI can't work anymore, can't animate, can't do anything. So you have to, uh, use threads to like, uh, delegate this task and, uh, like lighten the UI thread, you Use multiple threads to kind of spread the workload.
Yeah, yeah, Yeah. And currently there are many technologies that simplify, uh, multithreading, uh, like higher, higher level APIs like routines. Uh, I think weight, this kind of APIs are higher level and allow to do what we call structured concurrency, which is like a concurrency, but more, uh, more structured than the, like more, with more mastery of it.
Like you just launch thread and forget about them. You can like wait for their return and so on. Not Like a bread management system.
Yeah. Okay. Do you teach a lot of this to students?
Of course. I love, uh, I love teaching this to students, uh, sharing with them, answering their questions. Uh, yeah, I really enjoy this.
Are there any other tricky topics which you like teaching? Uh, tricky topics. Um, so trading, yes.
Optimizations, uh, algorithmics, like whether it is an algorithmic problem, uh, when the users like have to scratch their brain to solve it. Uh, like, uh, I teach the game of life. Yeah.
Electron game of life. So I also really enjoy it. It's with Python and they draw it with the pipe plots, the, the, the, the metrics.
It's drawn with pipe plot. Okay. And, uh, yeah.
That's an amazing, uh, lecture because even students like it when they see like things animate and move on their own in a random manner, the patterns and so on. Yeah. Yeah.
That's one lecture that I really enjoy, uh, teaching. Is it The game of life? Like a board game?
Uh, so the game of life is, um, uh, a random pattern generator. So it's not a game like, uh, where you play, it's like a simulation of, uh, of something, you know, you simulate. Um, so your, uh, you have a metrics or grid which contains cells, and uh, depending on the, like for each cells, it'll ch the states will change depending on the state of the surrounding cells of the neighboring cells.
Okay. So you have like cell is alive or dead and it switches from alive to dead, depending on the con the cells are around it and like, uh, given the, so the game of life has certain rules. For example, if the cell is alive, it'll die if there is no more cell around it, things like that, you know?
And in the, when the program starts, you generate random, alive and dead cells, and then you run the algorithm and you see it move, it move by itself. I see. So the cells flip on their own.
Yeah. They make decisions. Yeah, they make decisions.
So they sometimes it, it gives nice patterns like you see like live cells moving like that. Yeah. Or spreading like this.
And then you see, you can either see some like infinite, a alive, dead cells like pattern or you can see like, uh, not moving anymore. Does it usually stop at some point? Yeah, it depends on how it started.
You, it can either stop at some point or it can either stay at the state where like some cells become alive and the neighboring become dead and then they switch back and forth. So it never ends, you know? I would Really love to see it.
It's just the cells flipping, Okay, take a look, uh, game of life. And there are even like, um, variants of variants of it, which might are in many, much more spectacular. Yeah.
Yeah. I think we had a really good chat today, so thank you. Welcome.
Thank you very much. Same here.