HomeAboutContact
Landing in Tech
EpisodesStoreDiscord

Ep1 - Transcript

Episodes transcripts are powered by Otter AI, this is an awesome service that transcribes the audio, the grammar it's not perfect and there are some inconsistencies with punctuation and casing, but it's quite accurate to turn sounds into words.

If you wish you could edit the transcript on the Landing In Tech GitHub Repository

Gemma Black: From Studying biomedicine to becoming a fullstack developer

Fabio Rosado

Hello, today I am joined by Gemma Black. She's a full stack developer at Kamma Data and she's gonna talk to us about her experience and her journey from studying biomedicine to becoming a full stack developer. Welcome Gemma how are you doing today.

Gemma Black

Doing great. Thank Thank you for having me on the show.

Fabio Rosado

I know that you've already told me about your story. And I find it fascinating because you know you went from studying biomedicine to becoming a developer which is something completely different.

Can you can you share your your experiences?

Gemma Black

It'll be a pleasure. I genuinely I've been thinking about how I would tell this a really short way because there's certain things in my life I just don't do directly. I seem to go all the way around the houses and this was one of those ones. I finished studying biomedical science. I actually wanted to be a doctor, but again, instead of studying medicine, I decided I will study biomedical science first and afterwards. I wanted Take a year out primarily to save up some money to work in a little bit of experience in the hospital setting. And I didn't get through to the universities I wanted. I was looking to do a graduates programme, which is a shortened medical degree. But when I didn't get in, I tried again, and Warrick University again said, no, but we consider you for the five year course, which is a traditional medical degree. And by that time, I had started coding, I was doing other trading things. I was playing my guitar, playing with a bunch of people. It was having so much fun exploring these other things I just ignored because I was so focused on becoming a doctor and get my degree. You know, I enjoyed the things I didn't even realise there was more to life than science.

Fabio Rosado

Yeah, it makes sense. So you started by recreating a guestbook site.

Gemma Black

Yeah, my first experience of code was when I was about 14 or 15. It was during the days where before Facebook, he had like those guestbooks sites. I don't know what the names of them are now. But you basically set up one and then you can just like chat in a guestbook this never ending chat site that you have personally and my friend shared it with me. And I was like, This is amazing. It just doesn't look very good. How difficult can it be to make it look better? And of course, I decided to look up like BBC s website or something like that. And I looked at their markup. And I was like, is that it? I have to learn this. And actually, it was a lot harder when I figured it out a little bit of HTML and like h1 tags, I still whenever I created still didn't look good. And I was "ahh this is taking long", then I realised I needed like a database, I needed to learn a scripting language and I just say fine I give up. I'm not gonna try to do this anymore. But during that gap year, I started to explore web development again, and by this time, WordPress had come out and it changed everything because it literally just did the back end for me. I was like, amazing. I don't have to touch anything to do with that, that backend stuff except for WordPress gives to me and I was able to create a front end. And that was the beginning of it. And of course, like like yourself once you say you know how to make a website, everyone's asking you like, Can you make me a website? And then of course I was like okay.

Fabio Rosado

yeah, especially with WordPress, because you can make so much with WordPress, and then you have so many plugins and, yeah, you can do everything with WordPress. And you know, I remember those guestbook websites. I think I had one. I think there was like, a free account or a free place where you could have your own guestbook site.

Gemma Black

Yes that's it.

Fabio Rosado

Yeah, and then you can customise it and stuff. So it was it was so fun to do something like that. And this was ages ago, I think, I don't know, maybe 98 or something like that. I don't know.

Gemma Black

Jeez! Yes!

Fabio Rosado

something, something like that.

Gemma Black

There was like my space around at the time and you can do these little cool things on myspace. So it was awesome. I didn't. I wasn't like business savvy to create you know those templates, people were selling templates for myspace and I enjoyed that so much. But I didn't I didn't actually monetize it. I was just one of those people that was happy to just code in my spare time. But eventually, I realised I didn't really want to go back to medical school, but I had to really think about what what is it I'm going to do. And of course, I couldn't really tell my family I just spent three years studying and not come out with like some sort of, like the job, which which justified it. So I did an internship at a company called marketeers 4DC. And I remember creating a portfolio. I didn't really have much work to show for it. But the portfolio in in and of itself was like a representation of my skills, and I use jQuery. And so this was actually a few years after, and they actually brought me on and I couldn't believe that they did, considering that there wasn't any Commercial experience I had I didn't go to university to study computer science. And they said, Yeah.

Fabio Rosado

So, was the that internship that kind of made you wants to go into development? Or was it because you where already doing some websites WordPress website, and you kind of enjoyed the development process or... I know that you don't have to worry about back end, but now you have to but when you were starting, was it that? So I'm going...

Gemma Black

yeah, no, sorry. No, I genuinely wanted to be a developer. And I thought I didn't feel comfortable applying for, say even a junior role because I just felt I didn't have the experience and, and even now, if I if I see Junior roles, they still ask for quite a bit of experience. And I always find that fascinating. So I thought if I do the internship, whatever I learn and whatever I build during that time, at least I can then apply for something, and when I when I got there, I thought I knew a little bit about coding, and then I just realised, yeah, I don't really know that much at all. In comparison, you know, I was with really smart people as well. So I was so humble, they were able to teach me like the fundamentals, like what is a class and what is an instance, I didn't have any idea. And using jQuery, of course, I was never, I was never really going to get into like inheritance and all that stuff. But by the time I'd finished my internship, they said to me, would you like to stay on and I get paid like properly because at the time it was an internship where they only paid expenses and, and whatnot. So I was working on the weekends to help get by. And so of course, I said, Yes, I will definitely work for you. Of course, I will work for you. And these were the most wonderful people to work for. They were so kind and they literally would sit with me, the senior developers an just pair programming, show me how to structure code, show me what MVC was. They taught me what the Zen framework was and then I was able to apply that to the front end. So I'm eternally grateful to them.

Fabio Rosado

You You think that definitely this internship was what really opened the doors for you to the develop world. And we always hear people say that when you are looking for a position. For your first position, try to find a junior level position because it will be easier. As a company won't expect you to know as much as a junior developer. those positions are quite hard to find though. Most of the times you can find front end developer back end developer buts Yeah, junior developers, unless it's a internship, it's a bit hard, but it looks awesome that you had someone that could mentor you and help you grow.

Gemma Black

Definitely...

Fabio Rosado

What you are now I guess that was like the grounding steps. Just out of curiosity, you said that you didn't want to pursue medicine. Was there any particular reason why you didn't want to pursue medicine?

Gemma Black

That's a good question? Well, the I when I, when I think about it now looking back, one of the things that encouraged me to study medicine was when I saw my grandmother, she was incredibly sick throughout my lifetime. And she died when I was when I was about 16. And when I saw how sick she was, I was determined that actually, I will be a doctor, and anyone who comes to me, I will fight so hard to make sure they don't have to go through what she went through. And so between eight and 10, I made that decision. And I think once she had passed away, I think that determination had had gone because, you know, she was the the impetus for it. And by that time, I think my focus had always been on like science, maths, biology, those things, studying those things, that I didn't really pursue any alternative alternative ideas of what I should do with my life. So when I realised actually I genuinely like coding. I like the actual process of sitting down and writing code. And I enjoyed playing guitar just as much, but I didn't really see how I was going to make a living from that. And when I got the the rejection, I knew that it was nice to be considered for the traditional course when I got the rejection. It actually made me think do I really want to pursue this is going to cost you know, a certain amount of money and extra more time, where there is something now that I actually like, if I can do that now, maybe I don't, I don't need to go down this path because I've just put my mind to it from when I was little that I should.

