I am a software engineer primarily interested in programming languages, functional programming, program synthesis, type theory, universal algebra and startups (not necessarily in that order!). In the near future, I want to combine as many of these as possible.

Right now I'm an engineer at Esper, an early stage startup in Palo Alto. We use OCaml on the backend, which is pretty neat.

252 Actions

How have languages influenced CPU design?@NikC: I was thinking that the addu and subu instructions (the ones that don't check for overflows) were the ones that were added to make C happy. Of course, I don't really know--we only covered it vaguely in lecture and I'm certainly no expert in architecture :P.

Aug1

comment

Legitimate use for IRC botsLambdabot in #haskell is a great example of a good bot: it does stuff like running haskell snippets, figuring out the types of statements and even rewriting functions in point-free style. People use it there all the time.

What are good mathematical formulas to know for programming?@MattEllen: It lets you solve recurrence relations that can help you find the complexity of recursive algorithms. This is particularly important when writing a "divide-and-conquer" style algorithm. Roughly speaking, you can use the master theorem to get the complexity if you know the complexity of each "step" and the branching factor.

Why are data structures so important in interviews?@user12889: Pretty much everything in CS can become arbitrarily difficult :). That's why it's such a fun field. Of course, being arbitrarily easy is another matter entirely... But that is a very good point, especially for interviews.

What are the best practices regarding unsigned ints?Another solution would be to require you to manually cast your numbers as appropriate. This is what Go seems to do (I've only played around with it a tiny bit though), and I like it more than Java's approach.

What does it mean if a job requires a “Bachelor's degree in Computer Science or related field”?Keep in mind that a lot of these people predate CS as a field. The very first CS program to actually have that name was in 1953. I imagine it took a while after that for CS programs to spread to other universities. But yeah, there is no question that a mathematics education can produce a great programmer (as well as other fields like Physics or EE). Also, one Turing award winner studied Political Science, of all things, but I think that is just a coincidence.

Jul3

comment

The most mind-bending programming language?One surprising thing about Prolog is that a basic prolog interpreter is actually surprisingly simple to implement. The fundamental algorithms behind it (e.g. unification and resolution) turned out to be much simpler than I thought they would be.