Hello everyone, I am here with a candidate running to represent Arizona's first congressional district Her name is Eva Putzova and she's here to tell us about her campaign. Eva. Thank you so much for coming on the program Thank you for having me. I am really excited to see that you're running for Congress because I looked a little bit at your record When you served in city council for the Flagstaff and before we even get started I have to go over some of the things that you accomplished because this this is really remarkable So first of all, you were instrumental in increasing Flagstaff's minimum wage to 1550 You initiated the city's first climate action plan. You led the charge to pass an indigenous people's day You passed the resolution encouraging Congress to act when it comes to dreamers and immigration reform So you were incredibly effective and now you want to take what you've learned in Flagstaff to Congress So tell us what made you decide to make the jump to national politics Well, we face urgent challenges, healthcare, climate change, immigration, inequality, racism And we can no longer accept timid, hesitant leadership that prioritizes corporate interests We must put people first and this is really why I'm running. I'm not afraid I think that we need a very different Congress. We need people in Congress who cannot be bought by corporate interests and we need those who are ready to fight and work for the people of this country And it's really great to see everyone just kind of standing up and running And what I'm seeing is just ordinary people who are choosing to run for Congress You know truck drivers people who just are working every day nine to fives and that's really great And I love your story and I kind of wanted you to talk about this because you became a citizen in 2007 You're from Slovakia. Tell us a little bit about yourself and you know What it's like to fight from the perspective Of being you know an immigrant who moved here and seeing all the vitriol that are being You know speed that's being spewed by the president and republicans Disproportionately towards latin-american immigrants. How does that like how do you process that as an immigrant yourself? Yeah, so uh, you know as you mentioned, I became a u.s citizen in 2007 and the journey to become a u.s citizen took about seven years and So I understand What do you have to go through when the case is straightforward and there are no complications How much paperwork? How much money? One needs to Stay in the process until they become naturalized What I also realized during this process is that we all have privileges, but they're relative So when I was waiting in line to be seen by immigration officer There were many other people in phoenix standing in line with me Many of them people of color many of them with Maybe their english wasn't as perfect and I saw the different treatment that Was applied on different people and certainly Color of the skin Is a factor You know, I'm a I'm a white woman. So as a white person, I have certain privilege I'm a woman. So maybe my privilege in that respect is a little bit less But then when I open my mouth, everybody can tell that I'm an immigrant. I will never lose my accent. So please don't ask me And and and so then my privilege Is diminished And there are many many people who are in much worse Relative position who face discrimination because who Who they are where they were born? and I think it's wrong, you know, I grew up in a In slovakia former eastern bloc country We knocked down the walls and gathered of the borders because You know as people we felt we belong to europe we belong with everybody else And I think that's the direction I would like to see this country and to go not the opposite direction You know creating barriers Between people Everything you say, you know seeing that firsthand it really makes sense as to why Your entire platform is basically centered around like human compassion You're a huge advocate for indigenous people's rights and you're fighting for single payer medicare for all So there's a lot of things that I believe you are going to advocate for and I trust that you will do such a great job Because you have this experience But this is one thing that I always ask the people who are running for congress There's so many things that need fixing currently in our country And I don't know where I would begin personally if I were you know elected to congress So just within that first year, let's say you're elected You will obviously join the squad with aoc and ilhan omar because you're definitely one of those types of progressives What do you think you personally would try to fight for the most just within that first year because you can't pick everything and it's tough But what's most important to you? So I do believe that we can do multiple things at the same time But I do know that everything takes energy and resources I do think that Climate change is something that we cannot postpone I think the reason why we are where we are with climate change is because We had a bipartisan Inaction for decades and that has to stop. I also think that Because I'm an immigrant. I'm very invested in Complete immigration overhaul and that's also something that I feel cannot wait People are hurting and then of course You know aca did not really address the cost that We pay for healthcare and that can be addressed if we move forward with a single payer type of system like Medicare for all and There's no reason why these are big pieces of legislation all three of them But we absolutely need invest in retooling our economy to be a green economy So we can actually enjoy the healthcare and that we can Take care of all people in a compassionate way including Immigrants and that's fantastic. I like that, you know, you stressed we can do multiple things at once But yeah, these are absolutely things that I agree with and other issues That you care about based on the pledges that you've signed. So you've signed the no fossil fuels pledge You've signed the pledge to um codify the 28th amendment which basically gets money out of politics And whenever when you look at a website, it's apparent that she's not like mincing words She's not saying we need to get the dark money out of politics. There's no caveat She wants to get money out of politics and that really sets her apart from other people Namely her opponent because I want to talk about him. His name is tom. Oh, halloween He nationally speaking isn't very well known, but he doesn't really stand for much Like I checked out his website just before jumping on to talk with um eva here And the policies are incredibly vague. There's no plan to reform healthcare. Just this vague, you know assertion that I'm going to defend medicare and social security We need to invest in education and I don't know what any of this means But when you look at his donors, it becomes a little bit more clear. He takes super PAC money He took 4,000 from AT&T. He's getting money from steny heuer and nancy pelosi So I want to ask you this eva because you're not taking corporate PAC money. You are clearly principled But one thing that's always interesting to me about these races is it's like david versus goliath You are putting yourself at a disadvantage, but it's important because you're demonstrating to people in az1 that um You're principled and you're going to stand up for them So talk a little bit about the struggles of running a non corrupted if you will campaign Um, and how it's a little bit more difficult to do that and what you think You need to do to win because you're not taking that corporate money Well, uh, you you were right, you know, we are not taking Any money from corporate interests or from lobbies? completely people powered pain If the viewers feel inspired, I hope they will visit eva for congress.com and Help us with our campaign. Um, that puts people first And of course, you know, it is a different way to organize your campaign and the operation We depend on people who Volunteer with our campaign We have to organize in a way and be very smart about Where and how we spend money Ultimately, I do believe that Organized people outperform Organize money. You cannot buy enthusiasm you cannot buy the kind of support that you get from volunteers who are Calling voters who are knocking on the doors that cannot be bought and uh, um, I feel that we need to do these kind of campaigns because until we can Legislate or change the constitution through an amendment. I can be until we can legislate Getting money out of politics. We have to have a whole bunch of representatives in congress who Understand how important it is and they Uh, run their campaigns with a high level of integrity and they don't allow themselves to be bought by corporate interests It makes such a big difference Like you can see in the way that they govern like when you just compare like alexandra Ocasio-Critiz and ilhan omar to other democrats It's clear that there's nothing holding them back like if they say they support a policy position It's not necessarily because there's these lobbyists or you know, their donors in their ear saying this is what we want you to support It's just based on them believing what they need to do to help people And that's why I think that these types of campaigns are getting a lot more popular we're seeing more and more people like you run for congress who's not taking corporate money and You know, it's evident that other democrats who are funded by large multinational corporations They're getting nervous and they don't like this because this makes them look really bad You know, if you have someone who's challenging you Um, and they don't take corporate money Then they're going to have to find a way to convince people that they actually are with them and not with their donors And that's tough to do in this political climate when most people see that money has too big of an influence You know, um in society and in politics So can you talk a little bit about your opponent tom? Oh, halloween because what I like to do with people who aren't challenging like the big names Um is have you make the case as to why you're better because I think that it's evident when you just look at your website And compare yours to his that you actually stand for something But you know for someone who doesn't have a really big name opponent It is a little bit more difficult to get your name out there because everybody wants to see steny hoyer and ancy polosi defeated But we do have a lot of other democrats who are just basically keeping the seat warm who aren't doing anything that needs to go So talk about tom. Oh halloween because he seems like he's someone who I mean Isn't doing much if anything at all. Why does he need to be challenged in your opinion? Right, uh, that that's a big question for uh, the voters and I know, you know, who has time to follow any particular Representative or you know elected off official in another office closely to keep track of their votes, right? And so, you know, sometimes we learn more about people when they have an opponent in the primary because they're, um They're voting records, uh, is up for scrutiny. So, you know, in addition to the fact that, um I don't take money from corporate interests and my opponent takes money from health insurance industry and arms industry and private prison industry and essentially every single industry including sugar lobby Um, in addition to that, uh, I would not cast certain votes that he has Cast for example, I would not vote to deregulate banks and We can the dot frank act I wouldn't uh criminalize immigrants by voting for uh, kate's law uh, I wouldn't We can just recently the raise the wage act by introducing amendment that allows future Congress to delay Wage increases or pause the wage increases I think there are many other things that we can Look at his voting record and I'm happy to talk about that But it's not it's also not what he does what he what but what he doesn't do and that is to me at the You know core of My primary challenge I'm running because I really think that we can no longer uh be Uh inactive when it comes to climate change. I really think that uh, we have to pursue large-scale Investments in retooling the economy and do so in an equitable way Uh, very much in line how the Green New Deal proposes that we do it um, you know, I don't think that uh, just giving um Or including hearing aids in Medicare is sufficient to reform our healthcare system We really don't have a healthcare system. I don't know, uh, how about uh, you know your viewers, but I get sick on memorial day weekend It was on monday that in a city of 72 000 people There was not a single facility where you can go And get care for your health issue There was an emergency room Available that was it. There wasn't a single urgent care Office open right a lot of times people talk about all we want to keep our primary doctors blah blah blah, right? What most people don't have primary doctors um You know when I did go to urgent care my call pay was 75 dollars 75 dollars to be seen, you know for something that Maybe I should just stay at home for but I don't know. I'm not a you know professional and it's my help um And so these are the things that um our current representative is not addressing Is not addressing the fact that we don't have actually most people do not have access to uh quality healthcare. We don't have specialists that are available um near Where people live and the cost of healthcare is um So high that some people actually choose to take uber to hospital when they should be calling an ambulance because they're um, you know They need actually that kind of care and they're risking Um, they're held by going to the hospital by uber so That's what what it is. It's I think we need a real leadership in congress And I'm so glad that you brought up the uber example because that is one of the many reasons why Or that I kind of used to demonstrate how dysfunctional our healthcare system is and I always talk about how like How many people do you know that had to do a go fund me to pay for medical bills? Even if they had insurance, you know, it's just it's crazy to me and what you Said about people not having primary care doctors Is so on point because like I always make the point when people say well, you know Oh, well, we don't want to get rid of private insurance because people want to keep their insurance And I always say no people actually don't care about their private insurance. They care about their doctors But I mean a lot of people don't have primary care doctors I don't think I've had a primary care doctor since I've been a kid. So these are issues that aren't being talked about and it really takes someone who Has to deal with it who doesn't have the money and the privilege that someone in washington has To know what's actually going on like tom ohalvin He has healthcare that i'm sure is really solid So he doesn't deal with all these issues that normal people have to deal with So it's just it's nice to see so many people who are not robots who are regular people running for congress It's really refreshing. So I don't think that you have to do much more to convince my viewers I think that they're fully on board if you're in az one Tell people on the date of the primaries. It's in august 2020, correct Yes, it's on august four and uh, you know, we have uh about one year to go um, but For people who don't know, uh, arizona's first congressional district is the 11th largest district In a country geographically it's actually three times as big as the country where I was born and uh, so this is You know, very rural district The largest city is flagstaff where I am and that's about, you know, 72 000 people Um, and so there's a lot of ground to cover a lot of doors to knock on and all the calls to make and so Uh, again, if people go to eva for congress.com Uh, regardless where they are in a country, they can help us Of course if they have uh extra five dollars, they can help us financially but You know, there's a lot of work and we have been already At this campaign for the last six months But I want to go back to just point out something about healthcare, you know, we oftentimes talk about, you know, the cost of health care and um, you know, how for the individual How it is important that we have medicare for all But I think from small business perspective, we should realize that today small businesses are probably not competitive when it comes to Their talents their labor with large corporations who that can afford to provide health insurance To their employees and if we had medicare for all or, you know, single payer type of system And their employees would be covered by this system and some of these proposals that are on a table actually exclude the first two million dollars of um payroll from uh medicare taxes This would hugely benefit small businesses and so It's not just the individual, you know individuals that should really be interested in in a um fighting for this What I think is a human right? um, but also from a business perspective, uh, people will not have to make decisions whether they can See jobs with small businesses And that's such a really important way to sell medicare for all because you know, we've heard this mentioned before But I don't think people say that enough. It really is a great selling point for small businesses So the website is eva for congress.com and I'm going to do my usual spiel for eva that I do for every candidate This is not just about cd1 in arizona. This is a national movement Whatever we'll be doing is not just fighting for her constituents, but you as well And my favorite example because I have a lot of student loan debt is how ilhan omar She's not my representative, but she just sponsored legislation that would cancel all student loan debt That affects me personally and she's across the country So this is a national movement and if you can't donate a lot Try to donate your time if you can't donate your time maybe a dollar or two dollars It really does go a long way. Um, and it's important that we elect people like eva And this is not going to be the last that you hear from her. Um, because she's running a great campaign She's blowing up. So eva. Thank you so much for coming on the program. Is there anything that you wanted to say before we go Well, thank you for having me and I'm so excited that you know, we have so many great candidates around the country running these campaigns and not being afraid to run with high level of integrity without the corporate money and By being powered by people and so it's exciting to be part of Uh, because what we're doing really they're not just trying to change The policy directions of this country. We are really trying to change the rules of politics That's such an important point to make and i'm glad that you brought up all the people running because I I said this last year in uh, or the year before um You know in 2016 there was like a number of progressives running that maybe I could count on one hand two hands In 2018 it got a lot more difficult to keep track of every run that was running who is progressive You know grassroots and now you know for the 2020 cycle There are so many candidates that I I I don't even know half of them So it's just it's so exciting We really see this movement materializing and even if it's easy to be cynical When you look at the bigger picture and see what's happening and all the people like you who are running Um and rising up it really it gives me hope So thank you for running and giving me hope and other people hope and we will be watching closely because um I'm looking forward to your election. I think you can beat tom because um, I don't know what there is to like there I know I know Awesome. We'll take care again. It's ebb for congress.com. Please pitch in and help her get elected


