How the new deep learning framework revolution will look like

In twitter I came across a very interesting tweet from Andrew Trask.

Screen Shot 2020-03-26 at 6.53.19 AM.png

At first I was very confused on what he meant by data. I thought it had something to do with ETLS or ways to gather more data quickly. Maybe something related to data quality or an algorithm that searches for relevant data inside your organization. I asked him if he had a blogpost and he provided a whole site. It’s a whole open-source organization working on this problem.

The next generation on deep learning frameworks will be privacy. Not so much on obscuring your data but how to work with private data (Imagine the worst, healthcare data, paychecks, anything more private than that). It turns out that if you spend time thinking about this is a big deal.

A lot of people say data is the new oil. Which is something I think is not the future, it already is. In order to power our very cool algorithms, you need data and sometimes a lot. But due to some new regulations (which is a whole other discussion if they should exist, I think they do), a lot of data is off-limits. It’s like having oil in a country you can’t access. Andrew’s organization is building a lot of tools that help us go to that country and use the oil. They have a very cool group of techniques to handle these problems. And they are working on more to come.  On the other hand some countries claim the advantage of working with private data due to their lack of regulations, OpenMined is leveling the playing field.

If you are interested in this topic I suggest you take the tutorials or join the slack, and if you liked this blogpost feel free to find me on twitter.



Trust in enterprise AI starts way back

Being the first one to implement a Machine Learning algorithm for the first time in a company comes with good questions. Nontechnical folks will need to begin by understanding ML and the art of the possible. Although a great number of questions will come just before the go-live. They’ll need to test and be sure that the algorithm works and will perform as expected.

That’s the point where this kind of technology and tech start to intersect. People will be afraid of something they don’t understand and also about something that is non-deterministic (little changes in inputs can change the outputs). There are different ways of building trust in these algorithms, some are sexier than others (spoiler alert, you might want to start with the unsexy ones).

The first way to build trust is simple: test a lot. I mean a lot. Throw a lot of data to test and check the results. These will grow confidence in the nontechnical folks. The caveat is that this could take a lot of time, manual spot-checking and you might not have enough data available.

Other way is explainability. There is a whole AI field working on methods to explain the algorithms and be able to tell what went wrong when it outputs a wrong prediction. This is something worth checking out, but you might need to combine it with the first one.

The third and last way is data governance and data integration. A lot of companies have multiple sources of data (with duplicated data), nonexistent quality controls and zero governance. This means that data is not available, is hard to find and nobody is responsible for the data. If you are not able to trust the data you are feeding to the model, you will not be able to trust the results. Even for testing purposes, you need ground truth data, if it’s not grounded everything might be more difficult.

A lot of companies might want to run before they can crawl and that’s ok. I think ML projects are a great excuse to start doing some work on data governance and data integration. Just try not to forget about these two things. If you set the right foundation the future projects will come smoother.



What Reinforcement Learning needs to be applied in business

One of the most promising areas in AI is Reinforcement Learning. We’ve seen it beat top humans in Go, League of Legends and Starcraft. We’ve also seen it learn to play hide and seek. This kind of feats was impossible to achieve using former learning styles (supervised or unsupervised). Although we have not seen a lot of business applications for Reinforcement Learning, we’ve seen very interesting robots and some recommendation engines but I think there is a lot of space to explore this intersection.

A lot of research is being done on the agent side of Reinforcement Learning. We’ve seen techniques that allow agents to solve problems faster. We are getting better at beating humans in Go but that won’t necessarily help us apply this kind of technique in the business world.

In order to apply Reinforcement Learning in the business world, we need an environment builder. From my perspective, we have great agents and there is a lot of momentum on that front. We are lacking a way someone can build an environment that represents a business problem. The holy grail would be that a business user can build that environment by himself (with drag and drop), we can start with baby steps even a little framework with python scripts could work.

Once we have a way to build these environments, I think we’ll see a lot of different applications. We could see new stuff on forecasting, navigating complex sites and invoicing to name a few.

If this is something you are working on or seems interesting to you I would love to hear about it on twitter.


Always show up

In your first job, you’re goint to have a big screw-up. Or at least you’re going to think so.  It doesn’t matter if you’re really good or really carefull, it is going to happen. For me, it was a big failing project.
The project started as all the failing projects start: running. Speed was the key, we had a big deadline and there was no space to fail (you can always fail, the world is going to keep working). I worked hard, as hard as I could. I did all I could at that time. Now I see things different, but at that moment, I did everything I believed it could help us finish the project on time.

And then came the day. The final day to deliver the complete project. The afternoon before I knew we were not going to be able to complete it. I had an awful night. I didn’t talk to anyone, I just thouhgt and thought. I couldn’t sleep. I was ready to quit, I wanted to stay at home. I just didn’t wanted to go to the office.

But I had to. And I did. I went. I tried to come up with solutions for the project. I could not find anything. Everything I thought was impossible. I was really sad and a angry. I wanted the project to be successfull. But sometimes things don’t work as you want.

