Resume

PDF
LaTeX

Objective

A consulting position in software project management or software engineering, preferably with a focus on robotics, artificial intelligence, and/or programming language implementation.

Education

Master of Science, Computer Science & Engineering
Penn State University, University Park, PA – July 2011
GPA: 3.71 / 4.00
Thesis: A Language-Based Software Framework for Mission Planning in Autonomous Mobile Robots
Designed and implemented a domain-specific programming language (DSL) and compiler in OCaml for mission planning in autonomous mobile robots. Users can program a robot with a highly declarative mission specification using the DSL and generate (via compilation) a fine-grained, timestamped, set of imperative commands for the robot's actuators and subsystems. Users can customize the semantics of the language primitives utilizing a plugin system via an object-oriented API. Using this system results in faster development of autonomy software for robots, increases reuse of code through plugins, graceful degradation of robot performance through exception handling, and provides high levels of static and runtime verification to guarantee operational correctness of robot.

Bachelor of Science, Computer Science
Penn State University, University Park, PA – May 2005
Overall GPA: 3.65 / 4.00
Major GPA: 3.67 / 4.00

Skills

Key Areas of Expertise: Software Engineering, Computer Science, Software Project Management, Software Architecture, Robotics, Autonomous Control Systems, Artificial Intelligence, Programming Languages

Strongest Computer Science Areas: Programming Languages, Operating Systems, Computer Networks, Data Structures & Algorithms, Computer Architecture, Compilers, Artificial Intelligence, Database Management Systems, Computer Graphics, Theory of Computation, Discrete Mathematics

Programming Paradigms: Functional, Object-Oriented, Procedural/Imperative

Programming Languages: C++, C, OCaml, Python, Matlab, Java

Software Development Skills: Disciplined Software Engineering, Configuration Management Systems/Revision Control Systems, Bug Tracking Systems, Code Documentation Systems, Multi-threaded Programming, Design Patterns, Code Refactoring, Code Profiling, Unit Testing, Regression Testing

Software Development Tools: gcc, Qt Creator, MS Visual Studio, Eclipse, gdb, Code::Blocks, mex (Matlab-C interface), GNU Make, CMake, iPython, lex, yacc, git, GitHub, Subversion (svn), Unified Modeling Language (UML), Arduino IDE, Doxygen, LaTeX

Software Development Libraries: ROS (robotics), MOOS (robotics), Boost (C++ extensions), POCO (C++ extensions), OpenGL (3D graphics), OpenCV (computer vision), BSD sockets (network programming), Gtk+ (GUI programming), MFC (GUI programming), sqlite (database), MySQL (database), GDI/GDI+ (2D graphics), pthreads (POSIX threads), lpsolve (linear program solver), DevIL (image rendering), Gambit (game theory solver), Festival (speech synthesis), CMU Sphinx (speech recognition)

Operating Systems: Linux, Unix, Windows, MacOS X, Android

Robot Operating System (ROS) Competency: core concepts (nodes, master, topics, messages, services, parameter server, bags), core tools (tf, catkin/rosmake, bloom, class_loader (author), pluginlib (refactored), ros comm (includes roscpp,rospy), rosjava, nodelet, bond core), nav stack (move_base, gmapping, amcl, map_server, costmap 2d, base local planner, nav fn), visualization tools (rviz, rqt), sensor drivers (freenect, openni, leap motion (maintainer), xv_11_laser), base drivers (pr2, irobot create, yujin kobuki, robot pose ekf), heartbeats (author), shield teleop (author), AR tags (ar_track_alvar), video stream transport and processing (image_transport, cv_bridge), joystick drivers (joy, ps3joy), simulation (gazebo), point clouds (pcl)

Information Technology Skills: Server Deployment (database management systems, web servers, wikis, source control, etc), Network Deployment (setting up routers, switches, etc), System Administration

Languages

English: Native Speaker
Hindi/Urdu: Fluent

Experience

Entrepreneur and Consultant
Self-Employed
August 2013 - Present
• Founder and technology development lead of stealth robotics venture.
• Consultant on the side, clients so far include the Open Source Robotics Foundation and Storybox, LLC.

Software Engineer
Willow Garage
August 2012 - August 2013
First six months:
• Software engineer on the core ROS platform team. ROS (Robot Operating System) is the de facto software platform in robotics and one of the largest open source projects in the world.
• Designed, implemented, maintained, and improved open source packages in both C++ and Python for ROS. Wrote extensive documentation and regression tests.
• Responded quickly to bugs/issues submitted by community as well as incorporating community feedback in design decisions.
• Still continue to maintain some packages voluntarily to help support the community.

