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: Ubuntu Linux, OS X, Git, JavaScript, Closure Compiler, Closure Library, Node, NPM, Python, Google (internal software development and big data tools), Sublime Text 3Founder
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: Ubuntu Linux, OS X, Git, Python, Django, Sublime Text 2Software 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: Windows 7, Linux, JavaScript, C++, STL, Boost, OGR, Visual Studio, Python, CherryPy, Sublime Text 2, KML, Google Earth, MapInfo, MercurialDirector 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: Eclipse, Emacs, Ant, Apache, Tomcat, Jetty, Google App Engine, Java 6, GWT, JFreeChart, iText, WebDriver, JUnit, Google Maps API, ESRI’s ARCGIS, Google Visualization API, YUI Charts, ExtJS, Google Maps, HTML/CSS, FindBugs, Emma, Hudson, SVNProfessional 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: Java 6, JSP/Servlet, Axis, ChartDirector, HTML/CSS, JavaScript, MS Windows (Server) OS, GWT, YUI Charts, Apache, TomcatSoftware 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: SUSE/Debian Linux, Solaris, C++, Java, Emacs, Eclipse, VHDL, CVS, Bash, Autotools