Ryan Jung

More on Me

I'm Ryan! I'm finishing my final year at Northeastern University studying Computer Science. I'm currently leading a student organization that develops software for nonprofits in Boston. I'm a big programming languages nerd, and I'll be doing PL research in the Fall (more details to come).

On Programming

I have a pretty simple worldview when it comes to programming:
  1. Programming is about communicating ideas; it requires clarity, concision, and a healthy dose of empathy.
  2. “Good programming” is the creation of software that relies on systematic thought, planning, and understanding from the very beginning, at every stage, and for every step.
  3. We have a moral imperative to make software with a positive impact on the world.

FAQ

Q: What's your favorite programming language?

A: My least hated programming language is Racket.

Q: How do I join Code 4 Community?

A: Apply! Show that you have a love of learning. The recuitment overview and role description on our website are very comprehensive. If you're really curious about the rationale behind the scenes, see my blog post [An Ideal Candidate]("/thoughts/an-ideal-candidate.html")

Q: How do I get better at <insert here>?

A: Practice, practice, practice.

Q: Why do you like functional programming so much?

A: When functions are the base unit of abstraction, it becomes effortless to compose behaviors and refactor code. Most of your functions will already be purely functional, making unit testing and test driven development easy. If you really need imperative stateful code, you can always escape to set! and hack your way through. This question is sometimes meant as: "Why do you dislike object-oriented programming?" Well, I actually like objects (when they're needed)! Its no accident that "good" OO code tends to emulate the immutable applicative style common in standard functional programming and "bad" OO code is an 1000 line minefield of for-loops and stateful classes. Functional and object-oriented styles are also not mutually exclusive, see Scala, F#, and Racket.

Q: What do you do besides coding all day?

A: Nothing particularly noteworthy. Although, I've done a lot of things besides coding! But did you know that I was also a(n):

  • After-school teacher
  • Collegiate Starcraft II player (D1 Terran & Zerg)
  • Mediocre game developer
  • CAD designer for a high school gym