React Native Radio

RNR 181 - React Native Nigeria with Oluwatobi Shokunbi

Episode Summary

In this episode, the hosts interview Oluwatobi Shokunbi, an avid software engineer from Nigeria, and the founder/organizer of React Native Nigeria. We talk to him about his journey as a developer, the forming of React Native Nigeria, and the emergence of the Nigerian developer scene.

Episode Notes

In this episode, the hosts interview Oluwatobi Shokunbi, an avid software engineer from Nigeria, and the founder/organizer of React Native Nigeria. We talk to him about his journey as a developer, the forming of React Native Nigeria, and the emergence of the Nigerian developer scene.

 

This episode brought to you by Infinite Red! Infinite Red is a premier React Native design and development agency located in the USA. With five years of React Native experience and deep roots in the React Native community (hosts of Chain React and the React Native Newsletter), Infinite Red is the best choice for your next React Native app.

Helpful Links:

  1. Check out React Native Nigeria on Twitter 
  2. How To Startup A React Native Nigeria Community Near You.
  3. Oluwatobi Shokunbi(just1and0) – Medium
  4. https://github.com/just1and0/React-Native-Paystack-WebView
  5. https://www.eventbrite.com/e/react-native-to-infinity-and-beyond-tickets-108692022766?ref=estw#
  6. https://www.reddit.com/r/reactnative/comments/gly261/ar_copy_paste_using_react_native_expo/

Connect With Us! 

Episode Transcription

Jamon Holmgren:

Hey everyone. Welcome to React Native Radio podcast, where we explore React Native together. I'm your host Jamon Holmgren. And I am joined today by two of my three co-hosts, Adhithi couldn't make it today. Good morning, Harris. How are you doing this fine Thursday morning? I don't know when people are listening, but we're recording on a Thursday.

 

Harris Robin Kalash:

Good morning, Jamon. I'm doing good. It's actually early for me, I recently moved to BC. So I'm in Vancouver, as you know.

 

Jamon Holmgren:

You did?

 

Robin Heinze:

I swear Harris is in a different location every time we record. And it's really fun to see where he's going to pop up next.

 

Harris Robin Kalash:

Yeah, it's totally true. We should have like a little bit of a-

 

Robin Heinze:

Where in the world is Harris?

 

Jamon Holmgren:

Right. Where in the world is Harris? Exactly. He has a stove pipe behind him right now. We can see that in the background. But yeah. Okay. Well, you're a lot closer to me. I'm also in a Vancouver, but not that Vancouver. It's not a very original name.

 

Robin Heinze:

What is the saying? Like Vancouver, not Washington, not Canada, state, not D.C.

 

Jamon Holmgren:

You're butchering it so bad.

 

Robin Heinze:

How does it really go, Jamon?

 

Jamon Holmgren:

It's Vancouver. Oh, shoot. Now you've got me all screwed up. Okay. It's Vancouver, not B.C., Washington, not D.C. And then I usually add in near Portland, not Maine and Clark County, not Nevada.

 

Robin Heinze:

There you go.

 

Jamon Holmgren:

That's we’re we're in four “not something else.” So whatever. But we were the first, and we can always claim we were the first Vancouver. I think Vancouver, B.C. originally was named Gas Town. And I'm not kidding you. It was named Gas Town, for obvious reasons.

 

Robin Heinze:

That's a better name. Vancouver is a better name than Gas Town.

 

Jamon Holmgren:

Well, I mean, it's memorable though, Gas Town, right?

 

Robin Heinze:

Not for the right reasons though. You don't want to be memorable for those reasons.

 

Jamon Holmgren:

I guess. Robin, I didn't formally say hi, but good morning to you as well.

 

Robin Heinze:

Good morning.

 

Jamon Holmgren:

We have a very special guest here today. I'm very excited to talk to Oluwatobi Shokunbi. Oluwatobi, how are you doing this... actually evening for you, right?

 

Oluwatobi Shokunbi:

Yeah, it's actually evening over here. Hi, Jamon.

 

Jamon Holmgren:

It's nice to talk with you, and glad we can have you on the podcast today. Oluwatobi is a Software Engineer from Nigeria. He is the founder and organizer of React Native Nigeria. He is a developer advocate, and he's also got... well, he's got all kinds of things going on. You'll have to go to his Twitter profile to see what he's working on. Claims he's a code newbie, but based on everything that I'm seeing, it seems like he's a pretty good programmer. Oluwatobi is from Abuja, Nigeria, and we're really happy to have him on the program today.

 

Oluwatobi Shokunbi:

Thanks, Jamon. It's really nice to be here. Hi, Harris. Hi, Robin. Nice to meet you two.

 

Robin Heinze:

Nice to meet you as well.

 

Jamon Holmgren:

So let's start off. Oluwatobi, well, tell us about your background. I assume you grew up in Nigeria, how did you get into coding? Walk us through that.

 

Oluwatobi Shokunbi:

It's really, very funny story. I hope it makes you laugh, though. Yeah. But I did get into programming quite early. I guess I was one of those kids that was good at practically anything. I did suck at sports-

 

Jamon Holmgren:

Mm-hmm 

 

Oluwatobi Shokunbi:

... so I was the last option when you it comes to pick someone to join your team for Soccer or something.

 

Robin Heinze:

Same.

 

Oluwatobi Shokunbi:

You definitely think, when you pass me the ball, I'm not going to score. So yeah, programming was just my thing back then. I did get into programming quite early, Jest Two. I don't know what Jest Two translates to with other education systems. But that was after primary school.

 

Jamon Holmgren:

Sort of like our middle school system maybe or junior high?

 

Oluwatobi Shokunbi:

Yeah, definitely. It should be. So yeah, I was more of like a gamer, so super Mario, whatever computer games you could imagine. I was just all over games. And I had this very close friend of mine. He's currently the co-founder of React Native, Nigeria.

 

Jamon Holmgren:

Mm-hmm.

 

Oluwatobi Shokunbi:

He came over to my place one day, and he just noted that I always playing games on my computer system. Back then we had all these monitors that had these big heads and just external unit for its CPU and all that. So it wasn't all compact like these Macs. And he came over one day and was like, "You know what? Facebook is making money, building a social networking system. Why can't we build ours?" And I was like, "Okay, probably we'll try checking what programming is, and what it entails to make your own Facebook tomorrow." And I just continued playing my game, I paid no attention to him. Then he came over the next day with the same story. "Let's try and build something. Let's see what it's all about."

 

Oluwatobi Shokunbi:

I was like, "Okay, let me just finish this one level. Let me finish this level of Super Mario and get to it." And it just kept going on for like a week. And the last week he came over to my house and he was like, "You know what? I'm not taking this anymore. We are starting today." He unplugged...he removed the plug of the system from the wall, and back then, we didn't have UPS, like backup of our system. So once you unplug it, it's going off. The system is going off and you'll restart all over again. And that was quite it. And I guess that was what just drove us to learn a little bit about programming. We would just go over to most websites and inspect their codes, and like, "Okay, what does this block of code do?"

 

Oluwatobi Shokunbi:

We try and copy it, paste it on our notepads, drawn it, and it worked. So we're like, "Wow, this is really amazing. Like, just copy something as simple as text area or area field, and just paste it on notepad and save, and we could start writing our own impute fields. It was really fun, and it just grew from there, from his demo codes. And we just started checking out other things like CSS, JavaScript. And yeah, I'm here to be writing React as a code. So it's been a ride.

 

Jamon Holmgren:

We all need friends like that. Friends who are just like, "Okay, now, we're doing this.'

 

Oluwatobi Shokunbi:

The funny thing is, Moshe didn't even go... he didn't even study Computer Science in school, in the university, he studied something along Mechanical Engineering. When he was done, he now writes React Native code full time. He doesn't even use his degree. He doesn't even work in that field anymore. He's full time software development right now. So it's, I guess, him pushing me to learn or knew what programming was about back then, kind of paid off right now. Because I rubbed off on him to try out React Native.

 

Jamon Holmgren:

Right, that's awesome. I feel like that's actually a fairly common thing in software engineering, where people have degrees in different... just different angles, different focuses. Actually, I'm kind of curious, people who are listening to this podcast, tweet to our handle, React Native RDIO on Twitter, and tell us what degree you have if it is not a computer science degree. I believe Robin, you-

 

Robin Heinze:

I don't have a computer science degree.

 

Jamon Holmgren:

You have a different degree, right

 

Robin Heinze:

I have Math and Economics degree.

 

Jamon Holmgren:

I'm going to be asking you Economics questions from now on.

 

Robin Heinze:

Please, don't. Hey, I learned enough to pass my senior exams, and then it was just, all gone.

 

Jamon Holmgren:

It's all gone. All gone. Oluwa, tell me, your friend was a mechanical engineer, but he was really interested in the computer stuff. And when you started working with him on this, was it something where you picked it up pretty fast? You were like, "This is fun. This is something I'm really enjoying." Or did it take a little while to get into it?

 

Oluwatobi Shokunbi:

Programming, we actually did take a little while. I'm still yet to meet someone that actually just went into it and got it on the first try. The way those times when you just pick up something and it doesn't make sense, and you just keep going over, and over, and over, and over it all over again. And you're trying to grab a lot from it, but it's not working, and just want to smash your system on the ground. Well, but yeah, I guess it's just keeping at it, and over time, it just made sense. So yeah.

 

Harris Robin Kalash:

I wanted to ask you, what made you start the React Native Nigeria community?

 

Oluwatobi Shokunbi:

I started it off as, really as, I didn't see any community in Nigeria currently for React Native. At the time I was working with this agency in the UK, and it was like a digital agency, and a fellow colleague of mine was currently running Laravel, Abuja. And it was like this really cool community where we just come around, learn about Lavarel, talk about Laravel, and their general experience with it, and really network ,and really all about the network, because he wanted you to always know that if you have an issue, you could reach out to someone also doing right Lavarel in Abuja, as simple as that.

 