So I just showed up. I went to office and faced my problems. I had no particular strategy, just say what had happened. I had some alternative plans, but none for the same day.  I started imagining all the things that could happen. I thought I was getting fired, downsized, the company I worked was getting sued or something like that.

Then, the moment arrived. I said it, the project wasn’t ready. It was impossible to have it ready for the same day. What was funny, the project manager (he was some scary guy from another company) just said Ok. I said: Ok what? He just told me: Finish what you have to finish and then tell me.

I was relieved. I was happy. Then I felt a little stupid. I had a really bad night, a lot of negative thoughts for nothing. It ended really well, it could have been worse. I had no control it.


How to get lucky

Luck is kind of a mistery. Haters love luck. They think it’s the only reason you are doing great. They use it as a excuse. They think you got lucky and that’s it. You have that job, or you own that car because of luck. Sometimes it’s true, sometimes it’s pure luck. But most of the time it’s something else. A lot of people talk about controlling your luck, the first thing you imagine is sorcery and witchcraft, it’s not about that.

People say luck is when preparation meets opportunity. It is a simple definition, too simple for some. You can control preparation, it’s up to you. Opportunities come and go. Based in this definition, you just prepare and wait. That’s it, you’re lucky. I would recommend look for opportunities, not just wait.

What happens if I prepare and the opportunity never comes? That’s a really weird case, it could happen. But it is really weird. The normal thing to happen is, opportunity comes and you’re not prepared. That is the worst thing to happen, because what you could have controlled (preparation), you didn’t do it.

When you see great things happening to someone, you could think about luck. Or you could think he has been preparing himself for this things. Always think about the past, there is a lot of the story you don’t know.

Another thing you can control is location and timing. You choose where you are and when you are. Sometimes this does magic for you. Be near the opportunities. Opportunities are not inside your house, you have to get out and look for it.

It’s really weird, but things will eventually fall into place. This stupid work you are doing today, could help you tomorrow. Sometimes you just have to let it flow. Things change, the ones you can control and the ones you can’t. When you look back you might be amazed how all connected together.

Prepare yourself, opportunities will come.


Outsourcing poker

Everybody is familiar with the outsourcing concept. You have a task, difficult or easy, and you ship it to another country. You hope somebody finds some people who can talk english and complete your task. We’ve seen this in software development, graphic design, building stuff and on and on. Recently I heard about poker.

It surprised me when I heard there was a place, where they make you improve and let you play online poker. Yes, they give you money and play. If you lose, no big deal, if you win then split the prize. That was interesting, but what was mind-shocking was the way they played. Several tables at a time. For me, that was the key aspect. What if you could play several tables at a time? In life.

Some people would think, I would win all the tables, at the same time. That would make me invincible. Others could say, I would lose a lot of tables at a time. I think the key is, your learn fast. You may win some or lose some. But guess what, if you do it for several days, you would gain a lot of experience.

This blog is not about poker, I know. But what if you try little different ideas at a time. We all have 24 hours a day. Sometimes we spend countless hours playing videogames or spending time with people we don’t like. If you could try little different ideas (you can call it startups, but could be anything) you will learn faster.

I am trying to do that. My startup journey has being long. Guess what? We haven’t launched. But there are other little projects that are starting to work out. They are no big behemoths, and they are not ambitious. Just little ideas that were sold before built.


Change of direction

Everything seems fine. Even when you’re coasting, things are working well. If we could just fast forward one or two years, we’re on the road to success. Or not?

Sometimes you feel you’re not working at the desired speed. Maybe quality it’s not great. Maybe we are running like crazy goats, hoping that in one of all the possible combinations we’re going to end profitable. Have you lost control?

Maybe you need a change of direction. It’s not that sudden. You don’t feel it almost immediately. You start looking at some signs. Things could be better. There are changes you are delaying. Some managers do it just for fun. Don’t be that guy. Experience help a lot. Maybe you start feeling something has changed and you need to change. Or maybe things are too quiet, time to rock the jungle.

A change of direction has to be for better. Doesn’t need to be the biggest change in the world, but must be important. I could seem little to your teammates at the time. But in your brain. In your strategic side. You are foreseeing something bigger. You could be preparing for something or you need to change, because if we don’t change, we die.

Make an early meeting. Drop politics. Tell the change. Be direct. Tell what’s wrong. How are we going to fix it. The change must be implemented right now, immediately. If you give the chance of second thoughts, it’s never going to happen. People are going to cry, sorry.

Be the first to change. Drive at full speed to change. Then hope for the best.

Try not to use too much this tool. If you keep changing direction it’s going to look like the inmates are running the asylum.

Want to start using Extreme Programming? Change direction. Tired of bad code? Change directon. Want to be profitable? Change direction.


Why context matters

So, you’re working in the zone. Smashing bugs, creating incredible stuff and making the world better. Sometimes you’re just focused on one thing. You’re the database guy. All that matters to you is words ending in SQL. You think about optmization, data corruption and servers crashing down.