It's not working and the biggest problem is that it's very difficult for local villages, communities to feel that they can help. The best example is what happened with the Kenyan refugees after the 2008 post-election of violence. Several groups crossed into eastern Uganda and it's very interesting they were adopted by the communities. The communities took them out of the camps, gave them gardens, allowed them to settle in the village. But because of the Wainter National Law, it is about how far away from borders refugees can leave, they were then collected in this very huge truck and taken to the center of Uganda in these very large impasano camps. And they actually pulled away from communities where they had found acceptance and where they were living a more human life. You're a journalist, surely this is something the media could also help with? Actually if you look at it from the big media point of view, I think the coverage of crisis, refugee crisis, has actually got worse, particularly in Africa where the reforms of the last 30 years have expanded economies and mainstream media are continually profitable. This kind of issues don't track well. I mean a mobile company doesn't want to run, it is hard next to a story about refugee camps and a beer company which has happy people dancing is embarrassed if it is hard runs to close. So increasingly if you look at the amount of space dedicated to this kind of issues, there are very few. If you had one piece of advice or a wish for the international aid agencies, what would it be? I don't think it's the way they communicate. I think that they are really horrible at communicating that the corporate sector has done a lot more to communicate and get their story across. Anyone who is active on social media or blogs like I do knows that when you tell a very personal story you get 60 times more retweets and attention. They need to miniaturize the experience of what it means for people to be vulnerable. They need to approach support and humanitarian assistance in such a way that good people, well-meaning people who do not have a lot of resources can feel that they can participate, that they can contribute.