Oluwatobi Shokunbi:

And that person could help you move faster in your work. And I really loved what was going on there. And I was like, "Why don't we have a React Native community in Nigeria?" And it wasn't just about Nigeria. So I was looking for one very close by like Abuja, just my state. And there was no one, there wasn't any. So I was like, "You know what? If I don't start it, no one will." And it just moved on from that. And in 2019, we just got things rolling. Honestly speaking, when I started, I had no clue what I was doing. It feels like I was really carrying the stacks that was above me, but I just kept at it. Always tried to reach out to people. I already had communities going try to see what they currently do, and also try to have a vision, and a structure for what React Native Nigeria should be. Also, I just really wanted a community where I could reach out to someone to help me solve any tech issue I was having at the time when I didn't have any. So I just built the community for that.

 

Oluwatobi Shokunbi:

And something that was supposed to solve my problems began to solve other people's problems. Because over time, we also had testimonies of people always coming on group chats, coming on Slack group and asking questions and getting solutions for their question. So it really felt nice. That was really the picture of what I was envisioning. A place where React Native developers would come and just talk about React Native problems, and fix each other's problem.

 

Harris Robin Kalash:

That's cool. And I see also you did a package called React Native Paystack WebView. For those of you who don't know, Paystack is a payment provider from Nigeria. They actually recently got acquired by Stripe for like $200 million.

 

Jamon Holmgren:

Oh, wow.

 

Harris Robin Kalash:

Yeah, that was a big thing. I remember following that and being really happy about it.

 

Jamon Holmgren:

That's fantastic.

 

Oluwatobi Shokunbi:

Harris, you really do follow.

 

Harris Robin Kalash:

I told you. It's because I have a lot of Nigerian friends, and it's like the Paystack acquisition, I think the big thing was that it validates Nigeria as a tech hub, right? The irony is Stripe wouldn't operate in Nigeria, but they ended up buying a company that-

 

Jamon Holmgren:

Well, I wonder if that was in the end, maybe a smart move because it gave room for a provider that actually knew the community there, and knew the challenges of whatever the financial system, and things like that. So they could just acquire it once one emerged that had done a good job. That's really cool. And that's something I'd love to talk more about as well, the emergence of the Nigerian tech community on the world stage, because it's been very apparent over the last couple of years.

 

Oluwatobi Shokunbi:

Definitely. And it really has been booming. Paystack was really insane. I just woke up and went on my Twitter feed and just saw it. And I was like, "This is insane. This is really insane. $200 million, wow!" But yeah.

 

Jamon Holmgren:

It's big money.

 

Oluwatobi Shokunbi:

It's really big money. Like a lot of companies, also Paystack has been awesome work in the tech space, particularly in the FinTech space. A lot of products really coming out, and all of them just putting their own twist on it and building awesome products. And I really can't wait for us to get to that time where more companies they won't get acquired, just like Paystack to be honest 

 

Jamon Holmgren:

Yeah, that's fantastic. And looking at Paystack WebView, so I'm one of the primary maintainers of the React Native WebView. And it looks like you've kind of wrapped the React Native WebView, and you're providing an API on top of it that works really well with Paystack.

 

Oluwatobi Shokunbi:

Yes. Like I said, I always viewed most of my open source projects from problems I have at work.

 

Jamon Holmgren:

Mm-hmm.

 

Jamon Holmgren:

Sure. Yeah.

 

Robin Heinze:

isn't that most of open source?

 

Oluwatobi Shokunbi:

Yeah.

 

Robin Heinze:

Somebody had a problem for work and made a thing.

 

Oluwatobi Shokunbi:

So I was working on this project where I had to process payment, yeah, with Paystack, and the current package for it was like the SDK. And you would have to instigate that with needs of code start entering for iOS and for Android. But I didn't really want to go through all that. It was work. We have a very tight deadline, and I have this project manager screaming down my neck about this stacks, and I didn’t want to go through all that. And I was like, "You know what? That's the beauty of React Native. You could write it to how you want it to be, and make it what you want to be. So Paystack has it’s inline payment that works very good with web. So I just took that, and I thank God for WebView... I'm sorry, thank the React Native team for WebView, and I just saw the potential in it and just went for it. So just calling the inline payments on the WebView and it just pops it up and you pay, and just straight forward. Yeah.

 

Harris Robin Kalash:

That's fantastic. I love seeing these types of specialized libraries pop up all around the community. And open-source of course, is something that I've done for, I don't know, it's almost 10 years now, and it's made a big difference in my career. It's really cool. You link out to a couple of other React Native WebView, kind of third-party libraries that are layered over the top of React Native WebView. And I assume you drew some inspiration from them as how you might approach this?

 

Oluwatobi Shokunbi:

