Skip to content

Instantly share code, notes, and snippets.

@jneen jneen/resume.md Secret
Last active Nov 25, 2018

Embed
What would you like to do?

Jeanine Adkisson

Programmer, languages and tools specialist

tel:+1-510-578-8948
mailto:jneen@jneen.net
http://jneen.net/
http://twitter.com/jneen_

What I'm looking for

Toronto, preferably with visa sponsorship.

I am happiest working on compilers, tools, library/framework code, or build systems. I especially enjoy writing compiler frontends and designing tool interfaces for programmers. I am also quite good at it - I've been solving problems like these for about 9 years and have a number of successful libraries and languages under my belt.

In more detail, what I really love doing is almost product design in a way, but for technical users - users who have a certain amount of expertise in something, and are willing to work with and learn a system. What fascinates me is getting at who is using a library, interface, dsl, understanding where they're coming from - what tools they're used to, what they expect, how they formulate a problem - and then making something small, useful, and beautiful that speaks their language.

Relevant Experience

GitLab, Inc.

  • Maintained the Rouge syntax highlighting gem (on average 200 open issues and 100 open pull requests)
  • Unblocked several permission-based features by refactoring to a Policy-based approach
  • Expanded support for comment-by-email to MS Exchange users, as well as for many users whose email systems are not configured in English.
  • Designed and pitched the UX for a comprehensive suite of moderation tools

OpenCounter (1-week consultancy)

  • Paired with an OpenCounter dev on their in-house calculator language to:
    • Implement a type checker with reason-tracking for legible error messages
    • Implement a runtime tracer
    • Thread source location info through the existing parser and type checker for location-aware error messages

CrowdStrike, Inc.

Nov. 2015 - Jun. 2016

  • Designed and implemented a regular-expression / glob syntax for the company's in-house language. Saw the feature through design, organized a review by its internal users, and shipped an implementation.
  • Refactored a hand-written multilingual code generator into a straightforward, traceable template system.
  • Improved compiler code through the use of dynamic variables.

GoodGuide.com

Feb. 2011 - Feb. 2012, Feb. 2013 - Oct. 2015

  • Designed and built critical tools for the science team. Authored an in-house declarative data language, including a constraint-solving type checker, optimizer, and continuation-based sequencer, with a pluggable data layer
  • Fixed long-standing wrong-data bugs by writing a safe concurrent reflow system to update derived data based on fresh data
  • Increased site stability by enabling separate staging, demo, and production environments
  • Solved major process bugs with a switch from mercurial to git, including giving talks and training coworkers
  • Relentlessly fought slog with quality code, established a culture of code review, led refactoring initiatives

Metta Mentors / ExperiMentors

Jun. 2011 - Aug. 2011, Jun. 2012 - Aug. 2012

  • Designed and facilitated workshops for 3-7 live-in participants for 10 weeks
  • Ran house meetings and facilitated the creation of shared agreements and processes
  • Mediated and resolved conflicts between participants and other house members
  • Designed and implemented the application and interview process
  • Welcomed and oriented international participants

Desmos.com

Mar. 2012 - Aug. 2012

  • Boosted MathQuill's rendering performance by an order of magnitude by replacing the hand-coded parsing layer with Parsimmon
  • Worked to get Desmos using the main branch of mathquill by creating a template system for user-defined commands
  • Factored out complex browser input-handling in a cross-browser way, resolving longstanding issues with international keyboards and mobile browsers
  • Rebuilt several ad-hoc build systems using a central Makefile

Causes.com

Feb. 2010 - Dec. 2010

  • Worked on a small team to build wishes.causes.com
  • Transfered the physical servers to a new datacenter
  • Automated the full server build cycle: power-cycle, dhcp, dns, pxe booting, puppet provisioning, and deploy
  • Provisioned a static assets cluster behind a squid reverse-proxy
  • Replaced the single memcached instance with a consistently-hashed cluster
  • Configured and provisioned the A-10 loadbalancers

Talks

Tulip: a Language for Humans at StrangeLoop 2016. (slides)

How to Tell If You've Accidentally Written A Language (And What To Do About It) at clojure/west 2015. (slides)

Variants are not Unions at clojure/conj 2014. (slides, follow-up post)

Parsing With Skeleton Trees Trello Tech Talks, Oct 2016. (slides)

Education

  • University of California, Berkeley. Double major in Mathematics (Pure) and Music. 3.57 UC GPA, 4.0 Mathematics GPA. Graduated: December 2009

Skills

  • Languages: English, Japanese, some Spanish

  • I can code in: ruby, javascript (node + browser), bash, python, haskell, ocaml, clojure (but I try to familiarize myself with the semantics and salient features of all languages)

  • Technical things I'm good at browser mumbo jumbo (html/css/js/jquery), rails, type systems, parsing, semantic analysis, concurrent programming, unix

  • Leadership skills

    • Organized a housing cooperative, facilitating meetings, generating buy-in for decisions
    • Conflict resolution
    • Public speaking

Open source code I am proud of

  • tulip (RPython, C) An untyped functional language that I've been kicking around for about 3 years. The design goals are to balance repl ergonomics with viability as a general purpose language. The current design is centered around open variants using "tagwords", pattern matching, and versatile left-to-right chaining.
  • Rouge: (ruby) A syntax highlighter for Ruby, whose output is compatible with Pygments stylesheets. Includes lexers for over 150 languages.
  • Parsimmon: (javascript) Originally written as part of MathQuill, Parsimmon is a monadic parser combinator library for javascript.
  • Parsy: (python) Parser combinators for Python 3, taking advantage of bidirectional generators for an API similar to Haskell's do-syntax
  • Mathquill (javascript) gui editable math in the browser.
  • Pjs: (javascript) Classes for Javascript that you'd actually use. Basically it's prototypes with the bad parts taken out.
  • Ry: (bash) the simplest possible virtual environments for Ruby

Non-sequitur interests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.