Fabio Rosado

Yeah,

Gemma Black

So I was happy to backtrack and I didn't feel like I had wasted time studying biomedical science. I, I believe I've benefited from it, but I wasn't afraid to just change course at that time.

Fabio Rosado

And that's really brave because sometimes when you are studying three or three years of a particular subject, even if you don't like that particular subject, you kind of feel like, okay, I spend all this money and time and all this effort, I need to do something with it. And I could have to say it's it's amazing that you decided, oh, you had maybe a soul searching moment that just said no, I this is what I enjoy doing. And this is what I want to do. We have a question as well, since you didn't study computer science or any coding programming, IT degree. Did you have any projects in your portfolio? When you got that internship?

Gemma Black

Yeah, I, I felt that I needed to have something that represented a skill set that I had acquired, even if it was limited. I knew they might laugh at why whatever I did, but I created this site, and it was basically a blog. But there was animations as it went from post to post. And actually, the first project I got during the internship was from the designer who said, I want you to do exactly what you did for your portfolio, but for this design. I was like, Okay, I could do that.

So that's what I did. And, you know, I literally felt that they for whatever reason, they chose to take me on. I literally thought that it was because of the portfolio that gave me the opportunity. If I just said, I really want to code, I'm not too sure if they would have been as convinced. So

Fabio Rosado

yeah, and again, like I said, if you don't have that degree, and you see a lot of job offers, where they say, Oh, you have to have 10 years of, I don't know, Java experience. And you have to have three years of React, and etc. And you don't have that experience as working. But you have projects that you can show. That's, at least you know, what you're doing. Did you have the code on GitHub or somewhere else? Or did you show the code when you were interviewing?

Gemma Black

Actually I had a work in site. And this is the thing I didn't know anything about GitHub at the time. This was 2012. I didn't know what version control was, this is how bad I was. The first version control software we use was subversion. I don't know. I don't know if it's around now. So like, literally my knowledge of professional development was, was so limited, but the portfolio itself, they could go to the web, it doesn't exist. Now, if they go to the website, and they could try it out, and they didn't actually look at the code. That was that was actually something I didn't realise. They didn't look at the code. He just looked at the final product. And I think they believe that I actually did that. Thankfully, I did.

Fabio Rosado

So either way, what's really caught their eyes was the design of your blog I think, right.

Gemma Black

Yeah. You have a great open source project, with opsdroid, something like that, having... when we see like that and you see, you know how capable that library that framework is. I think that demonstrates a skill set a lot more than saying I have three years experience in in XYZ. And of course, you can say that but different people have, you know, some people will have done, you know, 10 years of say PHP, and in someone else's done three, and they they can produce the same type of software. So when I see those job specs where they're asking for something like, have you done seven years PHP, I don't really think that's the the question that they should be asking is more. This is the kind of products we want in our company, what have you demonstrated in your past that shows us that you can create that type of product? Of course, the experience, one is an easy question to ask of developers. But I've seen developers coming along now. And what they know now, in just a short space of time, is incredible. Like, I look on Twitter, and people do like a course and they do React or Vue and they do incredible things. And that to me, that shows the amount of time someone spends in working with programming languages and the is best representation. Sometimes,

Fabio Rosado

Yeah and I think in the past the bar or the entry level bar was a bit lower than now because now we have so many new frameworks, so many new languages, even so many things are popular. And then they stopped being popular. And then they're popular again, like PHP, like you mentioned, there was a time where you said, I programming PHP, and people are like, Oh, really. Now you see more developers going back to PHP, because mostly of Laravel. And I think in a way, the bar is a little bit higher than maybe five years ago. So I started learning how to code four years ago. And I've seen a huge difference even on the job offers, like I mentioned, you could find some job offers for junior developers and etc. And now it's a bit hard to find position for junior developer, especially in UK and you you see the requirements they they ask more of you, and in a way you're kind of competing with more people and a lot of times it's like more talented people than you or something and you're like okay, so If someone is creating these amazing full stack projects, I have to do ten different full stack projects so I'm better than this person. Saying that comparing yourself to other developers is not a great way to go. I would say, when we are starting, we kind of do that mistake. I know I've done. I've saw some some great developers, and I was looking at what they were doing. And I'm like, I can't do anything because they create 10 projects in three months. And I'm stuck on one. So in a way, it's kind of like use whatever other developers create, and use that as motivation, or to give you a boost, where you can say, Okay, I need to get my game on and I need to work harder.

Gemma Black

Is true... actually, I know. I know how how easy it is to look at a developer or look at even developers in your own team and to see Oh, my goodness, How did he know this stuff? You know, you could just see that gap in knowledge or abilities and it can be difficult to not want to rush and catch up because I do remember my first year because I didn't do computer science. And I know a lot of developers who didn't study at university, we feel a bit self conscious. There are no unknowns, you don't realise you notice a gap in your knowledge, but you just don't know what they are. And I remember that first year, I was working insane hours, and I will be coming home and doing more and on weekends, like coding more and learning more. And when I say to the senior developers that one did like the robotics end of year course at university, can you if I'm comparing myself to him, of course, I'm not going to catch up. Like he's always going to continue to improve but in my mind, I was like, I need to get to some sort of level where I mean some ballpark range of comparison and that's not healthy because I did get quite sick within the first two years and got very stressed and it took me about four years before I learned that actually is is quite okay to not know Everything before you turn up to work that you can tell your boss and say, I don't understand how to achieve this. But if you give us a bit of time to prototype this idea we can do a bit of research and we can get a product out or we can create like an MVP version with the knowledge we do have. It's taken me years to get to that point.

Fabio Rosado

So those two years or three years when you were starting, were you just working full time on the internship plus coding on your free time and trying to catch up with other people then?

Gemma Black

yeah, in fairness, during the internship, I didn't feel any pressure because I know they weren't. They weren't paying me to deliver results. They were paying me to help with a lot of like the grunt stuff like the the more boring stuff like HTML, emails, and then I will get a little bit of the exciting tasks once I finished those. So I knew there was zero pressure, but when they offered me the job, I quit my weekend job, then like my spare time, everything went all in and yes, granted, like I did learn a lot I mean at the time, that's when JavaScript frameworks started to come out. And the first one was I think backbone? backbone, I think disappeared. And then underscore came through and eventually I think Angular came out. But I was quite obsessive about learning all these these frameworks and convincing the senior developer that we should use them for anything we should. We should just use any of these frameworks because you have a framework on the back end. And they brought me on as a front end developer, I was like, we should have frameworks on the front end, it makes sense. And there was one project where I got to use it wasn't actually a JavaScript framework. I kind of built one and in fairness, looking back, it was the worst code ever. By the time I was really proud of it, of course, but I think the first year, you want to learn as much as you can, but there has to be some balance. And I didn't really have anyone to say like, slow down.

Fabio Rosado

