Hiren Panchasara hiren@strugglingcoder.info, hiren@FreeBSD.org (213) 519-8994 www.strugglingcoder.info _______________________________________________________________________________ SKILLS Programming languages: C (4/5), C++ (2/5), perl, python, shell (2/5) Debugging tools: gdb, kgdb, truss, dtrace, ktrace, pmcstat, tcpdump, gprof, valgrind, flamegraph GITHUB https://github.com/hirenp (FreeBSD contributions) MISC - I contribute to FreeBSD and participate in IETFs - Appeared on BSDNOW.tv to talk about transport layer enhancements in FreeBSD - Wrote about 'TCP improvements in FreeBSD11' in FreeBSD journal https://www.freebsdfoundation.org/journal/ - Wrote a blogpost explaining Neumob's approach to accelerate traffic https://neumob.com/shortcomings-traditional-acceleration-approaches-using-tcp/ WORK EXPERIENCE Systems Engineer, Cloudflare Inc Nov-2017 - Current - Working on global edge infrastructure improvement projects. - I work on identifying bottlenecks and devise ways to fix them. - Working on TCP profiling, tuning, measurements and enhancements to improve latency and throughput. - Developing QUIC transport - loss recovery, congestion control, etc - Continuing to build/grow Neumob technology. - Leading custom udp based protocol development by implementing recent advancements: delivery rate estimation, packet pacing, bbr (Bottleneck Bandwidth and Round-trip propagation time) congestion control - Ongoing custom protocol bake-off with TCP. - Analyze end-to-end performance problems (from app sdk to edge nodes). - Help with new customer onboarding by troubleshooting and analyzing data closely in the trial periods. - Contributed to IETF transport drafts of rate estimation, RACK and BBR. Senior Software Engineer, Neumob (Acquired by Cloudflare Inc) May-2017 - Nov-2017 - A startup working on making Mobile App experience better. - SDK with custom protocol deployed in millions of devices. - Develop UDP based protocol as a library to accelerate mobile app traffic. Implement all latest advancements from Linux and IETF: Hystart (Hybrid SlowStart), RACK (Recent ACK), TLP (Tail Loss Probe), PRR (RFC6937 Proportional Rate Reduction), CUBIC and WestWood Plus congestion control algorithms along with other stability and performance improvements. - Evaluate custom protocol stack performance against TCP on HTTP and HTTP/2. - Follow QUIC ietf charter to see where that is going. - Analyze customer performance data to spot problems/trends to enhance the protocol. - Engage with sales to acquire/support customers. Principal Engineer, LimeLight Networks Jan 2015 - May 2017 - FreeBSD kernel engineer working on various bits and pieces which include TCP, network stack, ethernet device drivers and general distro maintenance. - Primarily work on FreeBSD's tcp stack improvements - reaction to loss, evaluating different congestion control mechanisms to replace a proprietary in-house congestion control module. - Assisted with latest TCP advancements like RACK (Recent ACK) and BBR (Bottleneck Bandwidth and Round-trip propagation time) development on FreeBSD. - Worked on Packetdrill to create various scenarios to reproduce and fix tcp/network stack bugs. - Developed basic TCP telemetry to help diagnose performance problems. - Looked at Linux TCP stack and compare congestion control performance with FreeBSD. - Assisted with general troubleshooting, performance problems and panic/crashdump analysis. - Helped maintain in-house distro (based on FreeBSD) and sync changes both ways periodically. - Mentored interns or new developers to get up to speed. The FreeBSD Project May 2012 - Current - Committer on the project working on various aspects: fixing bugs, reviewing other's changes, helping users on mailing lists. - Various TCP stack and congestion control improvements. - Worked on DCTCP (Data Center TCP) for FreeBSD. - Added hwpmc(4) support for Intel Sandybridge xeon, Ivybridge xeon and Atom Silvermont processor architectures. - Worked on network stack and Ethernet drivers. - Ported FreeBSD on Picostation M2hp wireless access point along with other random debugging/troubleshooting on MIPS architecture and wifi stack. - Initiated FreeBSD port of netcf library. Software Engineer, Yahoo Inc Aug 2012 - Dec 2014 - FreeBSD distribution maintainer at Yahoo. Work with upstream FreeBSD to continuously integrated changes from upstream to internal repo supporting FreeBSD 11 back to 7 with KPI compatibility back to FreeBSD 4. - Looked at performance issues of internal teams like mail, messenger, frontpage and finance in areas like network stack, nfs, vfs and vm. Guide them with correct TCP parameters and other network settings. - Certified new hardware with supported version of internal distribution of FreeBSD and port necessary drivers for new devices. For example, ported broadcom 10G bxe(4) drivers back to FreeBSD7. - Maintained a lab with a wide range of hardware for certification and to run regression tests. Software Engineer, Juniper Networks May 2010 - Aug 2012 - Worked on Junos management plane infrastructure common to all the platforms. The infrastructure includes following components: management daemon: responsible for configuration parsing, propagation and handling across all other daemons as well as config load actions and commit behaviors. cli: command line interface for all Junos products. multichassis: Command forwarding, configuration synchronization and daemon management in multi-chassis setup. Junoscript rpc: an ssh interface using netconf (rfc 4741) to read/write configuration. DMI (device management interface): a web interface to read/write configuration on router via xml. Software Engineer, Yahoo Inc Sep 2009 - Apr 2010 - Worked on product support for Guaranteed and Non-Guaranteed advertisement delivery. - Learned how advertisers set up campaigns on publisher pages, how ads are served, how data is gathered for proper billing and reporting. Software Engineer, Cisco Systems Jun 2007 - Jul 2009 - Worked on providing intelligence (authentication, authorization, accounting, bandwidth management) to the high-end routers used by service providers. - Experience working on variety of platforms: 3200, 3600, 6500, 7200, 7600, C10K, MCP - Worked closely with customers on issues involving memory leaks and analyzing crashinfo data of IOS core. - Worked on CISCO's IOS High Availability and redundancy features for platforms like 7600, c10K and MCP. Software Intern, Strix Systems [ C, Perl ] Jan 2007 - May 2007 - Worked on APs (access points) for wireless mash networks that carry voice and data payloads. - Developed test cases for regression test suite. Software Intern, Motorola [ C, C++ ] May 2006 - Aug 2006 - Worked on CAPC (Carrier Access Point Controller), a WiMAX (IEEE 802.16) product, in multi-threaded environment on a custom Linux distribution. Lab assistent and Grader, USC Aug 2005 - Dec 2005 - Conducted lectures, lab sessions and graded the homework and projects for 2 courses: Introduction to C, Video Game Programming in Visual C++. Student, University of Southern California [ C++, STL ] Jan 2006 - Mar 2006 - Developed Discrete-Event Simulator to Examine BGP Performance mimicking rfc 1771. A network of routers running BGP is simulated using discrete-event engine and performance of BGP was measured with artificial delays and packet drops. EDUCATION Masters in Computer Science Aug 2005 - May 2007 University of Southern California, Los Angeles. Bachelors of Engineering in Information Technology Jul 2001 - May 2005 Nirma University, Gujarat, India.