Senior Software Engineer @ From September 2015 to Present (2 months) San Francisco Bay AreaSenior Software Engineer - Platform @ Build and support platform/backend features and technical infrastructure to support millions of UP users. The platform team also builds REST APIs that we expose to external partners (via Oauth 2.0) for richer experiences (till date there are more than 3000 applications built on the platform). Duties also include hiring, helping onboard and mentor new engineers.
Stack: Python, Cassandra, MySQL, Solr, Git, AWS.
Apart from general feature building and scaling, here are some of the major initiatives I lead or was a part of:
* Designed and built the backend and APIs for a generic Timeseries store (Cassandra + MySQL), which is intended to be a highly-available storage for any timeseries data (heartrate, co2, etc) posted by our applications and partners. This acts as the backend for many future integrations like the recently announced partnership with Huawei (https://jawbone.com/blog/huawei-joins-platform/) and the more general Open Device Protocol (https://jawbone.com/blog/our-up-open-device-protocol/)
* Gather requirements from firmware teams and help build the backend for over-the-air firmware updates for our new (UP2/UP3/UP4) bands (https://jawbone.com/blog/up3-wearable-heart-rate-monitor/).
* Platform lead for the major food/nutrition related release in July 2014, which was a result of a large cross-functional effort, needed multiple new APIs, and an all-new food score metric (https://jawbone.com/blog/conversation-jawbones-nutrition-pm/) From October 2013 to September 2015 (2 years) San Francisco Bay AreaSenior Software Engineer @ Lead for the server project. Re-architected the server to be REST-based, message oriented, more scalable and easier to deploy.
Stack: Java, Maven, Nginx, Jetty, Jersey, Guice, PostgreSQL, RabbitMQ, Statsd, Ubuntu.
Some ancillary backend stuff I have written:
* Ruby server on OpenIndiana (an OpenSolaris fork) to support disk-less operation for our custom hardware nodes. It dynamically manages ZFS block images, which are exposed via iSCSI. The core server and onboarding tools interface with this server via a REST interface.
* Java Scoring Server to score a client’s network characteristics (ping, bandwidth, udp, tcp) w.r.t a datacenter.
* Java DHCP server for the custom hardware nodes in our datacenters.
Some non-server stuff I did:
* The entire jQuery/JavaScript browser frontend for the previous iteration of our service.
* A Windows-based cross-browser browser plugin (NPAPI and Activex based) using C++ and Firebreath. From May 2011 to October 2013 (2 years 6 months) Software Engineer @ Enhanced the Email Archive product over a 12-month release cycle that featured scalability enhancements to support exponential growing email data (into the many billions) and migration tools to a new search & indexing platform.
Java, Jython, PostgreSQL, Microsoft FAST 4, 5.
Part of the DevOps team since Jan 2011 that acted as the first line of defense for the SaaS offering by monitoring all production datacenters for health. Deployed multiple emergency hot-fixes, debugged and solved performance bottlenecks, and was part of the ‘pager-duty’ cycle.
Java, JMS, Bash, Linux (CentOS), Python, Puppet.
Helped write a centralized, consistent-hash based server-caching solution for thousands of production servers across several datacenters.
Java, JBoss Cache. From May 2009 to April 2011 (2 years) Software Engineer II @ One of the first engineers to work on Etch (http://cwiki.apache.org/ETCH). Constructed the C# language binding and a functional Ruby language binding. Created and currently enhancing the Naming Service, which provides a DNS-like abstraction to Etch URIs.
Assisted the adoption of Etch into core CUAE, hence moving the system to a more distributed and scalable model.
Entrusted with and successfully resolved a wide variety of high priority bugs for a timely major release last year.
A lead developer for the Messaging Plugin, a Java service that exposes an Etch interface (via the core CUAE product) to Unity and UnityConnection (Cisco Unified Messaging products).
o Key person responsible for development and resolution of QA issues.
o Wrote large scale performance tests.
o Resolved inter-product issues by working with other teams meticulously for the timely release of the service. From June 2007 to April 2009 (1 year 11 months) Summer Intern @ Worked on Etch.
Fast alternative to anything remotely messag'y ... From June 2007 to August 2007 (3 months) Technology Intern @ Development for internal systems.
Apache Tomcat, Struts, Tiles, Java (JDK5), Display Tags, Commons Validator, JavaScript, XML, and Ant. From June 2006 to August 2006 (3 months) Lecturer @ Taught 2 semesters.
Operating Systems, Java and a lot of labs. From August 2004 to May 2005 (10 months)
Master of Science, Computer Science @ The University of Texas at Austin From 2005 to 2007 Bachelor of Engineer, Information Technology @ University of Mumbai From 2000 to 2004 Manoj Ganesan is skilled in: JavaScript, XML, Python, Maven, Software Engineering, Java, C#, Agile Methodologies, Tomcat, Testing, Distributed Systems, Bash, REST, Ant, Operating Systems, C++, Ruby, Apache, Object Oriented Design, Linux, Scalability, PostgreSQL