LEE TANG
*****.****@*****.*** 604-***-**** Redwood City, CA
SKILLS
Languages (in order of proficiency): Java, C, Python, C++, JavaScript, Octave, Scheme
Query language/Storage: SQL/PL, MySQL, DB2, GAE Datastore, JDBC
Internet Technology: TCP/IP, HTTP, FTP, XML, JSON, RESTful API
Web Development: jQuery, Java servlets, Django/WSGI, GWT, Twitter Bootstrap
Distributed Systems: hadoop
Source Control: Git, Perforce
Security/Testing: SSL certificates, OAuth, Selenium framework, Valgrind
EMPLOYMENT
Software Engineer, Fortinet Apr 2013 - current
Maintained and developed web data services that track and store more than 220 million virus samples.
Built reusable utility backend apps such as LDAP login, user group management, and server side data
table processing/rendering.
Modernize web apps with Ajax and jQuery to develop fast asynchronous experience to users.
Enhanced backend performance by writing and optimizing ORM/SQLs along with correct table/index
scanning to lower database IOs, reducing queries up to 60%
W rote unit testing to test back end functionality with 97% coverage and develop unit test generator that
parses source code and generates tests.
Software Developer test intern, SAP Jan 2012 - Aug 2012
Developed core feature, a job scheduler using threads for JIRA-Streamwork bridge web app.
Implemented JIRA data parser to convert HTTP JSON response to csv using Java and JSON libs.
Designed and developed the database to store OAuth tokens /Secret and background task metadata.
Contributed development of internal Selenium web automation framework by writing modules to test
Linux server configurations such as Streamwork connectivity and SSL certificate verification.
Performed manual/automated testing on Streamwork on-premise server, leading to over 150 bugs found.
Software Developer co-op, HSBC Software House Sept 2009 - Sept 2010
Implemented the core feature, financial prediction algorithm which forecasts the upcoming budgets.
Created the database schema and wrote stored procedures for financial web app backend database.
Enhanced the project tracking Java desktop application by building a headcount-tracking feature, which
allows managers to track budgets in real time instead of relying on 6-week-old published financial data.
PERSONAL PROJECTS
Little Schemer Interpreter, Python
Developed an interpreter for a subset of the Scheme language by writing a python generator lexer and
parser to evaluate user inputted Scheme expressions. The interpreter also has proper tail recursion so
the stack does not grow. One can also register on the fly new Scheme keywords to expand the
capabilities of the interpreter.
Machine Learning, Octave
Implemented neural network algorithm to recognize handwritings of digits represented by grayscale images.
Built a simple movie recommender to predict movie ratings by implementing logistic regression algorithm.
Network Programming, C
W rote a content-filtering proxy server consisting of a client and a server side to interface with web
servers and browsers respectively.
Built an FTP client that utilizes active mode file transfer using two TCP connections (command and data).
EDUCATION
University of British Columbia, Computer Science (BCS, 2011)
Upper level GPA: 3.7; Courses in Algorithms, Software Engineering, Database, Networking, OS, Stats