Software Development Engineer @ From February 2015 to Present (11 months) Orange County, California AreaSoftware Development Lead @ Integrate Esri's GeoEvent Server with ArcGIS Server to enable real-time capabilities in the product.
Participate in the specification, prototyping, development and testing process.
Work cross-teams, do lots of technical coordination and identify integration points.
Define the notion of platform services to aid in the integration.
Build REST APIs to manage a RabbitMQ cluster in ArcGIS Server to serve as the message bus for the GeoEvent Extension Server.
Promote integration and loosely coupled design patterns using RabbitMQ within the company.
Technologies: WebSockets, RabbitMQ, REST API, Java, JavaFX, Erlang From March 2013 to January 2015 (1 year 11 months) Senior Software Engineer @ Java EE developer for ArcGIS Server.
Build scalable, fault tolerant Java EE framework for hosting GIS web services.
Build RESTful APIs for administering ArcGIS Server.
Build an asynchronous REST operations framework.
Instance pooling, recycling and life-cycle management of GIS services.
Backup/restore functionality in ArcGIS Server.
Make architectural improvement to run ArcGIS Server on cloud platforms.
Identify and articulate use cases and implement core framework services like distributed queues, distributed cache.
Advocate code re-factoring and managing entropy in the system.
Productivity tools, development process, team collaboration & communication.
Mentor summer interns.
Technologies: Servlet, EJB, JNI, RabbitMQ, MS COM, JSON, SOAP, Geronimo, Tomcat, Maven, GIT. From March 2011 to February 2013 (2 years) Android Developer @ Evaluate in-memory spatial databases for storing geospatial features on the Android device.
Develop an API for storing geospatial features on Android using SqlLite.
Support indexing and querying geospatial features on the device in disconnected mode.
Implement security in the Android SDK. Achieve HTTP basic and token authentication and self-signed certificate management in client applications.
Develop a Java API for ArcGIS Geowarehouse REST API.
Mentor summer intern on the Android team.
Technologies: Android SDK, Eclipse IDE, Esri Java spatial library. From January 2010 to February 2011 (1 year 2 months) Software Architect @ Build technology for extending ArcGIS products (C++/COM based) using the Java language.
Programming idioms for writing extensions to ArcGIS in Java.
Hot-deployment and automatic registration of Java extensions deployed as JAR files.
Dynamic creation of Java objects using COM APIs.
Expose Java objects as COM/C++ vtables.
Marshal COM/C++ types to Java types and vice versa.
Persist Java Objects in COM-based stream objects.
Expose Java extensions as SOAP/REST web services.
Tooling for auto generating WSDL and SOAP proxies.
Make presentations at Esri's Developer Summit and User conference to evangelize the technology.
Technologies: C, JNI, x86, AMD x64, Java, Eclipse IDE, Visual Studio 2010, XS Schema. From January 2008 to December 2009 (2 years) Software Engineer @ Support users of ArcGIS Server and provide feature enhancements.
Integrate Java web applications with Esri's GIS components running in DCOM servers.
Evolve the Java implementation of Microsoft DCOM protocol.
Understand DCOM wire protocol for object creation, method invocations, remote ping, reference counting, remote garbage collection, connection points for callbacks from DCOM to Java.
Implement DCOM parameter marshaling in Java.
Optimize ArcGIS web application memory footprint by reworking the Java DCOM response pipeline.
Fix memory leaks in DCOM servers caused by Java web applications.
Technologies: Java, MS DCOM, Wireshark, Eclipse IDE. From August 2005 to December 2007 (2 years 5 months) Software Engineer @ Support users of ArcGIS Engine Java and provide feature enhancements.
Evolve the Java/COM bridge to integrate C++/COM libraries in Java apps.
Integrate Esri's ActiveX widgets in Java Swing applications.
Harmonize Java Swing and ArcGIS ActiveX threading architecture.
Avoid unnecessary inter-thread marshaling between Swing and ActiveX COM threads.
Implement seamless UI focus management between Java widgets and ActiveX Control widgets.
Implement .NET delegate semantics to avoid spurious callbacks from COM to Java.
Fix memory leaks and resolve GUI glitches.
Port x86 thunking code to AMD x64.
Wrote Eclipse plugin to view C++ object state in Java applications.
Presented technical workshops at Esri conferences.
Technologies: Java Swing, C, JNI, ActiveX, COM, Win32 APIs, Eclipse IDE, Visual Studio 2010. From August 2005 to December 2007 (2 years 5 months) Software Developer @ Developed an online Rules Editor/Builder for an expert system application for tree selection. The editor was built for tree experts to express and store domain facts and rules. The editor also generated low-level CLIPS code that would execute in a rule engine and generate recommendations. The project was implemented using Java Swing.
Developed a web based tree selector using Flash and Actionscript. From January 2004 to May 2005 (1 year 5 months) Gainesville, Florida AreaSoftware Developer @ Developed an internet GIS application for the School of Forestry using Esri 's ArcIMS, and heavily customized it using JavaScript and ArcXML. From May 2003 to December 2003 (8 months) Gainesville, Florida AreaAssociate Consultant @ Participated in the development of a suite of mortgage applications for Citibank Australia. My responsibilities included, building parts of the application user interface in Java Swing, managing data storage in XML files using Java XML binding libraries, and writing custom Java extensions for the application installer. From August 2001 to June 2002 (11 months) Pune Area, India
Master of Science, Computer Science @ University of Florida, Gainesville From 2002 to 2005 Bachelor of Engineering, Electronics @ Victoria Jubilee Technological Institute (VJTI, Mumbai) From 1998 to 2001 High School @ Saraswati Education Society (SES) High School From 1983 to 1995 Ranjit Iyer is skilled in: Java, Web Services, Eclipse, C++, Visual Studio, Object Oriented Design, XML, C, Multithreading, J2EE Application Development, Software Development, Distributed Systems, Win32 API, JNI, Android SDK