ility is. I'm not promoting chat GPT. I don't work for Microsoft. And this is the differences. Like as I say, chat GPT interface. You can use as a user friendly. You can ask some questions. API just makes this AI models through the rest. And you can interact with AI inside your application. This is one advantage of API using API. I will, you will see how it can take a benefit in my demo. And my statement here, okay, we understood chat GPT uses APIs to write some custom plugins. And custom plugins are able to call API, right? Again, API usage. And also we do have a lot of service using chat GPT through the API. In this case, my API should be secure first of all. And second of all, it should be scalable. I should be able to scale my APIs, right? By running different instances of the same API. So one, if one instance fails, it should always fall back to another instance. And it should be available 100% of the time. How to achieve this? How to make our API secure, performant and scalable? That's actually great, but I asked this question also. But there was a lot of solutions, right? They available, it was in the chat. But then I end up with, this is about API indicators, right? Successful indicators like performance, availability and security. And then one answer wise, one of the answer wise using API gateway. If you want to have a secure performance and scalable APIs, you can use API gateway. Why? From the bruiser talk also, I was explaining like API gateway because in the center, right? In the heart, like it can know all these APIs exposed by your backend services. It means like it can control the security, right? There's a door, I cannot go inside, but in the inside my friends, but to see my friends, I need to stay caught or into how to say access this information, right? API gateway also like a front door to accept the request and to secure your applications. Also it can scale. Your backend service can also scale, but also API gateway can also scale such a ways that like for three service, one API gateway, like there is a concept of backend for front end, right? Can you use separate API gateway for wild applications, separate API gateway for, let's say web application, so on, to show different information on different applications. My colleague, Niko, also here, he has a very famous talk. It's called the backend for front end, right? You can also talk to him like it's, he can explain a lot of usability about this backend for front end solutions. And of course the plugins, another important fact in API gateways, you can use plugins to achieve this stuff, like observability. I had the presentation just before this, how you can observe API using API gateway or how you can make authentication like a single sign-on or how you can use identity providers like Google or maybe some other identity providers in API gateway. So API six, I can introduce one more time. This is on my T-shirt, open source project, also API gateway, we can use it for free. There is a lot of features, good features like plugin hot reloading. For example, what it doesn't mean, let's say we said like our API should be performance, right? You don't have to add, you don't have to stop your current running server if you want to enable new plugin. Without any downtime, you can delete or add additional plugin. That's one of the capabilities of API six without stopping, right? And other capabilities like a plugin development, you can create your own plugin in your favorite programming language. Like as I say, I don't know Lua, I hate Lua, I can use Java plugin runner to create my Java or chat GPT, ask for GPT to write some Lua code. And of course dashboard, you can use dashboard to achieve the same things without writing any code in the local environment. This is some of the cool features why I like API six. And next topic is how, okay, use this API gateway and AI together because my statement was, problem statement was, for chat GPT, we need secure APIs. In this case, I can use API gateway to secure like my API calls, right? I can enable JWT token based authentication or I can enable even a basic authentication of this just user password and login. If you imagine like you want to have this authentication enable it within your code, if you're using Java screen framework, you need to write, you need to use spring, right? You need to do some configuration, do a lot of stuff. Even chat GPT helps you, it takes time. But the API gateway, you can just use one plugin and to enable your security feature. It's a little bit faster, not time consuming because you already tested by the community members. Another thing is performance in chat GPT, for example, if you're using APIs to ask something on AI, it takes, first of all, some time and also it's not for free, you need to pay each time you ask a chat GPT. In this case, you can use API gateway caching mechanism to cache some responses so that you can use this response in the future. It improves also performance, right? This is some indicators. And you can use other plugins just rate limiting. For example, you can limit the API accesses per maybe some amount of time. I can say only three users can request my API for free. 100 requests per maybe minute. If they are using more, I will ask, please pay for the other usage or change your layer, paying layer, like maybe pay as you go and so on. There are some other features you can use with AI. I'm gonna demo soon in this picture. As you can see, this picture illustrates let's assume that I have one client application. I am building one startup project, mobile application maybe. You will see mobile application. And this mobile application talks to API gateway. And API gateway has a one single endpoint slash ask me anything. We can ask anything, right? And then it actually enables some plugins to control the authentication, rate limiting, security and so on. And under the hood, also it does call to AI.ai chat. It's endpoint. It's exposed by my Spring Boot application. I built a Spring Boot application that it interacts with AI. You will see. And basically I have one of my website.com slash ask me anything endpoint. It's my own domain. I am calling to another domain Spring Boot backend service to get some data. Clear, right? This is an architectural diagram. Right, simple, yes. And next one, if you assume that one Spring Boot application receives request slash an AI chat, it can call slash V1 slash completions endpoint of open AI. It's actually existing API exposed by chat GPT. You can use endpoint to ask anything. This part also clear, right? How the request flow going to AI and coming to the from the AI. If it's clear, it can jump to demo session. Here in the presentation, you can also scan the score code. It brings you to GitHub repository with my demo. If you want to try yourself at the end of the session, if you're like interested enough on AI solutions, who is a Java developer here? Oh, I am also a Java developer. Because actually at this demo, I use the Java and Spring framework to achieve. Let me show you. If you open this score code, it brings you to this API six Java chat GPT opening API report. And I have some brains, depending on what you want to achieve. Like one branch, a main branch, for example, shows in the old way how you can use some code commands to enable some plugins. For example, you can also check the API six documentation. Let me switch to the next one. Documentation to use API gateway, you need to, for example, create upstream route or plugins and so on, right? This is one way of configuring API gateway. There is another way of setting up API gateway by using standalone version. Let me switch back. I am gonna demo it with standalone.  If you want to change, it automatically updates because API six is a hot reloading, right? And if you open this branch, there are some folders. One folder is OpenAI API. It's a Java application, simple Java application. It has a POM.xml file, right? If you open POM.xml file, there is one library. It's actually just Spring Bootstarter web application. And I am using one community API that wraps some API calls to charge GPT in Java. You can also build your own like this SDK. It's not difficult to interact with OpenAI API because if you open API API documentation, there are documentation actually. You can see API references. It can teach you how you can authenticate to AI, right? For example, if you authenticate to AI, you need to have API key or if you want to use some other endpoints like let's say chat completion, you need to request this endpoint. If you remember from the architecture diagram, I had this slash V1. I'm gonna call this chat completion endpoint now without Java now, without API gateway. Let's do that. I assume that I have API key here. I have API key. I have paid account. I paid $10 USD to make this demo. But it's not the case. Please don't use my API key. It can overuse. Let's do one request just to show you like how this AI works. For example, I have here prepared some cool comments examples. I'm gonna request AI.com, openAI.com, chat completion point with my authorization key. And I am just saying you are helpful assistant. Let's see. If I send this request, let me open my terminal here and separate chat. There you go. And we can run one more time here. So I have it's visible. If I see, place enter. You see? It's a chat GPT responding me now. Thank you how I can assist you today, right? This is a very simple, right? I can show the model, which model AI model I want to use. I can use chat GPT full. So now I'm using 3.5 turbo version. You can have a look in the documentation and experience which model with what kind of power they can offer. But what if, now I don't want to use cool comments because I want to add some functionality because I'm building application, right? To ask anything. In this case, I built my Java application. As we started from the beginning, let's say under open app documentation. As you can see, I have a simple Java application with single controller class. With single endpoint, also called slash AI chat that uses a community library to send the same request we did with Kotl just now, right? For example, I can ask anything from this chat. So, and I have a Docker compose that builds API six, my Java application, and upsmith, you will see soon because I'm using building full stack startup project. Upsmith is UI solution. It's also open source. You can check. I will see the screen, what I did. First of all, let me show you end solution. What end solution was and I will explain it a little bit down. End solution is I have, let's say, let's run this Docker compose file with two containers, API six, open AI API. So once my contents up and running, I'm using Docker desktop. I will have 10 minutes. Sorry, yeah, I'm going fast, don't worry. If I open this upsmith UI, you will see my UI application here. Local host, there you go. Oh, let's now, it's not opening. Let's do one more time. Yes, upsmith is starting. It's UI builder framework. You don't have to learn front end to build this UI, like JavaScript or HTML, CSS. You can just use a dashboard with widgets, ready components, put these components to build the applications. You will see now, once it's starting, I have already one built application. A little bit of loading, here we go. My first AI application is called using upsmith, if I launch it, it has two pages, let me bring one more time. Here we go, from the editor, I can also launch. Preview version, here we go. It has two pages, one login page and main page. Because we need a security, right, for the application, first of all, so that my users can log in and also use some AI solution. For the login page, I use a simple UI, right, but it's under the hood using API 6. API 6 enables JWT token authentication. Like when I, for example, register my user on API 6, they can use their emails to log in. And then API 6 sends back the token, the JWT token, so that the upsmith application saves this token to the store. The other request will be just direct, using authentication header. Let's go. If you do login, login successful, I am on the main page. I'm not gonna ask about Microsoft Azure. You can ask any questions here. What do you want me to ask here? How old are you? Let's ask it. It's actually automatically reloaded the page, right? You see the response coming from AI, this one. Because on your first load, the webpage, it's responding. How old are you? No, so the JWT cannot respond to specific questions. Let's see. I am AI, blah, blah, blah, blah, I probably don't have the answer. Is innovative, age-gazing design? Yeah. Yeah. Okay. Yeah. Do you have a question? Yeah. Beyond what? No. Do you want me to ask a question here also? How it's pronounced? This one, Dion? Correct? D? D? I am here? Uh-huh. Like this? No. B is Y. Like this? Exactly. What is this? In English. Yeah. Let's ask. Maybe it doesn't know, huh? Because, no. Dion is a comprehensive online tool. Because, no, you are not right. Actually, this old data, right? 21, 2021. That's why AI solution is old. What I'm trying to explain here, actually not the UI or not how we are responding. Also, here is how the security features work. I didn't spend much time for this demo. 15 minutes, I built this JWT-based application with API Gateway, right? For example, I can log in, I can log out, I can do registration just without spending time. For example, if I do log out, now the API 6 just gets an invalidated JWT token and I need to request again. And the same pass repeats, right? And you need to ask some questions and AI solution to these questions. So, that was kind of demo, the simple application here. But under the hood, under the hood, what's happening? Actually, what's happening? First of all, I had one API 6 set up here. As you can see, it's a simple YAML file as you configure your Kubernetes. I am configuring my backend application, my backend application Java, right? Which is running on Docker, yes, five minutes. Docker open API and I have route, call it, ask me anything. If you remember the form diagram, ask me anything and while ask me anything is called from external app submit application, we are using proxy rewrite because this ask me anything endpoint should be rewrited to this URI, right? Java URA, actually AI chat, not asking me anything. As you can see here in this one, this is AI chat and API 6 actually rewriting the URI. And also I am using for the login, slash login endpoint, single plugin, call it JWT. And I have one API consumer. API consumer, as if you remember, I use it, it's email address here, app submit, gmail.com. How it's easy, right? I have created a consumer with single YAML file and that's all API 6 is ready and I have one Java application is ready and with single two pages, my Java, the app submit UI is ready. And now my question to you, who would like to invest in this startup project? Is it, I mean, at least it can do something, right? Of course, sorry, it's a new future requirement. I will add a diamond. Yeah, sometimes that's the point like why CharGPT is added custom plugin development. In this case, I know that the dynamic city exists. I can add them to my open database, to my Java application, for example, and then I can combine these two responses together. In this case, I can empower my AI solution, right? So how much do you want to put into investment? Do you want to have a question? Yeah, if you're interested, just look, please, yeah, go ahead. Yeah, only if you can see in my demo, only AI of an API is paid, but the rest is, of course, for free. I think, I don't remember, it was 18 USD dollars provided also CharGPT for free usage. I used it five months. It's actually long, you can use until you build something real, like my application. Yeah, the question, I will repeat, what we want to implement additional features, right? Yeah, yeah, okay. I want to implement some features, but I couldn't because the restrictions by the open API, yes, there are a lot of restrictions. It's the right question. Restriction is one we found it's all data. We cannot use all data. And the restriction is, we cannot believe the CharGPT some private information related to the company, right? In this case, I should use my open storage. One of my friends, he's actually not in IT, he asked a question, really a good question. Okay, CharGPT we're using, what I want to use also my open data inside the CharGPT and I should also save this response in my storage for the future. Also some, it's impossible now. Maybe there is a plugin, it can be achievable, but it's not as a production ready. Storage like this, yes, yes. There is a plugin, I don't forget to remember, I think there is a plugin also to achieve this. You know, I remember also Azure, they had announced the one CharGPT flow, call it a separate service on Azure, where you can specify flow. I can say one output should be an input to another CharGPT so that you can have complex flows in this business storage. Yeah. Yeah, is there any features that I want to implement, but there is still some time to implement it. Yeah, I want to implement, for example, my own custom plugin. That shows all the discounts in around the city, but the limitation, I haven't get my access to use this custom plugin development. We can discuss with you later, like other limitations. So we can stop because we are running out of time. Thank you all for your attention, I'm happy. You can check this demo, it's great, AI is great, let's see future, what it brings. Thank you. Thank you. So we can stop. Okay. Hello everybody. Thank you for coming to this talk. My name is Dimitri. And today I'll be talking about modern strays. So strays is a Linux system called tracer from user space with the older history. So what is modern strays? Well, it depends. For the purpose of this talk, modern strays is all the features accumulated since the previous talk I made at DevConf, which was also called modern strays. So if you are interested at those things that used to be modern those days, you can have a look at that talk. But now we'll be talking about very new features, actually since 2019. You can, quite a lot of them for these several years. There are several groups of features. Those that affect tracing process itself, most features that are about the tracing output, what would you like to see? Or a few features about filtering, what you don't like to see? And a few features about tampering, how do you like to change what you see? Also one summary option and one funny option that makes a strays show you some tips. So let's start with this feature, which is probably most impressive for all. This example you see, it's an infamous example used to demonstrate how slow a strays could be, how slow the programs it traces could be. And eventually we have a feature that makes all these things upside down. That is, strays no longer slows things down that way. By installing the second BPF program, the TraceIt program runs almost as fast as on TraceIt one. As you can see from these statistics, it's exactly the same example people used to show demonstrating how slow things are. So you see just maybe 10% difference when the high IO loaded process is under strays with second BPF enabled compared to like 40 times slower. It looks too good to be true, right? However, it's really that good. But there are some limitations. Maybe these limitations are not that important for you, but you should know about them just to choose the right tool for you. Because of the nature of second programs that you can install but can remove, your nature refers to use follow forks mode because the second program is inherent on forks. So unless you specify follow forks, this option second BPF is no option. Also, it is not compatible with any option that detaches strays. For essentially the same reason, you can't stop this program. And what will happen if program still stays but the tracer is no longer there? This second retrace stops which are used to communicate with the tracer. They turn into circumferent error stops which effectively disable those skills. And this is probably not the thing you want the program to do. Like in the following example, it's kind of a artificial example but from this example, you can see how bad this could go. We're just tracing exit groups as code. And when there is no second, we just detach strays and nothing is happening. But well, in case of premature stimulation, there is no way for the tracer to work normally after its tracer was detached. So it actually sick falls because at the moment of exit group, it can't perform this system call. And then it goes to a hilltaping instruction that for something like this depends on the architecture and actually sick falls. So it affects the behavior of this process. So while circum instrumentation in strays is really fast, there are cases where you can't use it. You just, you should be aware of this. So this is the reason why you can, for example, enable it by default or there is a quite old feature that enables strays to demonize itself. By default, when you run program under strays or it just forks a tracer and it runs as a child process. But in some cases, you don't want for a strays to be visible. So things are turned upside down and the program process is the tracer itself. And the strays is going as a child, or actually as a grandchild because it forks twice. So not to be the direct child of the tracer. So it wouldn't be visible that way. It's quite an old option. It exists since 2011, I think. So, yeah, for example, if you run something under timeout, there is a clear difference because timeout is sent in signal to this process. And when it strays, it detaches to early so you can see the output. So why I'm talking about a feature which is more than 10 years old? Because it's not enough. Simple demonizing is not enough, as you can see in this example. When, for example, you are sending the C-kill, it kills the strays anyway because the signal is sent to the process group. So we added an option to also move demonized strays to a separate process group. Actually, you can specify true strays and specify triple D to move the strays to separate session if you need this. But for this timeout example, it's enough just to move to separate process group. So this way, strays is not affected by signals sent to its tracing. There are some ideas maybe to enable this demonizing mode by default, demonizing with moving to the separate process group. But the previous behavior existed for too long so we don't know maybe somebody is assuming the traditional behavior and we are too picky about backwards compatibility. So we decided we would rather add this option. It's another option that controls a strays behavior which is very recent is the ability to stop tracing after a specified number of system calls which are those that are not filtered. So if you are tracing just a few syscalls, only those you're tracing are taken into account. People suggest this could be useful for some automated testing scenarios to attach to some running process and capture whatever they are interested in number of system calls in the touch. And in this quite an official example, I demonstrate the way how I use this sometimes. When I want to attach to a process that generates a lot of system calls, but I want just a few of them. I just attach, grab these few syscalls and attach. So for that kind of purpose, it's very handy. And this is a very simple feature, like if you are developing some multiplexer program like Commode or BC Box, which is a program that has several names and its behavior depends on the name. So it's a very easy way to test this program or affect its behavior without installing. Because when it's installed, you can use its regular alias name, but when it's not, this is a very simple. So moving to features that control various aspects of a stress output. These new features allow you to see what's behind process IDs. For example, you can see what's the program name behind process IDs you see in the output. The option is called the code pits com as a proc pid com. That's where it came from. It also has a short alias dash big y because decode file descriptors option has alias dash small y. So it's kind of analogous. When you are tracing programs that are creating pid namespaces, sometimes you want to see not just the process ID that's visible to these traces processes, but also the process ID, how it looks from the stress process name space. Why it could be useful? Because otherwise you wouldn't easily see which process is which. For example, as you can see here, like process with pid two and three is actually process you see later in the left column. So you can actually see which process is which. And really you can combine both of this like display both common names and pid namespace translation. And this way it's even more visible. So you can see the program name kind of process com contains. And the pid in the target namespace and pid in the stress namespace and it's clearly visible. So in this example I use option decode pids all because it's more handy. And maybe someday we'll have alias dash double big i. I don't really know why we don't yet have this alias. It reminds me of dash double small i which corresponds to decoding file descriptors information which I'll be exactly talking about now. We have one more feature to decode file descriptor information. It's information associated with signal of the file descriptors. So it's quite handy when you see system call accepting some signal of the descriptor you can see right away the signal mask associated with it. Looks nice. Also you can see a series of contexts associated with process IDs with file descriptors and with file names. So the same exactly the same example with without this information as you can see it might be quite handy if you use a sylinux. This is a short form and this is the full form. It's so lengthy. By the way all these strange looking arrows you see they are not produced by a stress. So far a stress doesn't produce funny looking arrows. Arrows also funny looking arrows is it's also doesn't produce. Unfortunately, stress output with full sylinux context is very lengthy. So you can see something very long. Another feature which is probably really important for those who are debugging some strange sylinux related errors is showing off sylinux context mismatch. Like in this very artificial example assuming that there is a file with a sylinux context that doesn't match the database. Sylinux will keep this information. The information is in the database is that is unconfined and actually it's a system. So a stress in this second text full mismatch mode would show the difference. You can see how long these lines could be but if you're using a sylinux you wouldn't be surprised. Anyway. And you can also show syscall numbers which is kind of strange why would need a syscall numbers. You need system calls and not the system caller numbers but here's the example. There is a one dying architecture called x86 which used to have and still has a few multiplexing system calls like socket call. And there are still libc libraries that are using this system call for Barker's compatibility. So if for some reason you want to know exactly which way this system call was, this socket call was called by a direct system call over a socket call. You can use this. Okay, let's talk about filtering now. We have a feature that was announced many years ago as a dash z option. It was announced but never worked. And only in 2019 with a proper return status filtering it's actually works. So you can filter system calls by its exit code. You can filter and show just only successful syscalls or only failed or some combinations. By default it of course shows everything but you can see how this be useful from this example. Like if you want to see just only successful syscalls you probably would use this short option because it's really short. But if you want to see something less common like those system calls that don't finish you would use the long option. A one less obvious consequence of using this status filtering is aggregation. For the obvious reason as trace doesn't know whether it would print or would skip particular syscall until it finished. It prints it at the moment it decides whether it should be printed or not. So it no longer prints all this popular unfinished and resumed stuff which could clutter the output. As you can see in this example this is without aggregation and this is the same thing but with aggregation. But be careful it could confuse you. From this output you could think that these nano-slip system calls were issued in this particular order. But you remember from the previous slide that they're invoked almost simultaneously. So the consequence of this aggregation is kind of reordering the output. But there is no other way to, if you want to see whole lines and you don't know whether they will be seen or not. It's probably the only way. Or aggregate afterwards. Like we have actually an aggregating program but it's not modern, it's from the previous talk, sorry. You can also filter system calls by the file descriptors numbers. So a trace would show you just those system calls that are prepared on the specified set of file descriptors. Like in this small program, just a regular CUT program. But the idea is that if you can filter by path, by path to file, for example, there is no path at all. Like if it's, I don't know, signal of the file descriptor it doesn't have any path. So you can use this. It may be it's another slide. We, every now and then, we add more system call filtering classes because people cannot and shouldn't remember which particular system call names exist on this or that architecture. So there are groups, like we added two groups for filtering system calls related to file credentials and to system calls. Oh, okay. Poke injection is nice. We had, we have various kinds of system call injection for quite some time. But so far we didn't inject anything into memory. So this new feature allows you to inject not just into exit status of a system call but right into the memory referenced by system call arguments. And this somewhat artificial example, I substitute the second argument of open-ed system call by changing the string itself. From it is your shadow for to some different name. So the system call succeeds. But unfortunately, it's not that easy to tell what's the file name because it's a hex string and you probably can't that easily read this hex string. It's a pity, but this is the interface we use. And also you can inject into memory after exiting system calls. So when injecting this return value is not enough you can inject actual value that the system call would have written if it would have been called. So in this example, not just the system call value is injected, but the actual value. But in this case, you can see what this hex is about. It's the string read by reading program. But maybe, maybe it's a good idea to add some interface to this trace poke injection to accept actual strings. So it would be a bit more readable, maybe. Don't know. We have one more option to control to control a statistics output. Because for the last few years we added a few features for gathering statistics. We can gather more different information about system calls. But by default, we show this. This is what we show by default. But if you look into the mind page you would see that there are more of them. And for example, you can specify this or some other parameters you are really interested in. So okay, the last but not least feature is called dash dash tips. It makes the straws show you various tips, tricks and tweaks. It was made initially as an April Fool's joke. But it was too good to be kept just as a joke. So it became an integral part of this trace. And in the beginning you had to see some actual strays output before seeing this tip. But now the latest release, you can just see the tip without tracing anything. You can specify which particular tips you would like to see. But by default you will show you some random tip which is kind of nice. So let's have a look how one of the funnest tips looks like. Okay, tip number 31 says, medicinal effects of a trace can be achieved by invoking it with the following set of options. Medicinal effects of a trace. What? Actually this trace was coined by somebody who really used this trace to request some feature, how to use a trace to make programs that don't work actually work. Because sometimes some buggy programs don't work in a regular way, but for some reason, because they are too buggy, they work just under a trace. So that person wanted this to be documented. And now he or she, I don't know, should be happy. This is documented. There is something in this idea because what a trace does in this mode, it doesn't do any printing. All it does is it makes the traces stop twice on every system call. So this affects the order in which programs are executing their system calls. So less traces, slower execution and some bugs don't manifest itself. Okay, so maybe the last thing I wanted to say is tomorrow you can attend a few more talks in this kind of unofficial mini-conference about a trace. Tomorrow, Eugene would be talking about current state of netting the coding. And Renault would be talking about using a trace to troubleshoot his issues. This is going to be in room G202. I don't know where this room is, but please find it. So thank you, and I'm ready to answer your questions. It's not that easy to tell because, yeah, okay, great, thank you so much. So the question was how many tips a trace currently has. And the answer is that it's not specified and it's subject to growth. And you can easily tell because if you specify the number greater than it is, it would round up to the feature number. It just round up. So you can easily tell. If you watch tip one by one, you would notice that you've already seen this. And this probably means that you've seen all the tips. But maybe the trace version is not fresh enough. Maybe the next version will add some more. So these numbers are kind of stable, but we don't promise this. In every new version, you should check. All these tips once more. Any more questions? Yes, please. There is a format for none, but how to specify a password with the format none? This means that the question was what would happen if tips would be called the parameter none. It's the way to turn tips off, I think. Print, no tip, yeah. That's it. Very simple. This means that you can specify tips and then tips equals none, and then tips and it will honor the latest to specify. It's the, this is the way. So Eugene wanted to add that they used, they used, we follow this behavior with most of the options, or maybe all options, for the reason that if you use some errors or a wrapper that uses a trace, so you could always specify something on top and it would override. We have a few more minutes for any questions. I think soon. The question was, can the trace filter for specific terminal? I don't think, no. No, I don't think you can. But I don't know why. It makes sense. Maybe nobody yet came up with a punch. Could be. Sorry, I didn't get the question. What do you want to replace with what? Okay, so, it doesn't matter, okay. Yeah, I think, so the question was whether all conjection or any other injection could change system called arguments. And we don't yet have this for some reason. Maybe for the same reason. Nobody yet contributed anything. Eugen says that he believes it's not possible to every architecture, but we don't have to support a feature for every architecture. For example, SICOM BPR programs are probably not supported on some architecture, so we don't support SICOM BPR. So, this shouldn't be a big problem. Yeah, but we'll have to come up with an interface and somebody will have to implement it. I think. Or unless the feature will implement itself. I don't know. Okay, any more questions? No? If there are no more questions, then we probably can say thank you. So, can you hear me? You can hear me? Okay, cool. Welcome. So, this is the last talk of today. I hope you enjoyed the morning talks. So, I just wanna start by telling you a story about an experience. Not about developer experience. This is simply a user experience. This is back in eight years in Berlin. I was traveling with this ticket and I got caught by a cop. But I was carrying that this ticket. Do you know what is the reason? Reduce fare. What is the radius fare? But there is nowhere it's mentioned it's children. Yeah, I was like, my understanding was when I'm new to Berlin, first time, there's no information that it's for kids. And I traveled with this ticket for a couple of times. I thought it's just two stations are short distance, not for the long one. I traveled and I was like, okay. But I got to know when cop caught me that, hey, you're traveling with a kid's ticket. And this is a kind of experience we see every day here and there. And then I'm gonna talk about a developer experience and also how community can play a crucial role in impacting the developer experience. I'm gonna show you the five techniques which I learned from my recent roles and projects so that you can take that and next week you can apply in your day job. And also if you have any feedback, let me know, I'm happy to do, discuss. And there's another example, another nice example. During the COVID time in the trans stations, they were giving you like, what is a 1.5 meter distance? It's an equivalent of like a horse. How about this? This is so cool, right? Like, in order to give you 1.5 meters, it is how it is the distance you need to maintain. I really like this one. Yeah, yeah, yeah, elephant as well. And I also want you to do like a quick look into your morning until now. Can you think about your experience at this conference? Maybe just share with your neighbor, like just for 10, 15 seconds. What was your biggest takeaway? Yeah, just talk to your neighbors. This is a community talk, so it's important that we talk to each other and help. And what are your biggest takeaway? Like what are your positives, what are negatives? Thank you. Thank you for sharing your experience. And for me, for me, it's a great organization, great organization. And if you look at when you enter, there's a signboards and there's also information where to get Wi-Fi information. All this information, like where's the check-in, is without noticing it's helping you. And also I had a problem today, like 30 minutes ago, the volunteer's organization team is helping me to figure out the Wi-Fi. So good, thank you very much for the organizing team. How cool is this? I really like this. This is a great experience. You don't know if you've seen it, I appreciate it or not. This is a great experience. And also I had a great community event today. Thanks, Buriana, for organizing this. We had a great localization community in Bruno, and we had to talk a lot of really nice conversation. We got to exchange a lot of great ideas. That's a power of community. And a little bit about this DevCon organization, the committee itself. How cool is that? Supporting speakers. I really felt that they're really supporting. I really felt like being like, I could also contribute. This is a great, great, great initiative. And I've not seen, I've spoken to many conference. I've not seen this. Maybe there might be supporting something like this. This is great. And also if you have seen the app, you can also see who is attending. And you can also see what their background is, like what my talk should be. And also I can also add presentations. And I can basically interact with the audience, interact with the community. So this is a great, great platform. And I felt like this was really great. And also you could give a feedback. Is my talk is bad or good? What can I improve? So this way I can also improve. And this is for community effort. And this is for community effort. And I'm also gonna share, like I said before, my recent projects at Localize, Contentful and Commerce Tools. I'm gonna share a couple of stories and how I approached and how community helped me. And I'm from Berlin. I'm currently based in Berlin since 2015. I run several meetups, including design and front end development related communities. There's a saying in Berlin. If you are in Berlin, you don't go to a restaurant for dinner. You go to a meetup. We have meetup pretty much for everything. Every tech thing you take, every front end frameworks, design, marketing, product development, we have meetups for everything. So there's such a great community place. And I learned a lot by organizing and running workshops. How many of you think user experience is same as developer experience? Okay, so good that not many. So let's take a look. I applied user experience techniques into improve the developer tools to improve the developer experience. I straightaway applied what happens like, for example, I was building a design system, a UI components to build some UI applications for Contentful. We have a framework called Format 36. It's just a UI blocks. You can think about like a Lego blocks to build some UI. And as a product manager, I had a lot of backlog of items to work on, like improving the documentation, improving our components.  But these information was based on my user interviews. I talked to a lot of our customers. I also talked to a lot of our community developers. I asked like, hey, what are the components? What are the, you're struggling with? I got set of feedback. But we also have a community Slack channel at Contentful where I started answering the questions. I started understanding what are the problems they are struggling with, building this UI application. I started helping them. I just started answering them. I started helping them. And slowly, I also felt like what I had the user interviews, what I got the insights, was totally different from what are the interactions and insights I learned from this community interaction. And I felt like, if you just ask your users or your developer, they're just gonna say, just like Andrew Ford, they're gonna say they have last for fast horses.  And this is a great quote from Amy from Sales Safari. If you want to know what a person really values, what they really suffer, what they really do, don't listen to their words. Observe their actions. I literally followed this. And if you ask me how I did, since I was answering a lot of questions on Slack channel, I started slowly building a trust among those community developers. And they were starting reaching out to me in a direct message on Slack. And for me, it was very easy like, hey, I'm working on something. I would like to do a pair programming with you. Let's build this together. I want to see what is your environment look like? How do you approach? Do you look into documentation? What is your code ID? ID editors looks like it gave me a lot of insights, which I didn't get during the user interviews. And one of the best insight I got was TypeScript. And we were supporting the TypeScript in the UI application. And what I noticed from our community developers is never looking into documentation. For M, the documentation was types in the code editor itself. And you could able to understand what are arguments, what is the argument types. And I never seen him looking into documentation. But our backlog was full of improving the documentation, improving adding new components. But after this, we changed our strategy to make also include the types should be top quality so that developers can get their job done easily. And another was just an analogy. What we think as a user experience is we just want to deliver a burger. Like, hey, as a customer, you want to deliver what I ask. But actually, a developer is they don't want a burger, but they want a meal. And also, you need to get a proper instruction how to prepare your meal. And also, during that preparation, they also go through a lot of trouble step by step guide. And there's going to be a lot of troubleshooting involved. And this is why my analogy, developer experience is not same as user experience. User experience is for consumers. I just have a restaurant analogy.  That's like a burger, what do you get it, right? Whereas developer experience is for makers. Developers are makers, developers are builders. They want to build things. They want to customize things. They don't want just to have a burger. They want to customize that. So that's why the tools you provide to developers, the way they interact is different from the techniques you apply to the user experience. And I saw the same example at Commerce Tools, building the UIKit, another design system for our customers. And I also did a pair programming sessions with our solution engineer. This is about internal community. I'm going to talk about why it's very important to build internal community first and how you can get a lot of benefits from internal community. And moving on to all this, okay, we understood. There's a user experience and developer experience. Okay, but how can I look, how can I improve the developer experience? How many of you know what is jobs to be done? A framework, a jobs to be done framework? Okay, one hand. Okay, so I can give you a quick look. Example, people don't want your quarter inch drill. They want a quarter inch hole. So they just want to get their job done. They don't care whatever the tool they use. They want to get their job done. So to understand what it is, I have a couple of examples. For example, 20 years ago, if I want to buy a train ticket, I would just go in a physical store. I just have to stand and get, today I don't have to do it. I can just get it from the mobile app. Same job, train ticket, purchasing a train ticket. The way I can get it done, I can sit it at my home. I can do it here. It's much faster. The tools will change, but the job that buying a train ticket will remain the same. So the new tools will make your job getting things much faster. Another example, Netflix. Netflix, when they started, they were selling CDs. But now nobody's gonna watch with the CDs. Everybody watched with their mobile phone or a desktop or their computer. Still you're watching the movies, but the way you watch the movie that is using the tool list has changed. How about for coding? For example, you being a developer, now you have a co-pilot, for example. This is just an example. Co-pilot can help you as a companion to get your job done easy, but still your job is to build a useful software. Another example, AI example. There's a documentation site where you can do a search, what is there in your documentation. But here is the read me documentation where with AI, it can also help you. What do you want it to do? What are the steps? It can be more advanced. It can understand you what you are trying to achieve. And it can provide you more details. And for example, Stripe did with a chat GPT. They have a documentation experiment where you can ask something and it can give you more detailed, concrete example what you have to get it done in a much faster way. And this is another example since we are talking about community. This is at airport. This is at before COVID, before Corona. Like they were asking me near the restrooms, how was your experience? But now they're clever. After COVID, you can just scan it and just share your feedback or concerns. Still the same job. Feedback, but doing it in differently. So think about how you can enhance developer experience with the tools you're building. How their job, the fundamental job can be done in a better way. And there are a few examples. For example, this is from XZeta. XZeta provides you a query database and it gives you TypeScript and JavaScript code and you as a developer don't have to write this. And depending on what query you want it to perform, it gives you a code. You just have to copy paste this. So getting the same job done much faster because you have the code snippet, it will be easy to consume this data. And looking into the interface, compared to the user interface, there are some interface we need to consider when we are building it for developers. That is, of course the code editors, command line, APIs, SDKs and documentation. And also while thinking about all these interface, there will be a troubleshooting. There could be errors. And this is a typical journey of a developer consuming your tool, your product, right? Getting started, reading docs, trying to use your tool. But there could be some troubleshooting. There could be some issues. How are you gonna provide those parts? Make it easy for them. And this is a great example from Cypress. For example, if I get a end to end automation tool for UI automation, where there is an issue, if there is an issue, they also provide you how to fix it. This is a great way. This is a great way you can help your customers if you're just building some great developer tools. And you can see here, this is where the documentation that goes, details, what's the problem, how to fix it. So making their life easier to fix these issues. And another viewpoint, before we go into community part, developer efficiency. What is developer efficiency? Let's take a simple example. As a developer, I'm building a some UI application. How quickly I can make changes on my editor and how quickly I can see the changes in the UI. The faster I can see the changes, the higher the efficiency is. Let's say if I'm working on a monolithic application, I make some changes, it takes one or two minutes to build and deploy and show the local preview, then it's a low efficiency. Similarly, if you are working on a unit test, if it gives you an instant feedback, that's a high efficiency. If it takes some minutes, it's a low efficiency. So think about, I just talk about only those two examples, but we are talking about validating changes on local environment, validating and following some standards, security standards, and deploying and sending it to production. High efficiency environment is where your tool is efficient, making the life easy for developers to build faster. At the end of the day, you're able to helping them to get their job done much quicker. And always aim for using your tool. Your tool should be aimed to get your I efficient environment. And there are more details about what are the low effectiveness and high effectiveness. And the last part of this talk where how can we improve developer experience by community? We talked, we understood what is user experience, what is developer experience, but now how this talk community is gonna play and help you. The first point is how open are you to get a feedback?  If not, then your users will just ignore and go. If you're not ready to listen to a feedback or if your system is not ready to accept feedback, they just struggle in the middle and they go, they never, you never get the feedback. But what are some of the examples you can try? For example, this is from Next.js documentation and you as a user, you can just enter email and you can just give you a feedback and previously the email also was optional, you can just send them the feedback. And we did a similar thing at localize. We have the developer portal and I created a simple Google form. And I replicated the same thing, an email field, an optional email field and also what's the problem? You know what, so much of feedback I get every once in a month, it is so much of useful. That way our documentation is up to date. So first tip is open for feedback. Do you have forms? Do you say you're ready to hear feedback? Opening up where your customers will be more place. So that's one point. And second very, very, very important point. If you take one, take away from my talk is this one. Provide value to community before expecting returns. What I mean by this, let's say, let's take this example. This is a tour guide who kind of explains and provides value, show all the historical moment and at the end of the tour, you're gonna give them a tips based on how happy with that guide. Similarly, what I've seen is a lot of product managers, including me, before I have a Slack community, I straight away reach out to those who ask questions, those who have problems. Hey, I'm working on a new project. I would like to get a feedback. Do you wanna be a beta tester? No, they will not come. How are you expecting you to come and help you? Because it's not their problem, it's your problem. I don't have any credibility. I don't have any trust to them. How can you expect them to help you? So the big lesson I learned is build trust. How can I build trust? By helping them, by helping their problem, trying to help their problem. And also recognize community contribution. This is one great example from Contentful, FormA 36 open source repository. Even if I do a small documentation contribution, or even open a bug and suggest a fix, my picture and what type of contribution will be listed here. This is a great way to recognize them. And hey, I contributed to this project. I can really feel good thing about it. So recognizing community contribution is another thing you can definitely do. And as I was explaining the point of building a trust, building a trust, it's not gonna happen in couple of days or even a couple of hours. It might take couple of months, but it's very fundamental in order to get a valuable community feedback for your product. And this is also another very interesting pyramid. One percent of your pyramid is you can expect as a contributor. Let's say I have 1,000 community members. You can expect at least around 10 people might be your true contributors or champions. They would like to contribute. And 9% of those contributors are, they might comment, they might add, they might read and they might, hey, this could be better. Let's say we have a Slack channel, Slack group, and 1% of the passionate champions are talking about your open source tool and challenges, and 9% of them might be comment or interacting or like and sharing. So the remaining 90% of your community is just observing and don't expect them to be kind of like interacting, but they're just consuming the content. It applies same thing for even social media. Only 1% will be sharing the content regularly. 9%, around 9% will be interacting, and 90% they just consume, they just scroll. And you can also learn interesting tactics from social media influencers. If you have seen social media influencers, they always know the pattern, hey, please let me know in the comment section. Please let me know what do you think? These comments, these feedback from the community is actually helping them to prepare what is my next big content I need to create. Same thing I've seen, people are using the LinkedIn polls to collect what is my next topic I should write for. It's again, getting the ideas from community and prioritizing what they should focus on. And this 1%, what do you see here? It's very important you identify who are those 1% of your contributors are. And it's important you reward them. Of course, we as a developers, we love swags. We love conference swags. We love these open source tools swags. And it's up to you to identify those 1% contributors and reward them based on type of contribution they are doing. And you can go one step further if you have more time and if you wanted to do more in a systematic way, like Balsamic for example, they have a customer advisory board where you can list down and you can expect, come up with a plan, what is best way they can contribute to your roadmap and also what your community contributor's gonna get based on their contribution. And there are some ambassador programs from various developer tools where you can clearly mention what are the benefits they're gonna get. So that way you're rewarding your 1% community contributors and also inspiring them so that they can create more such content and contribute. And once you have, okay, I'm gonna wrap it up. Once you have two more points, once we have those 1% contributors and you have a trust, then you have a chance to go deep dive user testing session with community developers. That's where you can go, do a pair programming session, you can go even more than one hour and understand, build something together with your community and you understand the pain points, where they're getting stuck, what you can improve and also asking them to think aloud also helps you to kind of get you learn which you'll not get it from just from user interviews by talking. And another tip I can give you is sharing observation. Along with you, it would also be great if you can also go with your product manager and your designer, they can be a passive observers. That way you can speed up getting feedback and you can align and you don't have to discuss and argue, hey, I don't agree, but if they are observing, they also agree and the feedback and conclusion will be much faster. And this is what I try to explain that we all have different views, but once we attend these pair programming sessions, we start to feel that yes, that's pain is real and we all have after the pair programming session, all the team members agree that the problem exists, we need to fix this. And I can recommend these two books. If you wanted to do the user testing and pair programming session, which gives you more about how to do that and also what questions you need to ask, more open-ended questions. And I use automation tools like Calendly and Zoom. Zoom works perfectly well for me because as soon as somebody books a user testing session, I get a Zoom link and email schedule. So it works perfectly and I can also record and watch it later for research purpose. And another tip is this is a great place. The physical events are a great place to get a feedback. This is where you can find developers and if you're hosting, if you're sponsoring any of this event, and this is where you can talk to your developers and ask for feedback. For example, Auth0 did a Dev Day event. They're running the user testing of their website in the event itself. So this is a great place to find a lot of developers. I highly recommend if you are sponsoring any event, utilize that opportunity so you can meet a lot of developers. An internal community, I would try to wrap it up. This is another very important tip, dog footing, which would start using our tools built by product companies in the company itself. And oh, I don't have time, but I would like to show this. This is a great advice from Kelsey about Kubernetes, how you give Kubernetes core engineers to install the Kubernetes on their system, how they struggled, and how they improved the Kubernetes later. And friction log technique is if anybody joins your company who has a fresh mindset, they can log all the good and bad experience about using your product. And this one, this technique is used by Stripe. And that way you know where the pain is where people are struggling because those new joiners and new developers have a fresh perspective where you as a developer who's building a product might miss that fresh perspective. And I use it for marketing because I work at a marketing team at localize where I also, if I wanna send an email to a developer audience, I do a very quick test with our internal engineers. It doesn't have to be 30 minutes. It can be just five minutes or 10 minute session. And I just ask like, hey, what are you expecting from this email? What do you understand? And we can also improve and make the email shorter and also make it more developer focused. And with that, I will conclude my talk. So here are my takeaways for you. Open for your feedback. Find out the channels where you can get a feedback. Always ask for feedback. If you have a Slack community, always tell that we are here looking for feedback. If you have any feedback. And also some of the companies even go one step further. They put your calendar link where you can book a call. A community member can book a call and talk to you and provide value to your community members before you expecting them return. Always solve their challenges, build a trust. And once you have a trust, go deep dive user testing sessions. That way you can understand their pain points and participate in person events and talk to a lot of developers. And this is a great chance to get a lot of feedback if you have a sponsoring the event and get your feedback for your tool. And in terms of internal community, do the dog footing, use your internal engineering resources, friction lock techniques. If new developers are joining your company, that's a great way to get a lot of feedback for your product because they will be viewing it from a fresh perspective. And do a lot of quick user testing with your developers itself. If you are doing any developer-related improvements because starting with internal community is much easier than looking for developers from outside, from community because it takes time, building trust takes time. But you can start today by talking to your internal community, building internal community of developers. With that, I'm gonna finish my talk. Thank you very much. If we have time, I can take a couple of questions. Any questions? Thank you very much.