I understand that completely. Because looking at what I've been doing so far, sometimes it's hard and I I think a lot of self taught developers experience burnout. Because of that, we always try to catch up. And we know that we don't have a CS degree or any IT background, we always feel that we have to catch up, you know, and also you love coding, love what you're doing. So it's like, I want to learn everything. And yeah, working full time. In my case, I do shift work. So it's a bit hard for me to have a regular schedule. And then sometimes I work 14 hours a day, times over three, it's odd. So every day is different and I work with a different team every single day, and I still spend at least one hour looking at code. Even if I don't change anything. I'm still looking at it or reading something or trying to improve myself. Last year, around March, I felt massively burned out because I've been going at it for almost four years straight. So every single day off I had, I was spending 12 hours, 13 hours in front of the computer, learning how to code or doing something... opsdroid, like you mention is not a project that I've created. I'm a maintainer for it Jacob created that project and it was my first open source project that I've contributed. So opsdroid is Jacob's pet project. But it's kind of mine as well, because it was the first project that I've contributed. And it was what made me fall in love more with open source and coding. As you mentioned, you look back at your code and you're like, wow, this is atrocious. But then you may also realise that I've grown so much looking back at what I've created to what I have now is just amazing. And if you think about it, now we have like, No, I didn't really grow that much. And then you look code that you've written one year ago or something like that. Okay, yeah, definitely improved a lot.

Gemma Black

It's true, actually, I guess when you when you first started, what languages were you looking at? Was it like obvious you were gonna do maybe Python or did you look at a range of different ones and then stick with?

Fabio Rosado

so the first language ever that I've ever look at was Java, I went as far as writing HelloWorld in Java. This is because so I had this friend of mine that was studying computer science, and we were friends, when we were teenagers, then things with life, we lost contact. And then somehow I don't even remember how we met up again. And we start talking and I always wanted to do something with computers. So my biggest dream was working in a gaming industry. There was a massive gamer when I was younger, and I just want to do something like that. Unfortunately, I had really bad math teacher, and they made me feel that I was too dumb to learn maths. So that dream of wanting to do something in the gaming industry will will be impossible because if you don't have a good grasp of maths, you won't be able to do anything in the gaming industry. Really, or at least that was my my opinion at the time. So I met up with my friend and she was studying [CS] I was like man, I would love to something like that. So I am studying Java. And we were start talking about what she was doing in university. I was studying tourism at the time. And I finished the tourism degree, and I just like, I need to do something. So she lent me a book of Java. And I was like, Okay, I'm gonna start learning some. So yeah, I did some basic stuff like hello world, I think I did something with time zones, a clock that was running. So it was like very, very basic things. But then I started working at the same time as studying, so I had no time whatsoever. And I kind of always felt that I wanted to do something after I finished the degree. I was selling insurance. And I did that for one year after I finished the degree. So it was about two years, and I had quite a lot of time, even though I was working all the time. It was commissioned based so I wouldn't have a salary unless I sold insurance. So then I said, Okay, I need to do something with code because I missed that. It was kind of like assembling a puzzle.

Gemma Black

Yeah.

Fabio Rosado

So I need to do something with it. So we did a course in Code Academy. And I believe the first one was JavaScript. And I did all of the little courses. I think it was Python, JavaScript and Ruby. And I did all of them. And I just yeah, this is really cool. I need to do something. And that's when I got introduced to the MOOC's. You know, the online courses.

Gemma Black

I'll have to Google that.

Fabio Rosado

Maybe it's not how you say it.

But But yeah, I did. edx.org. I did the MITx course introduction to computer science and algorithms with python, or something like that. And the course was extremely hard. But we had a really nice group of people that we got together. We were trying to solve the problems together. And I remember that even at work, I kept thinking about the problems that I had. And I was like, I need to find a solution for this. And I was like, writing notes when I had an idea, but then I decided to Move to UK I wanted to live abroad for at least three months. So I moved to UK and I didn't have internet, the room that I was living was a bit dodgy. And then I got a job and I was working insane hours in a kitchen. So I failed the course. Because every week you had to do a problem set. And if you didn't do the problem set, you just you wouldn't be able to do it. You couldn't finish the course.

Gemma Black

that sounds a bit tough. That's... why there isn't a chance to catch up. That's impressive. I've never, I've never seen or looked at any online MIT courses. So that sounds really interesting. Because I would love to try to do maybe a module, a CSS module and see how I get on. That's incredible. Sorry I interrupt you,

Fabio Rosado

Nah it's alright, it's fine. But then I got a job as a flight attendant, and I was so... well I still am... but I was so in love with travelling and finding new countries and etc that my first two years I was just doing everything. So every single day off I had, I was going somewhere, and I keep going back and forth. And I was like, Yes, I'm gonna be a traveller. And it's amazing. And then after two years that kind of I don't know how to even say it. I just said, Okay, yeah, I've travelled a lot. But there is something that is missing. And yeah, one day, I was getting ready to go to work. And I was listening to a podcast. And they were talking about, you know, finding your passion and etc. And they were saying that you should focus on one thing that you, you don't even see the time passing. That kind of ring to me. And I was like, to me, the thing that I just could spend hours doing, and I didn't care if I didn't have food or whatever, was code. And I come back to that MITx course, I used to spend all nighters trying to solve a problem. And I said, you know what? The next open course. Because they go with seasons I think there's twice a year you can do MITx course. The next one, I'm going to do it and I know I have the time for it. And I'm going to finish the course, this massive story to say, I started with Python, because the course from MIT was in Python. So I did a little bit of Java, but I don't even remember anything. So yeah, the Python. And opsdroid is written in Python, but I always wanted to learn React and JavaScript. So it's been almost one year, and I've been doing some react stuff. And I've been learning JavaScript as well, because I always, I always thought you need to learn one language very well. And I need to learn Python very well. And then I will focus on another language. And it really helped me when when I was learning react and JavaScript because I was like, okay, you do this in Python. And JavaScript is like this. So maybe if I do something like that, and even sometimes when I do these coding challenges, I'm like, okay, in Python, I'll do it like that. So maybe JavaScript is going to work. It's, it's not the right way to do it in a JavaScript way. But still, you can beat the code, so I'm like, yeah I'm happy with that.

Gemma Black

Actually, that's a good point when you when you say that, because what do you call that? Being a polyglot developer or something like that? Is what they call it? because in languages it's funny. I've spent time trying to learn pish and I've never gotten fluent but just enough to be able to speak it. But what I found is like the families of languages, when you learn pish, you can like pick up maybe, or you speak Portuguese, of course, I can pick up a book in Portuguese and actually I can understand quite a bit of it, just because like I'm able to translate a little bit from what I know in pish through and it's the same thing Romanian I discovered was quite similar as well. I guess it Latin base.

Fabio Rosado

Yeah, exactly.

Gemma Black

And I feel like I feel like yeah, and in computer. In computer languages you have like families I feel like, JavaScript, PHP, Ruby, Python are part of these like dynamic languages, and then you have Java and C sharp and those ones. And so I think it's great when you you're able to translate from one to another, it helps it opens up your mind to ways, to different ways of solving problems. And...

Fabio Rosado

