Community Profile: Laurent Christophe

Community Profile: Laurent Christophe

Community is a fundamental part of AppMap. Our community members and contributors span the globe, and play a key role in helping us make life better for developers. This blog series profiles members of the growing AppMap community and shares how they use AppMap in their daily work. Enjoy getting to know everyone! For more information on the AppMap community or to join us, click here.

Laurent Christophe

LinkedIn, Github, Website

On Getting Into Software Development

I studied engineering at ULB, the French-speaking university in Brussels. I fell in love with programming and decided to specialize in computer science for my master’s degree.

I mostly develop in JavaScript, which is a bit of a paradox because I also really enjoy type systems. I love meta programming, too, implementing different layers within the same program and making sure they interact nicely.

Haskell is probably my favorite language, I’ve actually taught it for years at the VUB. My work for AppMap is actually my first experience programming outside academia!

On Getting a PhD

When I was doing my master’s thesis, Wolfgang De Meuter asked me to join his Software Languages Lab and get my PhD. Initially, I was interested in studying type systems and static analysis, but I’ve since found static analysis to be like a black box. Developers often struggle to interpret static analysis and too often, the analysis isn’t immediately actionable. So in practice, advanced static analysis is rarely applied outside the realm of safety-critical applications.

Now my PhD is focused on dynamic analysis. In fact, I’m currently working on a solution to implement dynamic taint analysis. Here’s some quick background: Mutable values (aka objects) are easy to track, but immutable values (aka primitives) are much more difficult. Languages often provide abstractions to prevent users from differentiating between two structurally identical immutable values. For instance, the string “foo” can be created multiple times during a program execution. One time it may be a user name, but another time it may be a password. It’s clear these two data don’t carry the same sensitivity level, even though they’re structurally identical. This differentiation is the crux of my PhD work right now.

On Personal Preferences

Spaces all the way! Also I’m team dark theme, for my delicate eyes 👀

My favorite keyboard shortcut is cmd-tab, so I can switch between windows whenever someone sneaks up behind me and I’m supposed to be working!

On Finding AppMap

As part of my PhD, I implemented a general-purpose code instrumenter. Petr, AppMap’s Head of Product, came across it and reached out to me because of it!

I jumped at the opportunity to work with Petr and the AppMap team on AppMap. I think one of the most powerful use cases for the product is using it to understand code you didn’t write yourself.

On Contributing to AppMap

Right now I’m working on the soon-to-be-released and super exciting AppMap JavaScript agent!

I’m really looking forward to exploring directly streaming code objects and events to AppMap servers. (Right now, the agents write AppMap Data locally on the file system and then you can upload these files to AppMap servers). I’m actually working on this capability for the JavaScript agent, but as of now it can only be used locally (the server can’t be a remote host).

I love how enthusiastic and friendly the AppMap community is. I really appreciate how AppMap has opened up its user base and welcomed people like me to contribute so actively. It’s amazing to witness how people find different, innovative use cases for tools at their disposal, like using AppMap as a record-and-replay tool.

On Life Outside of Work

I like to play video games, but I have a 2 year old daughter so I don’t have much time for it these days. That’s probably a good thing, I never feel great when I game too much. I picture my grandfather looking down at me with a disapproving look telling me, “Mon gaillard, you must play your cards right!”

I also coach kids in my local swimming club. We’re terrible! But we have great team spirit, which I wouldn’t trade for anything. I’m actually a retired competitive swimmer myself. Oh, and I also organize clandestine fight club meet-ups in my basement 2-3 times a week. We do French boxing and amicably punch and kick each other in the head 😂 I find it surprisingly relaxing after a hard day of work and parenting!

AppMap logo Get AppMap