That’s ok. In fact it’s really cool. Maybe you’re the QA guy. Everything doesn’t matter. It’s all about tests. What are we building again? Doesn’t matter, just QA. You’re happy and that’s cool.

You’re building something. In fact your whole team is building it with you. Sometimes the whole company is building it with you. And you are part of the process. It’s great that you’re that good at QA, but you have to lift up your head and see what everyone else is doing. If you do your job great, but it’s not what the team needs, it’s the same as an awful work.

What can you do? Get some context. Talk to people. Understand what you’re building, why it’s cool and what makes it so important. Some might say it’s your manager job to tell you this stuff. But, he doesn’t have the time for that.

If you could talk to customers that would be great. Better than this, talk to everyone. Talk to marketing, coders, QA, design even finance guys. Try to understand where does the project stands inside the company. Is it a little pet project nobody cares? Is it the miracle-company-saving project everyone it’s expecting?

It’s easy to think none of this matters. At the end, you’re going to keep looking for bugs in the QA department. But you’re going to make a great work and the product it’s going to be a lot better.



One of my worst mistakes at my day job

I am sure you have heard it. Execution is everything. Ideas are worthless, it’s all about execution. Sounds easy. But sometimes it can be very confusing. Sometimes you execute a lot, but you don’t get the expected results.

Don’t get me wrong. One of the problems about the execution is that you do nothing. That’s the best problem you can have with execution. Because you can solve it very easy. Just do! Stop thinking about it, do! I have seen this problem. It’s kinda funny to talk with the person having the problem and listen him talk. He talks a lot. But you may find out, he’s doing nothing.

The hard problem, the awful problem. It’s when you’re doing thousands things a day. You don’t even have time to sleep. You’re just working, working and working. Seems like a easy recipe for success. But in the end, the results don’t work out. You may think is luck. You may think we are all playing a big game. Sometimes we win and sometimes we lose.

But the truth is, you’re not doing the right things. I’ve been there. I have worked a lot, and ended up with the “wrong” results. Notice the “”. That’s one of the hardest part. You just rewrote the app from C++ to Ruby on Rails on a weekend and your boss wants to kill you. It’s hard to understand. You just have made the impossible possible, and he’s screaming at you?

Think about it. Maybe that task was the one you liked. But maybe it wasn’t so important. Congrats, you’re a Ruby Wizard, but maybe all you needed to do was write some specs for the future features. Maybe that was what your boss wanted. There’s a whole debate about tactic and strategy. You can read countless books and attend seminars about this. Choosing what to do it’s and art, not all of us can’t figure out.

Remember your goals. What are you trying to do? Starting a business or showing the world nobody can write Ruby like you? I know, I love those technical tasks that seem going to the moon like a piece of cake. But think about your time, think about where you’re going. Are you going forward? Or are you happy making infinite circles?

I have found a little trick. Ask. Communicate. Tell your boss. It’s not micromanage. You are not a moron. Make it a conversation, a story. Tell him what you’re planning. Tell him about the decision you have to make. He may have some good insights.

Take a minute today. Think about what you’re doing. Does it have an impact? Could you be doing something different? Is the goal nearer?


What keeps you going?

It happens almost all the time. Doesn’t matter if it’s easy or hard. Whatever you’re doing, you’re going to think about keep going or stop. Sometimes you may make up cool excuses. And if you keep repeating those excuses, they may seem real: Is this even worth it? This seems stupid. I thought I liked it, but now I am not sure.

Have you heard those excuses? Have you thought this about yourself, about what you are doing? I have. Sometimes. And it’s hard to explain the difference of these excuses in a startup and a day job. I have lived both side of the excuses. I had a theory about a certain relationship between these excuses and the low point in what you do. But, I don’t think these are dangerous. Because it’s pretty normal to think these stuff when you’re screwing up.

The dangerous excuses are the ones that pop up in the middle of a normal day. You’re just working and then: BAM! You start thinking about what are you doing, you start dreaming about millions of other cool stuff you could be doing. You start thinking about the greener grass on the other side of the fence. I fear that these excuses can keep growing and start changing your mind. Don’t.

I don’t think the low points are dangerous for your job/startup. Because when you are in a low point you start to fight back. Your survival instinct comes up and you do incredible stuff to keep yourself alive. The hard times is when you’re coasting. When everything is normal. You’re not growing, you’re just there.

I think those moments, coasting, are the ones where it’s hard to keep going. Think about it. Time seems to run slower. When you’re in a crisis, time flies, you hope the day had 24 hours more. The same happens when you’re in good times. You just can’t enjoy all the good times. When it’s in the middle, the days are longer.

I try to keep going. Sometimes I quit, sometimes I change, but I try always to keep going. I try to start only things I love and believe in. I think a lot when starting something. Then I try to remember all that stuff when I am making excuses.

Maybe there are thousands pieces of advice about how to keep on going. But I think it’s simple. Keep on going. Leave the excuses for later. Almost all the excuses vanish one or two days later. If the excuse keep on coming, think about it. But I doubt it.

Remember why you are doing this. Maybe tomorrow is going to be your big breakthrough. You never know.