I just really wrote it as a form of solving my own particular problem. Then over time, I just kept out basic version of the code. And when I did put it out, initially, it was only two asset payments. So you couldn't do things like set your currency, do as much as setting up recurring payments. I noticed like, it wasn't there. And thanks to the community, it was really them that really pushed the code and took it way it was supposed to be, because over time, people would just come up, raise an issue. "Okay. I can't do this with this package, but it is a cool package. How do we get it done?" And I'm like, "You know what? It's open source. You could just write the code and add it out."

 

Oluwatobi Shokunbi:

We were made to code it if it's nice. And it's from that, that the code actually evolved, and it actually evolved correctly. I just started learning TypeScript, say three months ago. So I was just like, it won't be upgrading most of the open-source projects to like TypeScript, to give it more... making more typed, and just solves a lot of problem for everyone. So yeah, for now, I guess the community made this open-source project to where it's currently is, I just had the basic idea of, "Okay, you know what? I have a problem, what's the fastest way to solve it?" WebView, put it out there, everyone loved it, and yeah, the open-source communities just made it into what it's meant to be or what they wanted it to be.

 

Jamon Holmgren:

And I also see that you're an instructor. So what made you start teaching?

 

Oluwatobi Shokunbi:

It's part of the whole idea of React Native Nigeria communities. We try to educate more people.

 

Jamon Holmgren:

Mm-hmm.

 

Oluwatobi Shokunbi:

I don't know about you, Harris, but when I got into programming, it was really hard. It was really hard. Most of the tutorials we have to do, it looks like you could literally go on Google and just write, React Native and see the floods of resources that's going to come at you. You'll keep reading and get tired. Back then, it wasn't really like that. And that was what I was really about. I really wanted to have a lot of content out there that helps someone do the basic things in React Native. Depending on as little as even, "Okay. How do I prevent an Android device from going back when it hits the last screen or disabling the backwards." Yeah, we really wanted to have all this type of content out there. And I just wanted to do as much as I can, put out a lot of Medium articles, put out a lot of YouTube tutorial videos. Funny enough, I just started creating new YouTube tutorial contents this year.

 

Jamon Holmgren:

Mm-hmm.

 

Oluwatobi Shokunbi:

So it has been very funny experience with iMovie for me. Because normally, editing is really not my strong suit, but I just had to get a grasp of what it is, and try and put more content out there, because you don't know what people want. Some people may enjoy reading, some people may enjoy just watching the tutorials. So for me, it's the drive to teach more people how to use React Native, because most things are in... React Native, this is really straightforward if you know what you're doing. If you have the right resources, the right tutorials, you could just get things done in a matter of seconds. So that was most of the whole drive. And I already have a lot of people always asking me the same question over and over again on React Native.

 

Jamon Holmgren:

Mm-hmm.

 

Oluwatobi Shokunbi:

So, you know what? I'm like? Once I get this question twice, I'm going to write an article about it. I don't care if someone has written an article about it before. I'm just going to write an article and have someone be able to read that, and it guides them through whatever they're trying to do.

 

Harris Robin Kalash:

That's cool. And yeah, iMovie is a whole other thing I had to play around with it recently too. It's worth it to learn.

 

Jamon Holmgren:

It doesn't seem like you're too hesitant to jump in and learn something new, though. You're really, if you need to learn something, you just dive in head first. Well, either that, or your friend comes over and unplugs the video game.

 

Oluwatobi Shokunbi:

True, true. And I'm really sure he's going to be very happy to unplug it. But yeah. I have this idea like, programming is really just one and zero, taking off time and put into it, and you will get something back. So, yeah. I just want to get as much as I can from a particular thing, and put out a lot of content on it, and put on my own twist on it so people get it probably.

 

Jamon Holmgren:

So React Native Nigeria, a lot of what you're doing with that organization is you are hosting meetups, and you're really facilitating networking between software developers in Nigeria as a whole, but also in your local community. So is that sort of your primary goal with it, or do you want to expand it to doing other things?

 

Oluwatobi Shokunbi:

For now, what we are currently trying to do is connect as many developers as we can in local communities to themselves and to a larger community. And what that means is if there was a developer in Abuja trying to get into React Native, we want you to know that we are your best fits to understand your React Native a whole lot faster and a whole lot easier. Yeah, you can read on your own. But what we are saying is we have various tools that could fast track that for you. We do have the numbers. So if you need someone to talk to about a certain project you're working on, we have group chats on a state level, down to even WhatsApp, because we even have some issues where we say, "Okay, we can't get on Slack, it's not friendly."

 

Oluwatobi Shokunbi:

We will have chats on WhatsApp group where developers actually can interact very fast and easily. We also try to do a whole lot of open-source projects as a community. Most recently we had the lead for Caliber make this React Native image picker for... React Native Cloudinary image picker. So it's this package that basically just helps you upload image to Cloudinary without you setting up anything. So yeah, we tried to play on weird ideas from individual developers in the community, and try and have them know that, "Okay, you can also create stuff for React Native and put it out there. So yeah, for now, we are just more about developer groups...

 

Jamon Holmgren:

Mm-hmm.

 

Oluwatobi Shokunbi:

... down on the state level. And we really want to take that on a very large scale across all parts of Africa, and definitely one day the world, host really nice meetups and large meetups. So we will have guests from all over the world come speak. But yeah, definitely. We are about developers growth, because we believe React Native really isn't hard in terms of, say the time to learn on basic things that you should know about. If you just have that solid ground, or where React Native is, you should be able to build beautiful apps React Native, and that's what we are trying to do, be that solid ground for you when you're getting in.

 

Robin Heinze:

As part of this React Native Nigeria community, it seems like you work with a lot of new developers. And it also sounds like you've been working with Expo a lot recently. So I'm wondering if you've noticed that Expo, does it help new developers sort of get into React Native more easily, or would you say that the magic of Expo makes it harder? What's been your experience with Expo and sort of newbies?

 

Oluwatobi Shokunbi:

Oh, okay. So personally, I feel Expo is awesome. It is actually awesome, because most people don't even know this about me. I actually started learning Expo before I started learning React Native, before I started learning React. When I told this to my friends and they're like, "How do you know React? How did you understand React Native going to that path?" And I'm like, "For me, it's just been straightforward because Expo gives developers this kind of soft landing when getting into React Native." And people don't know this, but it is necessary for that soft landing to exist. You really don't want to build a mobile app, something very small. You don't want to start stressing or going over node models, or packages that you have to go into the Native side and start writing something that you don't really want to write.

 

Oluwatobi Shokunbi:

So yeah, Expo really takes that away, and it's really awesome that that exists. So it really provides a lot of soft landing for developers getting into React Native, it's just really awesome. It does help a lot. And even now most of that, you could actually even run Expo applications in normal React Native applications with the new module. That's is a different game changer right now. So it even gives you the ability to, "Okay, I don't want to work with Expo." "Okay, work with the CLI, and plugging experts, so you can still enjoy the goodies that Expo has to offer." So yeah, it really is very nice to have Expo exist at a time like this. And Expo is really even cutting corners in terms of performance.

 

Jamon Holmgren:

Mm-hmm.

 

Oluwatobi Shokunbi:

And most recently, they even walked on Expo's code  to reduce the file size of your normal... the final APK bundle that you get when you want to submit to the store. And that was really impressive, because back then, when I say React Native with Expo, I could remember how large my bundle could be, and I could do nothing about it.

 

Jamon Holmgren:

Mm-hmm.

 

Oluwatobi Shokunbi:

So currently, I feel Expo is really here to stay. It will surprise you the insane apps that even currently exist due to Expo. I did scroll on Twitter once and saw this application where you could copy and paste things in real time with the phone camera. And it was due to Expo. I don't know if you saw that, Harris and...

 

Robin Heinze:

Oh, I do remember seeing that. And I was astounded that that was made with Expo.

 

Oluwatobi Shokunbi:

It was really nice. I think when on the demo, she copied includes and small tree plants in the house, and pasted it on a book or a paper with the phone, it was really, really nice. So Expo is really doing real cool stuff. And yeah, for me, it has really helped me a lot because when I want to view an open-source project, I always viewed Expo first.

 

Jamon Holmgren:

Mm-hmm, right. 

 

Oluwatobi Shokunbi:

Yeah. I always view Expo first before I put it out there. And yeah, it really does help me a whole lot setup. And also, when I'm trying to say even tell someone about React Native, and the person is all about, "Well, I don't know anything about Native code. How do I start going about learning React Native?" I'm like, "You know what? You don't worry about that. There's this cool stuff called Expo, you could just forget about all that and just walk where we go." And yeah. It's really nice to have that.

 

Jamon Holmgren:

That's interesting. Yeah, you can go get started. Yeah. I like how-

 

Robin Heinze:

Like the term soft landing a lot. That was a goo description.

 

Jamon Holmgren:

Yeah, it is. Definitely. I think that a lot of the abstractions that are built on top of... well, even React Native itself is an abstraction built on top of the Native code. And these things make programming more accessible to people. I remember when I was growing up, the only programmer I knew had a computer science degree, and he was a ridiculously smart guy. So it didn't feel accessible to go into... my parents were like, "So Jamon's interested in coding. What should he be doing?" Oh, he should be doing C++." That's what everybody did. And I was like 14. So that turned out about as well as you would expect it to. But now, there are just so many options and so many better ways.

 

Jamon Holmgren:

And Expo I think is...I've said actually, for years now that I think Expo is the future of React Native. I think that that's how you should build React Native apps, if you can. It's not there yet, but there's some really cool things like you mentioned, they're reducing the binary size, and they're also working on some things... I think at some point you'll be able to write custom Native code in Expo if you want to, if you need to, which keeps you from having to bail out. There's some things that they're working on there.

 

Harris Robin Kalash:

I was just going to add, yeah, it would be great if you didn't have to eject. That's the only reason I don't use Expo. But after hearing you, Oluwatobi, I'm going to start using it again because... I kind of avoid it because I'm like, "If I'm going to inject anyway, why bother?"

 