yeah, and it's it's also why I think it's really important. I'm not sure if you agree with that. But it's so important to you for you to pick up a different language that does something a little bit different than what you're used to. So let's say if you're doing Python, and you decide to pick up Go, so the way that you write Go will be different than when do you write Python. And and if you start getting practice, and you start understanding how to do something in Go, you you can actually grow because then when you go back, you can see a different way and find a different way to solve a problem that maybe you wouldn't realise that you could do it a different way because you've been doing it the same style. All the time, if you know what I mean?

Gemma Black

It's true 100% agree. I is literally because I had the opportunity of working with a Java team very briefly that I didn't realise a language could be so strict having done JavaScript and PHP. and when I saw that I was just I was baffled why things weren't working. It was using a class that didn't didn't inherit from the right base. And when I did that, I was like, Oh, my days coding in PHP will be so much better. If I can have like Scarlet is, of course, she can't have it. But you can, you can have to some degree, and it actually made I think it made me a better PHP developer, because of that experience. But um, I would like love to learn go, I've only seen it written. Like, I've tried to look at Kubernetes. Like, under the hood. It's just, it's go for days. And yeah, I couldn't I don't think I could ever contribute to that. At least within a year or so. I think I'd have to learn Go for a long time I can do anything thing like that, but I wholeheartedly agree that being able to you don't have to be an expert in these other languages, but just learning about them gives you a different viewpoint that will help you in your main language. So definitely, I wanted to ask you, I did have a question.

Fabio Rosado

Okay.

Gemma Black

Because there there is a, there is like a trend to like bash full stack developers and I don't know. I guess it's true. It's okay to bash, bash full stacks. I see you do design like, I saw your, your website, and you've got like a dark mode sort of style. When you create stuff. Do you do you think that there is, um, is possible to be a full stack developer? Or do you think we are just cheating?

Fabio Rosado

I don't know. I mean, I, I don't know. I think you can be a full stack developer. I mean, the only thing or the first and only thing I've done so far that I would consider full stack is that project I've done, thumbs up news project, which I'm using a Django back end and a Nextjs front end. So yeah, you can definitely be a full stack developer. In my case, I can do something with Adobe XD and I can do some design but I will never be a designer unless I focus 100% to be a designer. And this might be a bit silly to say but when I'm designing something in the back of my head is like I should be coding instead. So I enjoy designing when I'm tired because it's a different mindset. So I can actually have a rest or I can even put some series on Netflix or something and I just have it in the background. And I tried to design something, but my design skills are not that amazing and sometimes I look at the blank screen for so long. I don't know okay, I'm just gonna do something else because this is just not going. Yeah, I prefer dark mode. It's just my preference. But yeah, I think you could be a full stack developer. Definitely. I guess, in a full stack developer, unless you, you may be a senior, I'm not sure you have more experience than me. But you will always have one particular part that you enjoy doing more. So you might do more back end, and you're more comfortable back end and front end.

Gemma Black

That's true actually. I think I didn't have any intentions of being a full stack developer. I didn't know what they were. When I started out. I didn't really hear much about front end developers when I started out anyways, it was just a PHP developer, you're a Ruby developer or something like that. But actually, I find when you're like working on especially on either you're in a small team, or working on your own projects, you just end up just having to do all these other other things. So it's a bit weird. I don't really know if there's a real there's like a real definition of a full stack developer is someone that just has to do a range of things. Because the team is too small to get specialists.

Fabio Rosado

So what you're saying is a full stack developer is just a software engineer really just do whatever you have to do to to get it done.

Gemma Black

Get it working! Try to do a quality job,

but understand like enough to get it working. And then you know, when the team gets bigger you bring in a specialist and the serious folks that know it like in a dream so so I think that's what it is.

Fabio Rosado

So that will actually fit pretty well on a question that someone on the chat had: lumberjack was asking. So what do you think it's great to work at? You would say a startup or multinational company from your experience? What would you prefer?

Gemma Black

This is the worst question.

It's because I, I, you know, I work at a startup now. And if I say something else, they're gonna kill me on Monday morning. Now, I enjoy working In a startup, I didn't think I would because, you know, my idea of working at a startup is lots of pressure, lots of stress, late nights, early mornings, over weekends. That was my idea. And when I met the team, at Kamma, Kamma Data, of course, they said, if we need to get something out the door, and if we can, you know, we'd love you to, you know, work, work to get it done. But we believe that you have a life outside of work. And to this day, they've they've totally respected that they are very balanced people. So I can't really speak for other startups, and I don't really know what I would have experienced somewhere else, but I thoroughly enjoy it. And I've worked in like bigger companies where there's like a hiding place with for me as a developer, I can work in my own little space and no one really knows what I'm doing. And that's great because I can get along with whatever I have, but here it is literally no hiding place. If I screw up is Me and two or three other people, no one else. So it's good for ownership to to be able to create a product in you get to see it directly going out the door, and you're responsible for some of your teammates from like front to the end. But I have no preference necessarily. I just like where I am right now.

Fabio Rosado

Because this is what I've been reading about opinions of other developers is that a multi national company or even a big company, your work description is more rigid. So let's say you're hired as a front end developer on a big company, you're probably just going to be doing front end work. And that's it might have the opportunity, if you ask very nicely to your pm that... "Can I do something on the back end, please?" and you might get the chance. While some startup is like, okay, yeah, you are hired as a front end. But look, we need something done on the backend. So can you just hop into it because we need to do it and you have a smaller team. So you're going to have to do more roles and you Your job description is but in a way, you also have more freedom to go from one position to another

Gemma Black

That's a good point, and you do have a lot of freedom. I mean, I work really, really talented, really smart developers. And they're so humble. At the same time, literally any single one of us could be asked to deliver an aspect of the product. And you're talking about doing like, the UI, the API, the database, in a setting up of a server, setting up load balancers, AWS infrastructure, the whole thing in front and back with testing and, and that's, that's something that at other places, I will be very silent and focused on, you know, one aspect, but over the years, I find that the more you get to you don't have to work across the whole stack all the time, but the more you get a chance to work out different pieces. You know, as a developer, I know what I need to do to make my life easier in terms of the upside of things that help Or if I do front end, I know what I need that open API to make the front end, the front end or easier. I think it's good to be able to try different sides sides of things just to know who you are causing pain for. On the other side, and then a startup, everyone has to do themselves.

Fabio Rosado

But also... Sorry, go on.

Gemma Black

No, no, no, I just I would highly recommend working at startup. As long as it's not a place that's trying to kill you unless you are really young and you have that energy.

Fabio Rosado

I also think if you ever decide to work for a massive company, when you have an experience as developer in a startup, where you have done so many different roles, that just a plus when you try to apply to a different company, or even to a bigger company than what your current company is, let's say that you want to work at, I don't know, Google or something. And so yeah, I wants to be hired as a front end developer at Google. But I've done all of these things. Awesome, so maybe you can do something different.

Gemma Black

Yeah, actually, it can be a curse. I mean...

Fabio Rosado

Oh, yeah.

Gemma Black

Could be like "You know, absolutely nothing at all".

Nothing at all

Fabio Rosado

Kind of thing of Jack of all trades master of none. But there's also a second bit as well, isn't it? That is a better master of one. I think that's the whole the whole sentence of that saying. So, yeah. And I'm part of a group were of makers where they create products from nothing. And it's kind of like work in a start up, but you're just not getting paid for it. Or the idea is to eventually you will get paid for it. And I've seen some some projects and some products that people made up and I'm just like, outstanded just what a single person can do so much. And it's it's insane. Like if you go to indie hackers, and there's so many good things. Just started by one person and you are developing Preons CSS library.