Hi, my name is Bilhika and I'm an actress based out of California and I'm going to be posting a self-tape audition every single day in July. And you can join me too if you want. I'll be posting the week's schedule in the description so you can follow along with me. And if you do, I'm going to be doing a giveaway. But yeah, I just had this idea of, oh, I should just post a self-tape every day. I should practice more, especially because I'm not getting as many theatrical auditions as I would like and I don't have as many clips of specific roles I want to play and I don't have clips about of my skills and I just want to be able to put a bunch of clips on my casting website so that it's easy to know what I can do. So I thought, why not try and do a self-tape every day in July and post it here and you guys can join me. I'm going to be doing commercial auditions, theatrical auditions. And I was inspired by a friend who tried to do this a few months ago and also I know there's a lot of self-tape challenges out there for different programs. But yeah, so you can join me if you want. You don't have to pay anything. I'm going to be putting the template in the description every Friday for the following week because I'm theming every week differently. It turns out July is pretty long. There's 31 days and technically like five weeks. So I'm going to be theming each week differently. So like I said, some of them are commercial. I'm going to start with the commercial ones. July 1st through the 3rd is going to be the first week of it. And that one's going to be the self-tape questions, the commercial questions that they usually ask you about your personality or something related to you. Like, tell us something about yourself. What's your favorite food, that thing. And then for the second week, some kind of action. And then some of them have a single line. For example, sometimes they're like, you're sitting at your desk and then you get a phone call or you answer a Zoom meeting or something because for a lot of auditions or a lot of commercials, they just want somebody doing an action and then you have a voiceover for commercial auditions. I've noticed this especially for the auditions that I send over in San Francisco for my agents. And then the third week is going to be July 11th through the 17th and that's going to be the skills. So I do have quite a few different sets of skills that I haven't put on tape that sometimes is needed and I'm like, oh, shoot, I have to go do it. So that whole week is going to be different skills. And also for each one, I'm going to give you different types of slates so you can practice different kinds of slates because sometimes they don't want one. Sometimes they just want your name or your location, you know, so you can practice different kinds and give the casting directors what they are asking for. So make sure to always read the information, the directions for yourself tape so that you can send them what they are asking for exactly.  They're not going to be the longest monologues because I also don't want to torture myself. I am doing this for fun and to learn. And maybe this will also help me even more with my memorizing skills. But that week is going to be monologues. And then the final week of July is going to be scenes. So theatrical scenes. There's a lot of shows that I would love to audition for. So I am looking for a bunch of scripts right now. I have a few, but I'm still looking of characters I could play. And so then when I do, you know, get a new agent in LA and, you know, audition for different things and they can see that I can play those characters. So that would also be super beneficial for having super beneficial to have on my casting websites. So for the commercial ones, I'm going to give you exactly the template of, you know, what to say, what to do. And then for the theatrical ones, if you want to do it with me, I'm going to point you to some directions where you can find scenes for yourself just because what I play, maybe you can't play. So yeah, so you can find a bunch of scripts. I found pilots online. I found just rehearsal scripts that weren't necessarily in anything. So I found that really helpful because it's fun to just be able to practice and not necessarily get something maybe from a show that you like because you want to, you know, not replicate that exactly. But yeah, so I'm going to be giving you the template and the, you know, the directions on where to find some more scripts and things like that. And if you do decide to do at least one self-tape with me this July, I'm going to be giving away a 53 inch paper backdrop like this. If you watch my vlogs, there's not going to be any Saturday vlogs in July because I'm going to be doing this. But instead of giving away the backdrop during my vlog, I'm going to be giving it away in July. If you do at least one of them, one of the self-tapes, you will be entered to win a 53 inch paper backdrop. And that is for anybody in the U.S. and no international territories again, because this is with Savage. They're putting the rules. They're giving us a free backdrop. So we have to follow the rules this time in the future. I'll try and include more people, of course. If you want to enter, do at least one self-tape with me. And then I will announce the winner for that one on August 1st. I'm also going to be contacting an acting coach and see if he can help me improve with, you know, improve these self-tape auditions so that I can use them for actor clips for my casting websites. And that will be in August after I'm done filming all of the self-tapes. But I'm so excited to be doing this. Also terrified, there's 31 days, but it's going to be fun.  So let me know if you're going to join me. And thank you so much for watching this video at the end of every video I feature another channel. So this is today's feature. And if you want to be featured on my next video, make sure you're subscribed. Leave me a comment about what your channel is about and I can say something at this part of the video and like my video.