Second six months:
• Joined Web Robotics group focused on building a next-generation Willow Garage autonomous robot intended for the services and healthcare industries.
• Designed, implemented, and integrated software featuring aspects of the robot's autonomy software stack. Software was built on top of ROS and implemented in both Python and C++. Extensive documentation was written for all software.
• Co-maintained/implemented our team's build farm with Jenkins.
• Did some minor Android development with ROS integration using rosjava. Created and open sourced a video teleop application for the nVidia Shield Android gaming device.

Founder and Technology Development Lead
Emoto Robotics (Not incorporated)
December 2011 - July 2012
• Founder of a robotics startup focused on giving robots personality, emotion, human awareness, and other anthropomorphically-desirable qualities.
• Created original concept, all software, and a fully-functioning robotic prototype with features including object following, speech recognition, and emotional emulation.

Instructor (Adjunct Faculty)
Penn State University - Department of Computer Science & Engineering
August 2011 - December 2011
• Taught 156 non-technical university students the basics of computer science and programming in C++
• Designed course from scratch to make computer science more compelling to non-technical people. Managed course with a wiki.
• Wrote entire textbook, all assignments, and course software. Released at the end of the semester under open source licenses.
• Taught students more practical applications of programming, including basics of autonomous robotics and making games. Final project involved making a graphical game in C++ more complex than Pong.

Research Engineer
Penn State University Applied Research Laboratory
Autonomous Control & Intelligent Systems Division
Operations Research Department
July 2010 - December 2011
• Main role was applying computer science and software engineering principles to operations research problems in military applications, primarily naval warfare. Operations research is the study of finding optimal/near-optimal solutions to complex decision making problems.
• Frequently involved implementation and optimization of computationally demanding algorithms. Required a solid understanding of data structures, complexity theory, computer architecture, and concurrent computing.
• Brought software engineering and computer science experience to an applied mathematics-dominated group that uses Matlab exclusively. Helped team inexperienced with writing large amounts of code create more maintainable software, use source control, and embrace object-oriented capabilities of modern Matlab.Occasionaly, would write algorithms that needed to be fast in C/C++ for team which could be called from Matlab via mex.
• Areas of focus: game theory, genetic algorithms, probabilistic methods, constraint programming, multi-objective optimization.

Instructor (Adjunct Faculty)
Penn State University - Department of Computer Science & Engineering
August 2011 - December 2011
• Taught 156 non-technical university students the basics of computer science and programming in C++
• Designed course from scratch to make computer science more compelling to non-technical people. Managed course with a wiki.
• Wrote entire textbook, all assignments, and course software. Released at the end of the semester under open source licenses.
• Taught students more practical applications of programming, including basics of autonomous robotics and making games. Final project involved making a graphical game in C++ more complex than Pong.

Research Engineer
Penn State University Applied Research Laboratory
Autonomous Control & Intelligent Systems Division
Intelligent Control Systems Department
August 2005 - July 2010
• Developer of autonomous control software for systems built by ARL, primarily autonomous underwater vehicles (AUVs) used for military applications.
• Designed several software libraries, frameworks, and applications in C and C++ for redundant tasks in robotics such as interprocess communication, geographical displays, graphics engines, physics engines, simulation, and behavior-based robotics.
• Lead software engineer on several projects and participated in many field tests.
• Pushed for more disciplined approach to software engineering and led initiatives leading to the deployment of a division-wide source control system and deployment of Lab-wide wiki to encourage collaboration.
• Mentored several interns in the areas of software engineering and computer science.

Intern Research Engineer
Penn State University Applied Research Laboratory
Autonomous Control & Intelligent Systems Division
Intelligent Control Systems Department
May 2004 - August 2005
• Ported a graphical Win32 application used for controlling an autonomous vehicle to a portable digital assistant (PDA) running WindowsMobile operating system. PDA could control a vehicle through a graphical display wirelessly as well as receive vehicle telemetry.
• Wrote a comprehensive library for geographical calculations including map projections and access to various geographical data sets. Used for both navigation by autonomous robots as well as for rendering field telemetry on geographical displays.

Publications

M. A. Shah, D. S. Neal, J. R. Williams, J. J. Weinschenk, "Network and Field Control (NAFCON) for Persistent Littoral Undersea Surveillance," Journal of Underwater Acoustics, Volume 59, No. 3, July 2009.