ExperiencesApril
2011 - Present, Senior Software Developer, Revolution Prep
Responsible
for specification, design and implementation of software.
- Designed and implemented new data server that all other internal applications retrieve data from. The objective of this project was to replace the existing legacy system, thus the tasks included analysis and migration of existing data and design and implementation of APIs to serve the data. This application was built using rails3, MySQL and redis.
- Designing and implementing new store application that customers and internal personnels use to purchase courses and items.
December 2006 - April 2011, Software Engineer, NASA Jet Propulsion Laboratory
Responsible for specification,
design and implementation of software for data center and operations.
- Redesigned and implemented new web portal for
NASA-JPL Physical Oceanography Distributed Active Archive Center (PO.DAAC)
using Drupal and Apache Solr. This web portal will be publicly accessible
and allows users to navigate through over a couple million granules we
have archived for years using faceted search. Web APIs to drive the portal
were also developed. The site can be accessed at http://podaac.jpl.nasa.gov/ .
- Redesigned and implemented Grails web
application for NASA-JPL Physical Oceanography Distributed Active Archive
Center (PO.DAAC) that fetches data from internal and external data
providers, archives and distributes them for scientists for their
researches.
- Developed software that monitors status of
data product generation for Phoenix Mars Lander mission. This software was
used in operation.
- Developed workflow manager implementation that
generates data products for Mars Science Laboratory mission. This software will be used in operation.
March 2006 - November 2006, Software Engineer, California State University, Northridge ITR
Responsible for specification, design and implementation of software, mainly the web-based applications, for student and staff/faculty.
- Redesigned and improved existing software download page for student and staff/faculty to make it possible to maintain the page without modifying the actual code by removing all hard-coded configurations and using configuration file instead. This resulted in reducing time needed for maintenance, from 4 hours to 30 minutes per change, since a change in code requires a lot of time whereas change in configuration file does not.
- Developed a module in Perl that authenticates student and staff/faculty using LDAP server, where the university manages all information about student and staff/faculty. The module resulted in a part of the software download page to provide a capability to authenticate users through web interface.
- Responsible for managing CVS (Concurrent Versions System) repository, a version control tool, for the software download page project.
- Developing J2EE application, using Servlet/Portlet and JSP technologies, which will
replace the current web page for the university. The application is designed to provide a capability to add a new content to the web page dynamically, whereas the current one requires all contents to be added statically, and possibly a change in code. The new application will result in reducing maintenance time, from 6 hours to 1 hour per change, since all contents will become possible to be created dynamically from the web.
May 2005 - August 2005, QA, Take-Two Interactive Software, Inc.
Responsible for testing video games and reporting bugs to developers. Responsible for validating games for each standard specified by each game console company, such as Sony, Microsoft and Nintendo.
- Involved in a process of testing phase for several published game titles.
- Improved quality of games by finding critical bugs and reporting them to developers before the release of the games, resulting in preventing the games from failing tests that console
companies would perform to make sure all games to be published are reliable enough. - Improved game play for published game titles by providing suggestions, such as redesigning of UI looks and layout, to developers. The suggestions resulted in adopted in
the games as better solution.
Education
Master of Science, Computer Science, California State University, Northridge, 2009 (Thesis: "MULTI-TOUCHJ: A WII REMOTE AND VIDEO PROJECTOR USER INTERFACE") Bachelor of Science, Computer Science, California State University, Northridge, 2006
Skills
- Proficient with programming languages including
Java, Groovy, Ruby, PHP, C, C++, C#, Python, Perl, JavaScript.
-
Extensive knowledge in web frameworks including Node.js, Grails, Ruby on
Rails, Sinatra, Tornado.
- Extensive knowledge in JavaScript/Ajax/HTML5.
- Extensive knowledge in databases including MySQL,
redis, CouchDB.
-
Participated in open source projects as well as
open sourced my thesis project under Apache License.
- Developed BREW application using C and C++ for
small device with limited resources, such as cell phone and PDA.
- Extensive knowledge in J2EE Servlet/Portlet and
JSP technologies.
- Extensive knowledge in system level programming on
Unix/Linux operating system, including a use of forking, shared memory,
semaphore and signals.
- Deployed mail server (POP3/IMAP) using MySQL
database for managing mail users, instead of managing them with Unix user
accounts.
- Extensive knowledge in Object-Oriented paradigm.
- Extensive knowledge in software design and
architecture using UML.
- Extensive knowledge in computer graphics
technologies including OpenGL.
- Proficient with build tools including Make,
Maven, Ant.
- Proficient with source code management tools
including Git, Subversion.
- Excellent communication skills.
- Fully fluent in Japanese.
- Love FOSS culture!
|
|