Gemma Black

Yes,

Fabio Rosado

How is that going?

Gemma Black

know what I spent, instead of actually working, working on Preons itself. I spent the last month building things with Preons. And actually, that's been helpful just trying to figure out what I would be experiencing as a user. So I built a site for my sister. She sells like these really nice smelling hair oils. I haven't put in my hair today. That's probably why I haven't put the camera on. And I'm building more for my mom because she's a singer slash vocal coach, like a professional singer. And I think like, I just I didn't discover functional CSS like myself. I didn't come up with it. It's just Tachyon came onto my radar about two years ago, and I was I was working at a digital agency and you're creating websites very frequently and you get to point where you have this deja vu moment. We're like, Okay, I'm creating a card element. Again, I'm creating an avatar again, and I'm writing like BEM from scratch every time. Surely, there must be some sort of system that I can use to meet the designers needs, and have the flexibility they need, and also have some sort of standard, you know, some rules in place to put together a site and functional CSS seemed like the best thing for for that use case. But now I use it to design in a browser. So I pull up Preons, and I use a CI tool to generate my my stylesheet. And then I start this creating components or grabbing ones I've created before, and I'm able to do a lot quicker than before. So...

Fabio Rosado

and a lot of times, the one of the main bits of success for any project that you create is if it kind of scratches their itch, because if you if you don't use your own products, How the hell do you expect to know what you need? To include, because you might be working on a specific feature for months, and then no one uses it. Because in your head is amazing, but you don't use your product. So it's like, well, hey, this idea is good, but only cares about it.

Gemma Black

It can be the same way of opsdroid I can't remember who it was that was taking... that was creating a chat bot for... was it Discord? And I was like, I can't remember who it was... I think it was on your channels, a conversation on a previous video. But then I was like, You know what, I couldn't create anything from scratch. If I was to do a chatbot. I would just like straightaway go to opsdroid. I think I've gotten to a point where I don't want to create stuff from scratch. Now I just want to like, I just want to get to what I want to do. Find a library that gets me like 80% in there and then the rest. The rest I don't mind do it.

Fabio Rosado

Well, yeah, I understand that. And let's be honest, a lot of projects. They are all Relying on a lot of other libraries anyway. Unless you are building a library from scratch, you're always going to be using something that someone already created. Like you mentioned opsdroid. In opsdroid we have connectors that connect to different chat services. And most of the times, we've just decided to go and choose a specific library because anyway, we just have to maintain that we have a parser that chooses dialogflow, which is the NLU so natural language... whatever the U stands for. it's a natural language processing from Google, or Google purchase dialogflow, and they changed their API and we're like, oh, this probably gonna break the matcher on our end. And it doesn't because we are using this library so then we don't have to worry about it. Do you think that's contributing to open source? It's very important. If you are looking for a position?

Gemma Black

That's a, that is a good question. I don't necessarily Think open source is important, I think is nice. I think it's nice to do to be able to like contribute back to the community because for me, I found that I relied heavily I rely heavily on open source technology. Even now, I don't know any development team that tries to build anything truly from scratch, you know, you might do for fun just to scratch like your own itch, and just to learn how things work. But in any professional software, we use a lot of open source. So I think it's good to contribute back. I think when you work in companies where the source code is hidden, or the product isn't visible to the wider world, having something open source might be a benefit to demonstrate your capabilities as a developer. But if say you're a developer on GitHub, and you say you're the front end, front end developer, on Guithub anyone can go on GitHub and just look around and see okay, I can see what you've been contributing to, but some companies you don't know What it what it is that dashboard looks like, because you don't have access to their their product. So I think is helpful definitely but I know a lot of developers who are very successful, and they haven't they haven't shared anything on GitHub or anywhere else. And they are incredibly capable, capable people. So I want to say don't do it. I'll say definitely if you can do it, but don't feel. Don't feel pressured to maintain an open source library. If you don't have the time to do

Fabio Rosado

it just it's just a plus, if you have that experience, because then if you contribute to open source, or if you use GitHub, you probably already know git, you probably already know the basics of source control, probably know how to open a PR or how to create an issue and yeah most most companies use git as their source control anyway, it's just like a plus. If you do it like on a project, that's your own project probably not going to open an issue and then submit a PR it just pushed to master and that's it.

Actually, well, you probably experienced it because I haven't contributed much to other open source projects where you, you probably learned so much from working with like a variety of people. If you're working in a team, you're working with maybe three or four, but something something on GitHub, like our open source projects on GitHub, where you get to be part of like a big community, maybe double digit contributors learning from how they do things. I think it's very helpful. And actually I like I think I sneaked on opsdroid the commit history. And it's nice to see how things developed and looking at that. So it is beneficial to to learn how to work with others, especially if you do have that that in your own company. Maybe they make you work by yourself or you don't get a chance to work with others. I can see the benefit of Jumping on open source projects sooner rather than later. With internal projects like with a company, maybe that's some rules and principles that like that is set by a lead developer on open source projects, maybe they aren't. It's not as strict. How do you find it working on open source projects, maybe mean someone submitted a PR, and they've done things a bit differently do you like mind about, you know, like enforcing certain standards or do you just say, as long as the tests pass and it works, it's okay.

Well, being the maintainer for opsdroid, depending of the PR that I'm reviewing, there is a particular branch of prs that's been raised that integrate matrix to opsdroid. I don't really grasp matrix that much. I've just seen what the contributors were doing and the other maintainers were reviewing and suggesting, so I'm seeing how they do it, but I don't really understand it fully. I feel that I should give my two cents on it, we have quite good rules that we expect when you contribute to opsdroid. So we expect that you are going to have to write tests that will cover 100% of the code that you're wrote. We expect you to add documentation if making some changes that require documentation. But the code itself, not really, unless you do something that would be done a little bit different. We could suggest or maybe you could do it this way. But a lot of times, we are happy to just accept your version. And you know, I've been contributing for almost four years to opsdroid and just recently, I found a big issue, which a chang that it I've done a few months ago, and I was like, Oh, yeah, this is broken let's see who broke it. And I was like, Oh, crap, it was me. And then looking at that code, I was like, Oh, actually, I should have done differently and code that I wrote should have been written differently. It's hard to specify a way to write code. Because every person will address a problem different. We use black to lint the code, so then it's automatic linting. So we don't have to really worry about linting and etc. and Python, very open aged indentation, or you have to structure a code in a certain way, then Black does it automatically for you. So even if you mess linting completely, you just run the command and it just does it automatically for you. And it's just like magic and is the best thing ever that I've ever used. It was always when I started there was always a problem with linting and say, Oh, crap, yeah. Okay, so I submitted the PR. Let CI run and then the test will fail and I knew they were going to fail because of linting. So then I went back and say, okay, yep, this is why it's failing. One of the main things as well is docstrings. In Python docstrings are comments that you add to your functions or methods. That's explain what does that thing do. So then in your editor, when you invoke a function or a method, that description, you know, when you write something and they say the parameters that they expect to and what does the thing do whatever you write on the docstring usually the editor will grab, that is a few rules to write the docstrings. So yeah, there's always this little linting things, but it's not a particular set in stone out to do code itself, as long as the code is fine and doesn't break anything. So the test pass, we are happy to just accept it. Usually, I like to have another maintainer to check the code as well. Then maybe I approve the code. And then someone says, Yeah, I'm happy with that as well. And then we just merge it, but that's it. Unless it's something quite small. Let's say a fix a bug or something. And we know that it's passing so that we just merge them and that's it.