This is my second disclaimer video last one was on radio frequencies and stuff and yeah, I do my obviously I do my my disclaimers after my videos go out just because I just kind of assume Stuff I guess anyway I've done a number of videos where I've gone out to kiosks that I found whether they're touch screens or have buttons and Showing you how to get to menus and other stuff and there have been people in certain Oh, you're going to get in trouble for doing this. Oh, you know, I could you can get in trouble for walking across the street the wrong way to My video show that I'm not doing anything malicious I'll give you an example. There was the one with the gas pump where I found that if you had two buttons That brings up a menu and I clicked on one of the menu buttons and it lasts for access code Now if I sat there and tried a bunch of different access codes Yeah, now I'm trying to brute force the thing I'm trying to break the machine But besides that I'm just using functionality of the machine I hit two buttons and you know, I'm not a lawyer again. And yeah, I guess I could be pulled into court for Two buttons, I don't think that I will For years I have gone out and anytime I walked up to a kiosk touch screen I hit the screen touch different ways and and I would say It's becoming less and less back in the day Almost every single time would find a hidden menu nowadays is becoming better and better Maybe a third of the time. I'm able to find menus within 30 seconds of just Another example was the Chuck E cheese one where I hit the screen and right away I could see the keyboard in the corner of the screen. All I did was pull out and hit a couple keys on it Again, in that case, I'm just using functionality. If you don't want me using that keyboard, don't put it on the screen. I'll do that. Will that hold up in court? I think that, personally, I think the programmers, the people who set up that kiosk should be brought into court for creating something like that where people are, again, putting in your credit cards into that machine and you're giving them full access to a Windows machine, Windows desktop with keyboard instead of just your locked-in kiosk interface. They're the ones that should be brought to court.  Don't do it if you're going to get in trouble. But if you're going up to a machine and you're typing in any type of personal information or sticking in your credit card, you should be aware of what that machine is doing. And if there is a hidden menu that shouldn't be there because it's poor design, you should know about that before you stick your credit card in there. So you should have the right to hit two buttons on a gas pump and see if a menu comes up. There should be nothing wrong with that. And you know what? If everybody did it, then, you know what? They would stop putting those buttons in there.  Another person said, I should build a robot that's going to try to brute force this.  I didn't try typing in a number. I don't know how many digits the kiosk allows on the gas pump because it might allow you to type in as many digits as you want or limit you to a certain amount. I don't know. But my initial thought is it's either going to be a four or probably a six-digit pin at most. It's obviously numeric because it's a numeric keypad. I'm going to guess a four-digit pin. So this is just going off from disclaimer two to just pointing out something. If it's a four-digit pin and it's numeric only, that means that there's 10,000 possible combinations. Knowing this, how hard would it be for someone to get together across the country online, find 1,000 different people with these gas pumps near them, assign each of them 10 codes to try, and in no time, the code would be broken. That's why you shouldn't have menus like this even with an access code without accessible. Bringing up another thing, years ago, I think they've changed the red box. I think it was red box where you get the movies. I had never actually rented a movie from them. But I do know that years ago, I found, again, it's a touch screen, so I just walked up to the machine, started touching the corners, and I found that at the main screen, I think if you touch the top right corner three times or maybe it was left and right a couple of times, something like that, I did figure out, all of a sudden, a menu would come up. Well, not a menu, a little animation asked you to insert a maintenance disc. So that's better than an access code. So basically, I guess to get into maintenance mode on that, you press that key, bring that screen up, and I guess they had a special CD that they would stick in, just like you're returning a disc. They would put in a disc that I guess would activate. I'm assuming that's what that meant. That's at least a little bit better, because I can't just sit there and guess stuff, you need an actual CD or DVD that probably has information on it and without that exact information, it's not going to bring into maintenance mode. So that's a little bit better. I know back in the day, again, I'm talking over 10 years ago, when I would go to Target, when I was getting married, sign up for their gift registry, touch their screen. I heard clicking when I would touch the corners. Nowhere else in the screen, mainly I touched the top corners, clicking. So I sat there, I went clack, clack, clack, clack, clack. And it was something like left, right, right, left or something like that would bring up their maintenance menu. And some of those, some options in there needed passwords. Other ones didn't. I could test the printer or shut the machine down without a password. So again, no need for that. Since then, I think they've switched iPads and I haven't gone over there and played with them. I'm hoping they're a little more locked down. iPads tend to be pretty locked down. I'm not saying that's a good thing. But now we're talking about the difference between securing machine, locking down machine or two different things. Anyway, just a thought. Again, I'm not a lawyer. Don't get yourself in trouble. But if you're interacting with these machines, if it's just a kiosk that that's displaying pictures, or for example, there was the one time I did a video a couple of years ago, I was at the mall and there was a huge touchscreen doing a slideshow of real estate or something like that. I went over and I was touching it, trying to find him. But my daughter came over and touched the screen at the same time I did and it crashed the program and they were running moving to again, it doesn't matter whether you're running Windows or Linux, there's no reason for a full desktop to be running on that machine. Just open up your application, you know, start Xorg if you're running Linux, maybe with a very basic window manager, but no need for a desktop interface. The only thing it should be running is your kiosk and the graphical display interface like Xorg. So even in that case, they're running like they should have and I was able to open up a web browser that connected to the internet, at least in that case, no one was entering information, but their machine was still exposed. You know, as the user, I don't care because I'm not putting my credit card or private information into there, but other cases you do, you're putting your credit card in there, you need to know what's going on with these machines. So don't be afraid to protect yourself and the way you protect yourself is by knowledge and don't be afraid on your personal machine or other machines. If you're using a machine, you're the user of that machine, you should be able to, whatever you're able to do, you should be allowed to do. If you're able to do something you're not supposed to do, that is the administrator of that machine's fault in my opinion. That's now a legal stance. So go ahead, protect yourself. Please visit my website, filmsbychrist.com. That's Chris the K. There's a link in description. If you're enjoying my videos, be sure to like, share, subscribe, comment, all that stuff. And I thank you. I hope that you have a great day.