jeffrey schaefer

software engineer / technical director / UX

CORE Languages

  • Javascript/Typescript

    I have focused the majority of my development effort over the last several years writing Javascript and Typescript. I find endless inspiration and power in the Node and web ecosystems. I play well with React or any other functionally inspired javascript libraries or frameworks.
  • C++

    I really enjoy working with more recent (c++11) versions of C++. I mostly use the langauge for building Unreal and Node.js solutions, as well as extending Blender when the Python API doesn't cut it.
  • Python

    Python made programming fun for me. It was my swiss army knife for a long time. It taught me the power of REPL based programming and how a well-designed language could help make building programs less painful. It has since been replaced with Clojure in that regard. I now use it mostly for programming and extending Blender, and often transpile using Hy lang.
  • Clojure / Clojurescript

    Clojure is the most productive general purpose language I have ever used, so I use it on as much as I can. It's combination of data oriented philosophy and functional standard library improves iteration time and increases code clarity (by mostly reducing code size).
  • HTML/CSS

    I often take it for granted, but these two basic languages help me prototype complicated designs and interfaces very quickly, which is one of the most powerful ways that I can keep my work moving forward.
  • PHP

    PHP has a lot of tooling and platforms around in the web application space that still make it very useful to me.

Essential Tools

  • Emacs

    Emacs is one of my favorite pieces of software. Most of my development happens inside of here. It has helped me adapt to many environments.
  • Linux

    I switched my personal systems all over to (Debian, now Arch) Linux in 2007, and it has made me a happier, saner computer user. I still have a Windows virtual machine setup for some Adobe products, but most of my design and development workflows are Linux oriented.
  • Git

    I use Git constantly. It gives me confidence to make mistakes, explore ideas, and communicate concepts with more clarity. I sometimes will use some variations of Git flow for team based collaboration. Gitlab and magit are my favorite git applications.
  • Unreal

    Unreal is an amazingly flexible graphics renderer and development environment for building many highly interactive graphics based solutions. I have spent the last year extending the editor, so I have a large share of knowledge around the Editor and some official Plugins (Remote Control, LiveLink) and Blender integration.
  • Blender

    My other favorite piece of software. I enjoy modeling, texturing, animating and rigging in Blender. I spend a lot of time drawing using grease pencil, which I find very helpful in whiteboard session's/communiating ideas to team mates.