Software Engineer
2014 - PRESENTGoogle- Implemented, tested, documented, and released transit directions services in Google Maps JavaScript API as featured on the Google Maps API blog.
- Implemented, tested, and released clickable transit icons—displaying line information and local branding of stations on the Google Maps JavaScript API internationally. This high-impact feature ranked for several years in the top five public issues.
- Detailed analysis of API load-times: time to first map tile, time to whole map rendered, and time to interactive at different percentiles. Conducted A/B tests for pre-rendered non-interactive, static maps, and maps with split tiles. Implemented, released, and tested performance improvements leading to ~30% load time improvements for the 75th percentile.
- Implemented the Google Maps API section of Google internal usage dashboard with interactive data exploration. Viewed weekly by top management.
- Coordinated the major API reference overhaul including rewrite of more than 100 samples.
- Fixed several out-of-memory crashing bugs on iOS under high-stress API usage in difficult to reproduce or analyze environments.
- Initiated and prototyped the new Maps API product embracing the existing open source mapping library, but not yet released.
Technologies: Sublime Text 3, Python, NPM, Node.js, Google Closure, Closure Compiler, JavaScript, Git, OS X, Ubuntu LinuxFounder
2012 - PRESENTEducation4Progress- Worked on a personal charity initiative to repurpose old laptops and tablets with education software for developing communities.
- Set up the Khan Academy’s offline education website on more than 40 donated laptops delivering hundreds of lessons and exercises to over 100 students in Masaka, Uganda, and Jamnagar, India.
- Installed an offline wikipedia as well as a Python interpreter and tutorials on recycled hardware to facilitate self-directed research and programming experiments.
- Campaigned continuously for hardware donations through personal and social media networks—resulting in more than 40 contributions of functional laptops, tablets, smart phones, and routers.
- Partnered with local charities, schools, and libraries to maximize reach and impact.
- Contributed the OS X installation guide and installation script improvement to an open source project for the Khan Academy Lite.
Technologies: Sublime Text 2, Django, Python, Git, OS X, Ubuntu LinuxSoftware Engineer
2011 - 2014Biarri- Productized the software prototype—optimizing NBN's fiber cable routes and automating fiber planning.It was an AUD 40 million project; deployed at a large scale at NBN Co.
- Implemented an I/O in C++ with OGR (geospatial vector data abstraction library) according to NBN'’s standards: 5 input layers, 15 output layers in KML, MapInfo MID/MIF, and Oracle Spatial.
- Managed fortnightly releases and introduced continuous integration with Jenkins resulting in a reduction of patched releases from 83% to 5%.
- Implemented several graph algorithms and automation scripts in Python. The Telstra duct reservation script reduced a 3-day effort to 1 for approximately 30 fiber planners every 2 weeks.
- Created a multithreaded integration test framework in C++ with boost; the thread pool reduced the integration test execution time from 30 to 10 minutes.
- Provided on-site customer support at NBN Co for 1-2 days a week and held 2-day training workshops every 6 months.
- Implemented a web prototype using Google Fusion Tables and the Google Maps API, and demonstrated it at a director’s sales tour in the USA.
Technologies: Mercurial, MapInfo, Google Earth, KML, Sublime Text 2, CherryPy, Python, Visual Studio, Boost, Standard Template Library (STL), C++, JavaScript, Linux, Windows 7Director of Innovation
2008 - 2009Space-Time Research- Proactively developed web-based data visualization prototypes resulting in fully-fledged projects whose success led to the development of a new core product (SuperVIEW) within the company.
- Managed a 5-person development team implementing software product SuperVIEW (interactive data visualization); reported to the CEO.
- Prototyped numerous data visualizations leveraging tools such as GWT, YUI Charts, Google Maps, and Visualization APIs resulting in several long-term contracts. Evaluated requirements, prototyped, and partially implemented the Cancer Council of Victoria’s interactive cancer statistics.
- Architected the evolution from the one-off data visualization projects to an XML configuration driven data visualization product SuperVIEW (Java, GWT, XSD, JAXB, charting libraries, and APIs). Established processes for quality-focused software engineering—with code reviews, code style, unit and system testing, code-coverage, and continuous integration.
- Initiated, co-designed, and promoted RESTful cross tabulation data access API inspiring partners to develop traffic visualization and staff performance measurement tools.
- Presented to the board of directors, customers, and at OECD Seminar's “Innovative Approaches to Turn Statistics into Knowledge” resulting in various sales leads.
Technologies: CSS, Charts, YUI, Visualization, ArcGIS, Subversion (SVN), Hudson, FindBugs, HTML, Google Maps, Ext JS, Google Maps API, JUnit, WebDriver, iText, JFreeChart, GWT, Java 6, Google App Engine, Jetty, Apache Tomcat, Apache, Ant, Emacs, EclipseProfessional Services Consultant
2007 - 2008Space-Time Research- Provided domestic and international on-site customer support.
- Did data modeling and data preprocessing for crosstabulation (star schema), training, and client/server software deployment.
- Implemented a full web-based solution for the Norwegian Seafood Export Council’s interactive trade data visualization leading to further projects with the customer.
- Prototyped an interactive, web-based data visualization for the Australian Institute of Criminology’s drug and crime statistics resulting in a large engagement with a customer.
Technologies: CSS, Charts, YUI, Windows Server, Apache Tomcat, Apache, GWT, JavaScript, HTML, Axis, Servlet, JSP, Java 6Software Engineer
2004 - 2006On Demand Microelectronics AG- Designed and implemented cycle-true, register-true simulators for 3 VLIW processor architectures in C++ with STL, templates, function pointers, and shared libraries.
- Built a test environment for VHDL (hardware description language) processor models creating random tests. Matched the VHDL output with my own simulator resulting in high-quality releases.
- Targeted the performance improvements leading to minimized execution times for a compiled solution (simulator creates, compiles and executes C program) vs. minimized start-up times for interpreted solution (an on-the-fly instruction word interpretation).
- Developed an installable package with autotools according to open source standards.
- Created interfaces for dynamically loadable shared libraries to integrate external memory systems leading to a successful collaboration with a third party hardware design company.
Technologies: Debian Linux, SUSE, AutoTools, Bash, CVS, VHDL, Eclipse, Emacs, Java, C++, Solaris