Gemma Black

nice actually, that's one of the things that I find with Stack Overflow, they're quite mean I remember. I always imagine if Stack OverFlow was a GitHub project, maybe no prs would get through. I love Stack Overflow so much, I answer the question on Stack Overflow and got told for for answering a question. That was apparently a bad question. But it's nice that you have like a very inclusive way of contributing. And I think the more open source projects that show that, they are anxious, and that increases the level of anxiety for for people coming along to wanting to help

Fabio Rosado

And again, because observable was the first project I've contributed, and I would say it's a very newbie friendly, and Jacob had a lot of patience for for all the mistakes I've done in the past. And I've learned a lot with him because of all the things, even messing up my commits and breaking everything and submitting a million prs that I should have done in one. So I've grew a lot by contributing to it and like you said, in contributing to open source helps in the way that you You see how other people write code, and then you probably didn't even realise that you could do something like that. I know that's contributed to one library Golem in the past, and I've seen so many different things that's that library was using that I didn't realise you could do. In Python, you can write a try, and then you do something. And then if a exception is raised, you just do pass. So you have a lot of try something then if exception is raised. You just pass it and then the code just runs, and there is no exception raised because you're passing is seen on that code base that you can do contextlib.suppress and then the exception so that you don't have to write the pass. And I went to opsdroid like, Hey, I just found out that you could do this is amazing. Let's do it. Jacob was like, yeah, let's refactor the code that sounds cool. And yes, from four lines of code at least you turn it to a single line. So you do with contextlib.supress then the thing(exception) and it just kind of silently suppress that exception. Yeah, it's like magic.

Gemma Black

I love when that happens. Actually, that's fantastic. That's a great way to learn that's how I actually learn Vue. Before I learned Vue, I started with react and doing code reviews. I saw someone like, they're very, they're very brave to give their code reviews to me, because I just be mean, I'm so sorry. The code review to me, and I will look at what they were doing. So I was like, Oh, that's how it works. So when it came to me working with a Vue project I had, I can of course, I didn't know exactly how to set it up, like you know from scratch. But there were a lot of concepts I had learned enough to be able to, to get going quicker than if I were to start from zero knowledge. So definitely, I agree with you like open source code, code reviews these are great ways to learn without actually having to write code. Just looking at other people's work

Fabio Rosado

How many languages do do code so you know, JavaScript, PHP, Vue.

Gemma Black

On the front end, I can only say officially Vue. And I enjoy using Nuxt. But I. I started with react because I saw, I saw this thing was really popular I say if Facebook has, like anything to do with it is is going to be quite popular. And it changed how I you know, I went from jQuery to say to Angular and say no, that was I didn't, I didn't like Angular. So sorry. Back to Back to jQuery in and react came out. I was like, of course this this makes life so much easier. So I thought on the front end, I think I can only say officially view now because that's I think what I'm most confident, competent and comfortable with. On a back end. I'm confident with PHP, nodeJS all the other ones I think I can get by very slowly. But I wouldn't want to be leading any projects with those other languages. Unless it's like a simple product, then I'll be fine. That's okay. Even Python, Python scared me. I had an error. I inherited some code. And it was, it was like a tab issue. I was like, why is it? Why is it breaking? And I didn't understand that Phython was like, fussy about, you know, indentation. And so yeah, that that's where I stopped to fight and I fixed the bug. And I quickly, like shut down my project.

Fabio Rosado

trace back that you get from an error in Python can be a bit scary at first. You know how to read the trace back, it's fine. But the first time you're like, Oh, crap, everything is red. Everything's breaking. What did I do.

Gemma Black

I have so much respect for Python developers, because there's so much There's so many like machine learning libraries out there. And that's that's probably one of the reasons why we have a Python Python service in our stacks just because you know, it's so good with that. I literally don't write any Python from scratch. I, I just edit what I see is there. And I rely heavily on my Google when I when I do that. So a lot of respect to you for that.

Fabio Rosado

Just sort of curiosity, do you think that Python it's a little bit easier for you to write because you don't have to worry so much about semicolons and brackets? Because it's kinda pseudocode, but not really.

Gemma Black

I'm not sure. I don't know if it's, if it's easier. I mean, I think in some ways is similar to JavaScript or NodeJS where it is not going to complain too much. In comparison to working to say C sharp or Java, I would rather work with a dynamic language personally speaking. And then like, I don't know if Python has the same thing, but in PHP, there's a library called PHPStan. And you can use doc block comments to like, almost like to annotate what your method inputs and your outputs are. And so you can run static analysis on your PHP without having to compile down into something you can run. So you can kind of like cheat, you kind of get the benefit of a compiled language without having to wait for it to compile. So Python comes into that bracket. I wouldn't say it is easier. I think you just have to learn is I haven't learned it properly.

Fabio Rosado

Fair enough. So I know that you told me that you also worked as a freelance managing WordPress websites. Was that before your internship or after your internship?

Gemma Black

Yeah. Ahhh...can't even remember. I think that was I was building websites anyways, like just for fun, but after the internship, I worked for a little bit. And then after joining a few companies, I left a company called WTG, to work officially as like a freelancer to go in for short term contracts. That literally was so scary because I went in, you're coming in the first day and it basically you're like, Okay, this is what we want to build. And you have to speak directly with the clients and is that there's aspects of code that no one talks about, we have to talk to people. And that that was a great experience for me, because it actually opened me up to, to what the real world needs of the client was. Whereas I guess at a company, there's always a middle layer of of people you go through. So I worked I think it's called homemade. I did some freelance work, on another digital agency before they took me on as a permanent member of staff. But over the years people have asked me to do their websites and I will charge for that sometimes not all the time. I feel bad for everyone because yeah, I felt a bit mean to do with everyone, I will create web WordPress websites and maintain them. I think there's a few that I maintain now. And I can't tell you where they are. They're still running... I hope they're still running. I will check after this, but no one has come to me saying anything is broken. That's fine.

Fabio Rosado

They should be working fine then and you know if it's WordPress, as long as people keep updating their website, which WordPress makes it quite easy to update dependencies and etc. It should be fine

Gemma Black

It should be fine. Dependencies that break on WordPress the worst, because it's not like it's hard to like do a rollback on on WordPress. If you get that that white screen of death, whatever they call it, you know, you have to go back into the... To go back into the file manager and just update it, I think I haven't. Like some of these old projects are not using the standards I have like now, I would use version control like a hybrid of like Laravel modules with WordPress. So WordPress becomes a dependency. So I have a lot more control over what is being installed. And I would switch off the ability to like update plugins, so I can't make this add stuff that would have to like check and I would test or something like that. But these old projects on WordPress, I've seen so many WordPress websites just break, because someone's updated the plugin or the version of PHP can't handle like a nice new pgly plugin. And the PHP version on the server is old. Like no... no, like don't don't stress me out, please.

