Log in

No account? Create an account
Lindsey Kuper [entries|archive|friends|userinfo]
Lindsey Kuper

[ website | composition.al ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

What I will be doing this summer [Apr. 11th, 2010|06:16 am]
Lindsey Kuper

What a hypocrite I am! I make grand claims that I'm going to write about the internship interview process with radical transparency, but as soon as things get interesting, I evidently go right back to stony silence. Time to fix that.

As a programming languages researcher, I believe that a huge variety of software engineering problems can be fruitfully viewed as PL problems. I believe that at a lot of companies, over time, a standard-issue software engineering job can be made into a PL job, and maybe that will be my superpower someday. But this is a thirteen-week internship we're talking about, and that limits my choices a lot. For me, right now, thirteen weeks only seems like enough time if I know the job is PL-flavored from the start.

Happily, someone wants to give me such a job. I'm going to be working at GrammaTech this summer. They make static analysis tools that help people understand large software projects. They do a lot of work for organizations like NASA, where it's important that the code not be wrong. They're located in Ithaca, New York, which, I understand, is a beautiful place to spend the summer. A few people I know from the programming languages community have worked there. The internship itself seems promising: I think I'll learn a lot, and I really like all the folks there with whom I've had dealings so far. It looks like I will be working for Dave Melski on a software security-related project, which I think ties in neatly with some of the stuff I will be learning about with Amal eventually. I'll even get to hang out at Cornell and take a course this summer. Both work and the Cornell campus will be within walking distance of the apartment where I will be staying.

The thing about GrammaTech that really makes me excited, and that has been untrue of every other place I've interviewed, is that the very first question asked of me was "Tell me about your research." This is how researchers shake hands. It was exactly the question I wanted to be asked, and exactly the sort of thing that, for instance, Jane Street didn't ask.

I've had my eye on this internship for quite a while. (Putting "Scheme" on a job posting is a good way to get my attention; throw "compilers" on there, too, and I start salivating.) In fact, I applied shortly after I started grad school in fall 2008, hoping for a summer 2009 internship; I did the same at Streamtech and Jane Street. In each case, I got form letters of thanks and not much else. With another year of school under my belt, I applied at the same three places last fall for summer 2010. By that point, my application was apparently strong enough that all three of them wanted to talk to me, and I received offers from GrammaTech and Streamtech. To me, this is clear evidence that for me, grad school works, and that coming to grad school to study PL was the right thing for me to do. I wanted to have a shot at doing things like this, and it looks like I'm getting it. I'm very excited.


[User Picture]From: floydcollins
2010-04-23 11:14 pm (UTC)
I don't know if you'd call it programming language research or not, but I do tons of DSL type things a lot. We have tons of data, and trying to figure out rational interfaces to them, and define the universe of queries, how they should feel, and the like, is part of the engineering work I do. I even wrote up some algebras around the operators to make sure that the way I was doing evaluation order actually made sense! So, I agree that lots of programming / dev jobs can probably be turned into more than that.... they're just *very rarely* advertised that way. If you're smart, and they're smart, and the problem is solved with a pl tool, you'll get to build it :)
(Reply) (Thread)
[User Picture]From: lindseykuper
2010-04-30 03:28 am (UTC)
Man, DSLs crop up all over the place, and often it seems to be an "oops, when did this become a DSL?" kind of thing. I'm really interested in this unintentional-DSL phenomenon. I wouldn't go so far as to say that there's necessarily more to the PL approach than to other people's preferred approaches, but it certainly seems like a lot of hard problems, like concurrency, benefit from being considered at the language level. My research so far has been less about language design and implementation than it has been about language theory, but ultimately I'd like to do all three.
(Reply) (Parent) (Thread)