Lihan Li
Coding Philosophy
- Avoid unnecessary complexity
- Don't repeat yourself
- Optimize when needed
- Write tests
Work Experience
Senior Software Engineer (Backend)
- Ad Hoc
- Remote, July 2016 - Present
- Worked on digitizing and modernizing various VA.gov forms and tools
- Developed a tool for filling out PDF forms that was utilized by multiple teams to work with several different forms
- Helped upgrade the Rails stack from 4.0 to 5.2
- Software stack: Rails 5.2, PostgreSQL, Redis, RSpec
Full-Stack Developer
- Unpakt
- New York, NY, April 2014 - February 2016
- Optimized mover comparison logic (the main feature of the site) to be 9x faster
- Made all integration tests pass consistently and run 3x faster
- Major features written (frontend and backend): financial tracking system, mover availability and price adjustment calendar, public mover profiles, affiliate widget, mover comparison page, mover locations page, and more
- Software stack: Rails 3.2, Backbone, jQuery, RSpec, Cucumber, Capybara, Jasmine
JavaScript Developer
- AppFigures
- New York, NY, February 2013 - November 2013
- Converted the Hourly Top Charts and App Store Reviews pages to AngularJS and added new features
- Wrote the first integration tests using Ruby and Capybara and a framework for seeding/cleaning the database
Software Engineer
- ShopKeep
- New York, NY, June 2011 - May 2012
- Worked on the Rails API server, Android/Mac point of sale app (written in Java), and iPad point of sale app
Open Source Contributions
Education
- University of Virginia 2002-2006
- B.Sc. Computer Science
- Minor Psychology