Fabio Rosado

Was there anything that you kinda hated in particular? being front end developer something that you don't really particularly enjoy doing?

Gemma Black

IE six IE seven...

Fabio Rosado

okay, fair enough

Gemma Black

IE, no, cross browser stuff. I say that now why I did enjoy the challenge but it's not nice when you build something and you think it's working and then someone goes Oh, nope not my not on my browser and then you workout, oh you using that one. Okay...

Fabio Rosado

That's that's always the hardest thing as well, isn't it? It's... I came to a particular case with the thumbs up news project. That's the menu on mobile was broken on safari and only Safari. And I was like, man, how I'm going to change the safari bit only. Luckily, after spending a few hours looking at StackOverflow and blogs and everything I could get my hands on. And I've managed to find a way to do it. And it uses some obscure thing that uses some CSS magic tricks by checking if something doesn't work on a particular browser. So I think they use, I don't remember exactly. I think they use a unit in CSS that Safari doesn't accept, and they use the not on that rule. So then kinda, they're triggering all the browsers, but not Safari, because Safari doesn't recognise this unit. It's so hacky, but it works. And I'm like, That's brilliant.

Gemma Black

I see, I should spin that question to you as well. Actually, what is like the was the most challenging thing you find on the front end?

Fabio Rosado

for me has to be designing. I'm going to be honest, because for me to get to a stage where I'm happy with the design. I'm always thinking I hate my life. It's just yeah, designing for me, it's the biggest problem. And I know that I wants to improve it. And I even bought the refactoring UI book, and I haven't read it yet. And I've owned the book for a year and a bit now, and I haven't looked at it yet, which is very silly of me. But yeah,

Gemma Black

you have to let me know how it goes. I think there is like some some strange truth that as developers, we find design hard. I am genuinely not a designer, I, I've managed to somehow create things by fluke and then they somehow look decent. In my opinion, and my opinion might be completely wrong. So actually, what they look like. I found I think last year was a big breakthrough in terms of like design for me because I had the opportunity to work with designers and to create something and then for them to sit with me and go Oh, the line heights wrong using the wrong font size and you'd be like, How do you know? And of course they designed it like this is not the right orange that i wanted i using the right hex code. I'm like, yeah, and I'm using the wrong colour profile, something like that. And it was just incredible to sit with them. But even then, I still couldn't have designed anything from scratch. And I got this book, I can't remember what it's called. But basically, it's not just like about web design. It's just about little principles of how to arrange things on a page on like a piece of paper to make them look balanced and interesting. And I followed that. And I was able to, I was able to create I think the first version of my mom's new website, I was like, oh, okay, I think I kind of get it and then it's a really good video about colours because I I love colours. I don't know how to put them together. I couldn't tell you. I just about manage to achieve with my clothes, like how to match my clothes. That's as far as I go. And it was great. This guy basically explained how to use colours in the UI, his process. And I was like, it's a process. There are rules. I love rules, I'll follow those rules implicitly. And at the end of it, I created prions using his colour palette rules. And then my sister's website, I created that and so far, it's working. But I realised if I, if I follow like some sort of some sort of process or workflow, something at the end comes out looking decent enough that I can, I'm not ashamed of it. But if I just sit there like I'm Picasso and try to come up with something, it's not gonna happen. It will be a hot mess. And I think I don't know if designers have a secret or what it is that they do, but I can't do this. Stuff like that,

Fabio Rosado

I think is what you said a lot of times is just the set of rules that all designers kind of follow. Sometimes they break some rules, but they still keep the same kind of like golden Rule, let's say, and they all have the same way to do things. I see quite often, I used dribbble often to get inspiration for a design. And I see quite often a lot of amazing designs that that when you go into accessibility, the colors... they look beautiful, but they don't work, because people won't be able to see it. And you need to make your websites and your apps and everything visible for everybody. And yeah, you look might look striking, but if someone can't use your site, then you're already losing points. Anyway. So this is a question from copperbeardy. Is there any tech that you're looking to play around which anything is specific?

Gemma Black

Okay, there's, there's like an endless list like a growing list of tech that you know, I've got Arduino right here, I promise. I got it as a present. I promised I would feel myself trying to get that thing working because it's meant to be for kids. And I'm, I'm not a kid. So I think I've been I'm gonna get like laugh that when I can't actually do it properly. So I need to figure out what what I'm going to do this Arduino, I would love to do more IoT stuff because I believe as I as developers is like code can be found in so many, so many household devices. I think that's like an exciting future for for developers. I like building websites. I still think there is like, a place for us to create websites and products, but I think the next big things are like Amazon Echo and all that stuff. IoT, I mean, not now But very soon. And of course, in when when I work, I work at my company and a lot of the stuff we do has nothing to do with like, the actual website people see on the front is all the work like gathering data and and you know, like trying to cover unstructured data into structured data, trying to create like Intelligence determinations out of it. That's where it is. But not every company is like that. Some people just want a website to sell a T shirt. So to be able to do stuff with IoT sounds like a great way of looking forward into the future and being relevant in my career but...

Fabio Rosado

we charge vintage did you buy? Did you buy just the Arduino itself? Or was it a pack that came with the manual? And... oh, yeah...

Gemma Black

Here that was a leaving present...

Fabio Rosado

I have the same one. Yeah. The one with the manual where you have 20 projects or, I don't know, a number of projects and you can follow those little projects

Gemma Black

is true. I've scanned the manual. That is as far as I'm concerned, you've gone further than me clearly.

Fabio Rosado

But I wouldn't say that Arduino is just for kids because you know if you want to learn about components and stuff like that are doing is a brilliant piece that you can play around. And in a way it's made as a toy, let's say. So they can take a beating as well. So we won't really ruin it much. You can use different languages, but the main one that they use on that manual is C, which is another fun thing that you can learn C by using Arduino, and then if you want to do more cool things, and more IoT, Raspberry Pi's is a nice one as well to have Yeah.

Gemma Black

I will take your word for that. Then someone's lied to me they said it was for kids.

I was like really. So I like I found one night for this, this lady's son, and I was like it's meant to be for kids so he would enjoy this.

She said really?

Fabio Rosado

I have an idea for for my Arduino that I want to play around which is to control my plants soil. So then I know when I Have to water them properly.

Gemma Black

See, that's a great idea.

Fabio Rosado

So if you have plants, you could do something like that as well.

Gemma Black

I think I wouldn't need that my plants die. I had one in office.

I will be the first person to buy that.

I see. Thank you for your question on a serious note in terms of learning something, probably I've always wanted to progress my knowledge of domain driven design. I went to a DDD conference, I think last year a year before and whilst I feel that sometimes I think the like the way you structure code, I think domain driven design might be necessary for a lot of projects. If you have like a really important part of your your domain of, you know, your product that you want to model and you want to do it in a way that has longevity domain driven design seems to fit the bill. Really Well, and I've had the chance of implementing it in one project, but the process of talking to clients and to using the same language that they are saying in the code base, I've seen how beneficial that is. Yeah, I'm a big fan of domain driven design.

Fabio Rosado

I don't know anything about domain driven design, to be honest. I think that's kind of like the first time I hear about it. So what is that about? Like a short version of it.

Gemma Black

I think the community would kill me for whatever explanation I have.

