← All conversations
People & ideas

Scale By The Bay 2018: Francesc Campoy Flores Interview

Francesc Campoy Flores ↗With Alexy KhrabrovNov 20186:58

FunctionalTV interview with Francesc Campoy Flores.

Follow the words

Read the transcript

so I am Franciscan poi VP of product and so I am Franciscan poi VP of product and developer relations that sourced which developer relations that sourced which is a company with headquarters in Madrid is a company with headquarters in Madrid but I do live here in San Francisco so but I do live here in San Francisco so we're building tooling for large-scale we're building tooling for large-scale analysis of source code and that sounds analysis of source code and that sounds pretty boring but it is actually our pretty boring but it is actually our idea is to add machine learning on top idea is to add machine learning on top of these analysis which allows us to do of these analysis which allows us to do predictions and build more intelligent predictions and build more intelligent tools if you if you want and that that tools if you if you want and that that intelligence comes from training neural intelligence comes from training neural networks on huge amounts of source code networks on huge amounts of source code we have like a data set that we use we have like a data set that we use normally it's around 3 terabytes of normally it's around 3 terabytes of source code and then we're able to use source code and then we're able to use those models that we've trained to those models that we've trained to predict a bunch of different things and predict a bunch of different things and we're building an assister code review we're building an assister code review so it's a little bot that reviews your so it's a little bot that reviews your code before a human gets the chance to code before a human gets the chance to actually see it and it's going to detect actually see it and it's going to detect a bunch of different things like for a bunch of different things like for marrying there's also it's also able to marrying there's also it's also able to use a bunch of different tools that are use a bunch of different tools that are not based on machine learning but we not based on machine learning but we also use machine learning to try to also use machine learning to try to predict bugs to correct naming to try to predict bugs to correct naming to try to figure out whether two pieces of code figure out whether two pieces of code are similar enough that they should are similar enough that they should actually be merge into one all of these actually be merge into one all of these different things which are things that different things which are things that human reviewers normally say but math human reviewers normally say but math tools do not detect at all so it is hard to choose I'd be in so it is hard to choose I'd be in between the data data pipelines and between the data data pipelines and programming in general because what programming in general because what we're doing is learning from programming we're doing is learning from programming languages by using huge data pipelines languages by using huge data pipelines so we can in between both we do a lot of so we can in between both we do a lot of language analysis we do a lot of machine language analysis we do a lot of machine learning but we also do a lot of big learning but we also do a lot of big data like downloading all of github into data like downloading all of github into our data centers and things like this so our data centers and things like this so it's hard to choose both here we both so I've been sharing best practices so I've been sharing best practices around how to analyze source code to do around how to analyze source code to do machine learning so when you think about machine learning so when you think about it source code can be seen in many it source code can be seen in many different ways one of them is obviously different ways one of them is obviously it's just a file so it's made of bytes it's just a file so it's made of bytes so you can learn from those bytes right so you can learn from those bytes right but then you can also use a scanner and but then you can also use a scanner and try to learn from the tokens so every try to learn from the tokens so every single one of the words has more meaning single one of the words has more meaning than just a byte separately but also than just a byte separately but also it's a programming language so you can it's a programming language so you can parse it and then have an absolute parse it and then have an absolute interest rate so now you can learn from interest rate so now you can learn from trees but also you can add extra trees but also you can add extra annotations on top and say like what annotations on top and say like what what is defined where semantic what is defined where semantic references you can add control flow references you can add control flow graphs there's a lot of different things graphs there's a lot of different things that are actually gonna make that tree that are actually gonna make that tree into now a graph so you're gonna need to into now a graph so you're gonna need to learn from graphs and basically I've learn from graphs and basically I've been discussing a little bit different been discussing a little bit different the different academia research that is the different academia research that is around this and how that research can be around this and how that research can be used to build better tooling for used to build better tooling for developers developers [Music] so I mean I've been going around today so I mean I've been going around today and trying to see what people are and trying to see what people are working on on specifically language working on on specifically language analysis I think it's it's very analysis I think it's it's very interesting because every single interesting because every single language comes with different and language comes with different and different techniques how to parse it and different techniques how to parse it and like the type systems are very different like the type systems are very different and coming to scale by the way I I was and coming to scale by the way I I was expecting to see a lot of functional expecting to see a lot of functional programming which is quite different to programming which is quite different to what I normally do I normally do more what I normally do I normally do more like go and Python on languages like like go and Python on languages like that and that was actually very that and that was actually very interesting like seeing a little bit interesting like seeing a little bit what people on the dark side of what people on the dark side of functional programming are working on okay so I have Britton Scala I actually okay so I have Britton Scala I actually went through a I think it was Coursera went through a I think it was Coursera or something like that or something like that with Marcia Dorsky so that was a very with Marcia Dorsky so that was a very very good class and I really enjoyed it very good class and I really enjoyed it since then I haven't used scholar that since then I haven't used scholar that much but it was a very good first taste much but it was a very good first taste of what functional forum it was and of what functional forum it was and after that I did go on and I learned after that I did go on and I learned Haskell and I learned like closure and Haskell and I learned like closure and things like this to try to understand a things like this to try to understand a bit better so even though Scala didn't bit better so even though Scala didn't necessarily change the way a program it necessarily change the way a program it actually kind of took me into the path actually kind of took me into the path of Haskell which definitely changed a of Haskell which definitely changed a lot of the way I think about programming lot of the way I think about programming in general and how do I expect the world in general and how do I expect the world to be in 15 years in programming I think to be in 15 years in programming I think that if my company's successful at least that if my company's successful at least like the tooling is gonna be very like the tooling is gonna be very different right and hopefully we're different right and hopefully we're gonna be able to use machine learning gonna be able to use machine learning not only to have the tools that allows not only to have the tools that allows us to better understand source code but us to better understand source code but even to design programming languages and even to design programming languages and I think that that's a very interesting I think that that's a very interesting thing right like imagine we're imagine thing right like imagine we're imagine if we were able to find the best problem if we were able to find the best problem in language for us that is strict enough in language for us that is strict enough that you know it's a problem which is that you know it's a problem which is not a natural language but at the same not a natural language but at the same time reduces the amount of not time reduces the amount of not complexity but the amount of boilerplate complexity but the amount of boilerplate that we need to write every single that we need to write every single foreign language has boilerplate and all foreign language has boilerplate and all of the ways we've design from languages of the ways we've design from languages so far was basically by I mean there's so far was basically by I mean there's research there are some UX studies but research there are some UX studies but it's never the thing that that powers it's never the thing that that powers the language is in general there's the language is in general there's something else that the language is something else that the language is trying to do so I would like to see that trying to do so I would like to see that in 15 years maybe see whether machine in 15 years maybe see whether machine learning has an impact on how we design learning has an impact on how we design primal urges so one of my favorite things is the fact so one of my favorite things is the fact that I actually live in San Francisco so that I actually live in San Francisco so I just walked from home I was like 10 I just walked from home I was like 10 minutes so that's it that was great minutes so that's it that was great no but I actually like the fact that I no but I actually like the fact that I in the time let me hear it in the time let me hear it they want so I've actually met lots of they want so I've actually met lots of people that were doing very interesting people that were doing very interesting things right and now necessary speakers things right and now necessary speakers but also people in the audience it's a but also people in the audience it's a very nice place to to make to make very nice place to to make to make relationships going around talking to relationships going around talking to people and explain what you do and yeah people and explain what you do and yeah I've met lots of interesting people I I've met lots of interesting people I have my pocket full of business cards so have my pocket full of business cards so that was very very good yeah I'd say that was very very good yeah I'd say yeah people yeah people [Music]

Recovered English captions. Automatic transcription may contain errors.

Keep exploring

Follow the guest, their work, and the ideas behind this conversation in the Devreal knowledge graph.

Francesc Campoy Flores on Devreal ↗
Independent by design

Your player.
Your subscription.

One permanent feed. Listen in the podcast app you love, with the conversations always at home here.

https://struct.fm/feed.xml
113 audio episodes available in the feed.