Oluwatobi Shokunbi:

I really do feel it's depends on your projects. Because I do work with  a lot with startups, and we get into this conversation. "Okay, what are you building?" If you basically understand what you're building, you could tell beforehand that, "Okay, you know what? Expo can handle this for me." And I will sleep better at night running this on Expo. I'm serious. It just takes you really sitting down to understand your projects.

 

Jamon Holmgren:

Mm-hmh.

 

Oluwatobi Shokunbi:

"Okay, this is what I'm good in. Okay, let's go with Expo. And I'm sure you will love it. I think they have this new thing where you could... something similar to code push, where you could have your own server pool for updates when you want to get the new binary for your project, for your APK, for your app. So it helps a lot. Really real cool things are coming into Expo. And if you really look at it, why go the extra mile to do that on your own? Why?

 

Jamon Holmgren:

Yeah. That makes sense.

 

Oluwatobi Shokunbi:

You should try it out.

 

Jamon Holmgren:

I agree. So in Nigeria, there've been some real challenges, especially lately. Well, I shouldn't say lately, they've just come to surface more lately. I noticed on your Twitter profile, you have #EndSARS. And of course, I've been following this fairly closely. I have a lot of Nigerian Twitter mutuals. And so, from what I understand...well, actually, how about you go ahead and talk to us a little bit about the challenges that are happening on that end in Nigeria right now.

 

Oluwatobi Shokunbi:

Oh, well, it's really been very long months. I think it's getting to months now. And it's really insane where we see police brutality at the maximum level, and nothing is actually being done about it. And that's where the problem comes in because it's wanting to know that there is a problem, and it's wanting to fold your hands and not do anything about it, or actually stand up and do something about it. And it's been something going on for awhile. You see police officials harassing individuals for no just cause.

 

Jamon Holmgren:

Mm-hmm.

 

Oluwatobi Shokunbi:

You see them extorting more, so it's biting off, you can't just... in places like Lagos, you can't just walk around with expensive gadget because you're like walking around with fear that okay, the police official is going to... or the SARS official is going to stop me and harass me because they just assume that you are doing something illegal to be owning these products, a MacBook, or an iPhone. It's really insane. And knowing that this is going on for the longest time and they've been killing, they've been doing all sorts of things. And the youths of the country just got to that point where we said, "We can't have that anymore, and we just have to speak up, and get some accountability for what is going on for deaths that has been going on around the country, call these SARS officials to book, bring them to book and have them pay for these crimes."

 

Oluwatobi Shokunbi:

And this is what has been going on over and over again. And we've just been getting this whole... no answer, no accountability, no leader doing anything. And it's just really insane. And after that we had this Lagos massacre, which happened where the Lagos states government actually called out the military to come and shoot at protestors at night. It was really devastating, because we lost a lot of people during that period. And the Nigerian army came out and shot at protestors for just no cause. And it was just really crazy. It's just really, really crazy experience. It's just really been a crazy experience. And we just try and hope for a better Nigeria, and try and make these things not happen again, because if we don't speak up, it means we are comfortable and okay with it. So we had to speak up and have this end.

 

Oluwatobi Shokunbi:

So it was just insane, because I was actively participating in the protest, here in Abuja. So things we went through during the protest, we had the government literally sponsoring thugs to come disrupt protest. So we had people's cars being vandalized during the protest. We had people got injured being attacked by thugs during the protest. So it's just devastating, and a whole lot to be going on. And people just trying to make a whole lot of sense from what's really going on in the country.

 

Harris Robin Kalash:

I've also been following this as well. And if I understand correctly, the units that is responsible for it was actually initially created to end corruption, right? That was-

 

Jamon Holmgren:

Wow! 

 

Oluwatobi Shokunbi:

They are the ones actually even pushing corruptions. So it's just like a whole lot of things were happening underlying. Government, they want to dissolve the unit, because I don't know, it feels like they use the units to do more things at the back scene that we don't even know of. So it felt like, "Why don't you want to close this unit once and for all? Why are we going on and on about this for weeks." And it's just been insane.

 

Jamon Holmgren:

And like Harris said, the unit S-A-R-S, it's like special something robbery. It's like anti-robbery. It's essentially supposed to be protecting the people against the thing that they're actually doing themselves. And it's, I'm sure, very frustrating. You mentioned while you were talking there that you can't walk down the street with an expensive piece of electronics or something like that. And of course, that affects the developers of Nigeria, not just the developers, but specifically where we are all developers here, and that you're often walking to a coffee shop or something like that, and you're going to go and you're going to be working there, and you have a laptop. And the stories-

 

Robin Heinze:

One iPhone for React Native.

 

Jamon Holmgren:

Or an iPhone, or Android, all of these things. And that's something where maybe in some places of the world, you might be worried that you might be robbed or something by somebody who's outside of the law. But in this case, it's actually the law that's coming in. The people that are supposed to be protecting you and taking those. And that can be, I'm sure, extremely frustrating, especially when you've worked hard to get those electronics and it's something that is your livelihood. It's how you make your money, it's how you communicate with the outside world. And that's just taken away from you.

 