The, the guy who I know he wrote a book about I think his name is Eric Evans. And if there's anything that I took away from, from the way I've read, and from the conference, he talks about this thing called the ubiquitous language, because what I noticed myself and this was a few years back, say for instance, in a company, they are using the word broadcasts to represent a video like a real time video, I would go in my code and call this this module, the video module because to me, that is exactly what it is. But then when they're talking to me, they're not talking about the video, they're talking about broadcasting. And so what he's saying is what you what ends up happening is a developer is now translating what they are saying the business is saying, into the code, and then using a different, completely different language that he or she has come up with. But instead, if you use the business's language, even if a new developer comes in and doesn't really understand the terminology, when they look at the code, they can just go to the business and go, we have a broadcast module, how does this How does broadcasts work, and then be like, Oh, that's the thing when we have live and it has a real time chat and this and the other and you're like, Okay, and the idea of breaking down that barrier between the developer and a business. I really like that is I really hard to do, because you may have one of the most difficult things in programming is trying to like figure out the name of things and maintaining things afterwards. So I've seen how that, that cuts down the issue of like understanding what the piece of code does, because you're relying on a business to tell you what it does.

Fabio Rosado

And like you said, that you had that experience with your freelance is also try to figure out what the client wants. And you try to explain to yourself what does that mean, and how you're going to create that. And then sometimes you're going to have to say, yeah, this thing that you want to do, or this idea that you have, it's just not gonna work.

Gemma Black

Yeah

Fabio Rosado

so so I can see definitely a potential. I'm not familiar with domain driven development, but it looks pretty interesting and it makes sense. So I'm definitely going to look at that.

Gemma Black

Definitely, I can only encourage it. I have to like there are books and there are conferences dedicated to this thing. So I I'm not close to saying I have a full understanding. I would never say that. And the experts would like, like banned me from ever talking about it again, I'm sure on Twitter they're nice people but I'm sure they will tell me off and say you said something that was completely incorrect.

Fabio Rosado

I know that I said that we will be chatting for like one hour or so. But it's been so so interesting to talk not just about your journey, but also just share with you ideas and just talk about stuff. I just really enjoyed it. I hope you don't mind that we've been going a little bit longer than that one hour slot.

Gemma Black

Not at all literally, I just looked at the time now and I didn't I didn't think it was... I didnt think it was 8 o'clock.

Fabio Rosado

That's good then. Just out of curiosity, because you have experience in different companies and changing jobs. Can you think about one thing that is like the hardest thing to change? When you change companies? What is the one thing? That's hard?

That's a good question. Like the challenging thing about leaving, or, you know what I've, I've been so like privileged, every company I've been at, I love the people I work with, like genuinely, every, every single time I'm like, wherever I'm going to go, it's not going to be as good as my experience with these guys. And I've worked in an old like all female development team before as well. So I, when I left them, I was like, I'm never going to get a chance to work in environments, again, is leaving the people. I'm so thankful I haven't had to work in a team of like horrible people. And so I always think when I'm leaving the company, like I'm not going to work, I'm not going to have this chance again. And the last one I was with before as a guide. Rob Waller, he's on Twitter. And he mentored our team. He was a CTO, he mentored our team so well and he really encouraged me to, to pursue opportunities that allowed me to, to put my skills to more challenging problems. Literally, if it wasn't necessarily for for his motivation, you know, I would, I would probably still be with those guys before because there was no genuine reason for me to change. But when he said that, I was like, Okay, and then now I'm working with another group of people that I can't believe how, how is like lightning can strike so many times, but it has. And so I'm very thankful to good people, the scare stories I see on Twitter where people are saying you have to work with a mean developer, or that famous Rockstar developer, but he's just horrible to you if you screw up. I not experienced that yet.

I hope you'd never experienced because yeah, can be hard to manage. And I can relate to that. Every day that I work, I have a different team. I work on the biggest base of my airline. So we have a lot, a lot of crew members. And every day, it's a different day. So it will be almost impossible to work with the same people twice. And I understand that completely. Sometimes you have such an amazing team to work for. And as I hope I could work with you every single day, and then you finish your day and you feel like you are floating. And then the next day, you have a different team. It's like it this team is good, but it's not as good as yesterday. It's also very interesting to work with different people every single day because it makes you grow a lot. And when when you start seeing that maybe a particular conflict is going to arise, or you can start you start reading The team a little bit faster I would say, because you start seeing Okay, yeah, this person said that and that person reacted this way so they don't really enjoyed that. So let's try to move the subject to something else. That management, it's it's interesting, but leaving a good team I can definitely relate to that

Gemma Black

That's awesome. I've never experienced that like working with a different team every day. So I yeah, that must be really, really interesting. But it must be like hard if you do have that nice, that really nice team when you click to leave that like the next day.

Fabio Rosado

The hardest thing is, especially when we are a little bit more tired. We tend to repeat the questions over and over again because you know, that's tomorrow you're gonna work with a different person. So unless you click with that person, and you just start talking about different subjects, unfortunately, you will end up recurring To the same questions like, where do you live? What did you do yesterday? And what are you gonna do tomorrow? I try to break that, but sometimes I don't even realise because I'm tired and I just kind of go on autopilot. You know? Okay, yeah, no, I'm just doing that again. I need to stop.

Gemma Black

So it's like what's your name and then all of a sudden it goes blank.

oh yeah, I have to say thank you so much for including me on your show. And I'm genuinely honoured. And I, I was I was speaking to my mother, my sister saying I've been invited on to the show, and I don't think I have anything interesting to share. So hope it goes well.

Fabio Rosado

I would say otherwise. Like I tend to the the story that you told me just amazing and I just enjoy talking with people and I just enjoy learning. The progress of the journey of developers because I'm I find that I'm on this stage where I would like to make a career change, and seeing how other developers got into a developer position to take. it's just amazing for me, just to finish off, if you could give a piece of advice to your younger self, you know, before you even got that internship position, so when you were studying biomedicine, what would it be with all the knowledge you have now?

Gemma Black

one... two things... The first one is to be humble and knowing that there will always be people smarter than you. And don't use that though, like take it as a negative use that to learn. But you know, don't compare. And the second thing is just because you've been a developer for so long does mean, you don't have the right to tell anyone how they should become a developer or how they should do their code. And yes, of course, you can guide people. But dogmatism doesn't help be very pragmatic about how you approach problems, and admit that you don't you don't understand things instead of like trying to gloss over them. So I don't know if that's a good answer. But

Fabio Rosado

I think that's a very good answer. And I know that I've mentioned that before. But I also fell in that trap of comparing myself to other developers, and I'm thinking that Oh, yeah, I'm rubbish, because I don't know how to do this and that. But other developers, they probably did. Well, they definitely did a different path, than you and they encountered different problems. And that's also why some folks are more skilled than you because they just encountered different problems and just use that as fuel for you to progress. But don't say that. Yeah, don't kind of put you down.

Gemma Black

Don't let yourself down. Don't put anyone else down this like just carry on.

Fabio Rosado

So yeah, Gemma, thank you so much for chatting with me and I know that we've been going for longer than than I said. So I really appreciate and it's it's been lovely. I will look forward to have a chat with you in the future.

Gemma Black

Thank you so much. It's a pleasure to speak with you Fabio.