Oluwatobi Shokunbi:

Yeah. It's really, really bad.

 

Jamon Holmgren:

Is there something you would recommend that people can go learn more about this and learn how they can help? Is there any particular organization that they should maybe support or just pay attention to?

 

Oluwatobi Shokunbi:

So the way a couple sprung up during the... in such protest, but currently, they've been dissolved, and most of the funds they got were shared out to the medical team that helped out during the protest, and some other agencies like the law firms that also helped out during the protest to get out. Because they were also arresting some protestors during that time, to get out these protestors at the time. So most of the funds went out to help those that were active during the period of the End SARS protest.

 

Jamon Holmgren:

Mm-hmm.

 

Oluwatobi Shokunbi:

But for now I'm not really sure if any, that you could actually support financially.

 

Jamon Holmgren:

I do know there's a #EndSARS that you can follow just to be aware of what's happening. And I'm sure if there are situations where they can reach out for help to the world, to the global community, that would be a good place to start. Yeah, very... obviously, we're all, hopefully trying to support you and hope that it gets better over there in those ways. But even through all this adversity, you all are definitely still moving forward. I see a lot of things that are being promoted. You're writing articles, you're making videos, you're doing what you can to keep things moving forward. And I'm really interested to see the direction that you go as you kind of go further in with React Native Nigeria. I think that these types of organizations are critical for growing communities and supporting people. I'm sure there are other kids out there just like you, maybe playing video games with their buddy and thinking about, "Hey, maybe I could make games, or maybe I can make an app." And providing that structure and that organization for them to really thrive and connect with other people, I think is so critical.

 

Oluwatobi Shokunbi:

Yeah, definitely. It is. It's really important to have communities. In most of my articles, I always write, I say, "You can't say you are parts of programming or you use a particular tool, and you don't belong to any community for that said tool." It's really insane when people tell me that they can't find one community they can attach themselves to because the community is far much more than just a community, like, second home for developers, because believe it or not, developing and programming gets boring over time. When you just think you could do it on your own, you go further, and you go... you have like this Slingshot that pushes you to the front because the community is there to do that. You learn quite a lot from other people in the community. You see talented people than yourself, you see people that you could actually even point their pool, and point to their well of knowledge, and also even get a bit from them. And you can only find this kind of setting in a community. Yeah. So it's really important.

 

Jamon Holmgren:

Very cool. Awesome. Well, this has been fantastic, Oluwatobi. I really appreciate you coming on and kind of sharing everything about React Native Nigeria, and your background, and your story. We're going to turn now to the part of our show where we talk about weird bugs. Let's talk about how... Who has a weird bug that they've encountered over the past couple of weeks? Doesn't have to be you, it could be someone you work with. Is there a weird bug that we should talk about?

 

Robin Heinze:

Well, I have an infuriating bug that probably everybody listening can relate to. It's actually a bug that my co-worker found in my code. So those are always fun.

 

Jamon Holmgren:

All your fault.

 

Robin Heinze:

Related to everybody's favorite topic, time zones. We're building an application that deals with multiple physical locations in different time zones, but potentially, users who are trying to schedule things at those physical locations from maybe a different time zone.

 

Jamon Holmgren:

Mm-hmm. 

 

Robin Heinze:

So we're having to do a lot of converting. I still don't quite understand what was wrong here, but what was happening was that my lovely co-worker, who lives in North Carolina and I live in Portland. So all my code is done in PacificTime. And then he runs it and will usually find bugs, because he's running it in Eastern Time. Noticed that the data we were loading just didn't show up for him at all. And then when he switched his computer times and literally went into the settings and changed his laptop's time zone to Pacific, everything showed up. So he said, he's fixed it. I think what was happening is we were... I was double offsetting or double accounting for the time zone.

 

Robin Heinze:

Somehow, a time was already in UTC, and then I was then adding the timezone offset on top of that instead of the time being in Pacific, and adding the time zone offset to get back to UTC, something was already in UTC. I still can't tell you what happens when you just run “new date.” Like what time zone it's in whether, yeah. Time zones are kind of a hit or miss, guess and check.

 

Jamon Holmgren:

I feel like there are people that have devoted a lot of their career to just solving this problem in libraries, like moment and date... was it date?

 

Harris Robin Kalash:

Date-fns.

 

Robin Heinze:

We use, yeah, date-fns.

 

Jamon Holmgren:

FNS. Thank you.

 

Robin Heinze:

Which we've started using that over moment, just because moment is so massive.

 

Jamon Holmgren:

Hasn't moment been deprecated now, in favor of FNS?

 

Robin Heinze:

If they're not going to be actively adding to it, I don't think it's going to go away, but they're not.

 

Harris Robin Kalash:

They have a new library called Luxon.js, I think, but I don't think Moment's going to go away. I've tried date-fns, and I couldn't do something-

 

Robin Heinze:

But I don't think they could completely remove it because half the apps in the world are using it.

 

Jamon Holmgren:

And nobody wants to go back and touch that code if it's working.

 

Robin Heinze:

Exactly. Yeah.

 

Jamon Holmgren:

And so, because your co-worker he’s in the East coast, and he sometimes works quite late at night. He will encounter the boundary of midnight at a different time than we will.

 

Robin Heinze:

Mm-hmm.

 

Jamon Holmgren:

I have a kind of related, weird bug that happened to me. I used to work out in the morning. I would go to the gym and work out like around 7:30, eight o'clock somewhere in that range. And I use an app called Strong Fitness to track my workouts. And I had this problem where, sometimes, you would do a set and you'd would record it, and then there'd be a rest timer. It's going to be going for a minute or two minutes to give you some rest in between your sets. And I'd be on my phone, just scrolling through Twitter or whatever, while I'm resting. And then I'd be like, "wait, the timer never went off." I go back and the timer is done, but it didn't actually “bing” on my phone, telling me, "Hey, you need to get back and do your next set."

 

Jamon Holmgren:

So it's been four minutes or something and I didn't notice. But then sometimes it would work. Sometimes it would work every time. So I emailed the developers and I said, "Hey, I'm having this problem. It's just really random. Sometimes it works, sometimes it doesn't." Turns out that it would start working after eight o'clock. It would not work prior to eight o'clock. And the reason was my phone was on silent. It had an automatic thing, like turn off the sleep mode, or whatever you call it at eight o'clock. And so prior to eight o'clock, of course it's not going to “ding” because I have it on silent.

 

Robin Heinze:

That's funny.

 

Jamon Holmgren:

So that was actually like, "Oh, that's user error." But not an obvious user error.

 

Robin Heinze:

But it goes to show sometimes testing your code at different times of day can be really helpful. Especially if you have anything that's time-based-

 

Jamon Holmgren:

Totally.

 

Robin Heinze:

... displaying time formatting, whatever.

 

Jamon Holmgren:

Every time I would test it before I would send them an email, it would work, because it would be during the day. And then if they test it, they would be testing during the workday. It's working fine, I can't get this to not work. But then in the morning, if it was like 7:45 and I'm at the gym, it wouldn't work.

 

Robin Heinze:

So funny.

 

Jamon Holmgren:

Awesome. Well, where can people find you online, Oluwatobi?

 

Oluwatobi Shokunbi:

I'm really active everywhere. But you can reach me on Twitter @just1and0. So that's J-U-S-T, number one, and A-N-D number zero.

 

Robin Heinze:

It's a really cool handle. I like it.

 

Oluwatobi Shokunbi:

The funny thing is that I went through hell trying to get that handle, because I wanted a new for myself across every platform. So when I was joining Twitter, I would pick any, go down to Instagram, and it's already taken. Then I kept doing that all over and over again till I got just1and0. I'm surprised no one took it.

 

Jamon Holmgren:

That's fantastic. And Harris, you recently changed your Twitter handle. What's your new one?

 

Harris Robin Kalash:

So now you can find me @nomadicspoon.

 

Jamon Holmgren:

That's a good one.

 

Robin Heinze:

Nomadic spoon.

 

Jamon Holmgren:

How'd you come up with that one?

 

Harris Robin Kalash:

So the previous one was too hard for people. It was too long, too hard to pronounce. And I was like, "You know what" I am as you can see, living like a digital nomad.

 

Robin Heinze:

Kind of a nomad?

 

Harris Robin Kalash:

Yeah. And I wanted something that people will remember. Something catchy everyday. So I literally had a spoon next to me. So I was like, "Nomadic spoon. That sounds..."

 

Robin Heinze:

You have to come up with a better story for why.

 

Jamon Holmgren:

I know. That's not good enough.

 

Harris Robin Kalash:

But, people remember it. Yeah. Yeah.

 

Robin Heinze:

It's neat.

 

Jamon Holmgren:

I'm interested to see where you are next. Next time we start recording, I could look over my shoulder and you're right behind me.

 

Robin Heinze:

He has been getting closer.

 

Jamon Holmgren:

He's been getting closer.

 

Harris Robin Kalash:

I have actually, it's a straight line to Portland and to Vancouver.

 

Jamon Holmgren:

And Robin, where can people find you?

 

Robin Heinze:

I'm @robin_heinze on Twitter. Heinze with an E at the end.

 

Jamon Holmgren:

With an E at the end. And I am @jamonholmgren, just my first and last name. You can find me there. This episode is brought to you by Infinite Red. Infinite Red is a consultancy that does design and development for web and mobile applications. Primarily focusing on React and React Native. So hit us up. If you need any help with your React Native or React projects, I'm happy to chat with you. Just email us, Hello @infinite.red, or check us out online, @infinite.red. Thanks everybody for tuning in and we'll see you next time.

 

Robin Heinze:

Bye.

 

Harris Robin Kalash:

Bye.

 

Jamon Holmgren:

Bye.