Soumen Biswas

Freelance Linux Programmer & Unix Programmer

Location:San Jose, California, United States
2 Skills

1) FreeBSD/NetBSD Kernel and IP stack:
a) System call interface
b) TCP/IP stack and sockets
c) KAME IPv6 stack.

2) Phase2 TCP/IP stack:
a) IP stack and socket interface
b) Phase2 client interface
c) TCP Redundancy

3) Unix Network/System Programming
a) Socket programming – basic, raw, asynchronous, multicast extensions, divert & dummynet extensions.
b) Solaris and POSIX threads
c) IPC
d) UNIX Terminal line discipline (termios 4.4-BSD) & Modem I/O

4) Internet Protocols
a) TCP/IP, UDP, ICMP, IGMP v1/v2
b) IPv6

5) Embedded Processors, Northbridge Controllers & Bus bridges
a) AMCC ppc – 440EP/GX (SOC), Xilinx ppc405
b) Xilinx Micoblaze v4.0.0b
c) Marvell Discovery II/6434x – III/6444x
d) PLX PCI9056

Platforms and Tools:

OS: FreeBSD-2.2.5-4.1.1, Linux-2.6.x (ppc), Solaris-2.5.1, UnixWare 2.1.x, JUNOS
RTOS : OSE(ppc), QNX(x86), LynxOS(ppc,x86), uClinux-2.6.x(microblaze)
PL : C/C++, ppc-assembly, microblaze-assembly.

Development Tools: gcc/g++, gdb, gas, Green Hills Development toolset
Sun Workshop Toolkit – CC/cc,
SCO Open Development Toolkit CC/cc,

Network Analyzer & Tools: tcpdump, tcpflow, tcptrace, trpt, EtherPeek, LANAnalyzer,
IXIA, Ethereal.

Debugging Tools:
1) Source level FreeBSD/NetBSD kernel debugging using remote gdb over serial port.
2) visonPROBE.( ppc)
3) FreeBSD, NetBSD on-console kernel debugging using ddb.
4) Xilinx JTAG, EDK – ChipScopePro (Logic Analyzer)

Work Experience:
April 2007 - Present, Staff Engineer, Juniper Networks, Sunnyvale CA
a) Implementation of IP/IPv6 L2/L3 multicast feature set on Juniper EX series switches – IGMP/MLD snooping, MVR, L2/L3 route expansion, multicast load balancing over aggregated interface.

b) L2 multicast over IP multicast tunnels.

April 2005 – April 2007, Sr. Systems Engineer, LynuxWorks, San Jose CA

a) Design and Development of high performance, MILS compliant TCP/IP stack based on XILINX GSRD (with TCP segmentation offloading). The stack is based on Treck-TCP/IP reference design and supports “zero copy buffers”.

b) Development of inter-processor communication over IP across PCI-PLB bridge (PLX PCI 9056). This included the bridge device driver and pseudo network drivers on both sides of the bridge. (X86 and ppc) with each side hosting its services via Sun RPC.

c) Gigabit Ethernet performance enhancements for Motorola n905 SOC board.

d) Development of BlueCat Linux BSP for ppc 440EP.

April 2002 – April 2005, Sr. Software Engineer, Nokia Networks, Mountain View

a) Designed and developed IPv6 stack for Nokia INOS platform (based on QNX)
INOS was designed to be Nokia’s distributed, multi-card networking platform.
The IPv6 stack was derived from NetBSD/KAME IPv6 implementation.
Network processor used: EZchip NP1.

b) Implemented IPv6 protocol stack distribution for INOS. - This enabled applications running on any card in the system to access the IPv6 stack and network interfaces transparently – oblivious of actual location of the physical network interfaces.

c) Developed card level redundancy support for INOS IPv6 stack.

d) Maintenance and Enhancement of Nokia IPSO (FreeBSD-2.2.5) IP stack.

March 2001 - April 2002, Sr. Software Engineer, VivaceNetworks, San Jose

a) Ported Phase2 TCP/IP stack on OSE (ppc) for Vivace’s MPLS switch.
This involved porting the Phase2 TCP/IP stack on OSE microkernel and programming IP routes onto Vivace custom ASIC (Network Processor)

b) Zero-copy buffer optimizations. This involved re-designing Phase2 network buffer (IBD) for seamless integration with OSE’s native network buffer structure to eliminate buffer copies.

c) Implemented signal based network I/O on Phase2 stack, to facilitate migration of applications (BGP, OSPF) using OSE’s native signal based net-io API.

d) Designed and developed Fault Tolerant TCP over Phase2 TCP/IP stack
This enables applications and their corresponding TCP connections to seamlessly switch over to the standby in case of system failure (Experimental)

January 2000 – March 2001, Sr. Software Engineer – Netscaler Inc, Santa Clara.

a) Design and development of a programmable – “Flaky Router” – based on FreeBSD divert socket for fragmentation and re-ordering of HTTP request/ response packets.
The “Flakey Router” was used for creating complex scenarios to test the functionality and performance of Netscaler’s HTTP switch and it’s TCP state machine.

b) Simulation of WAN by introducing packet loss, bandwidth limitation and delay using FreeBSD – Dummynet. This was used to create a real world operational environment for the HTTP switch.

Jan 1999 – Jan 2000, Member of technical staff – Metabyte Inc, Fremont

a) Porting Cybercash’s Communication Library and Transaction Engine (which was based on TCP/IP and serial port I/O) from AIX to SCO-OSR5

b) Re-Designed Cybercash’s WindowsNT modem communication library from older - direct COM port access method to Microsoft TAPI (Telephony API) compliant implementation.

September 1996 – January 1999, Software Engineer – Novell IDC

a) Implementation of NCP (NetWarel Core Protocol) over UDP/TCP for Solaris. This included Implementation of essential NCP routines for packet signature (MD5), packet size negotiation and connection watch dog.
NCP is Novell’s version of Remote Procedure Call.
b) Implementation of NCP-Engine for Solaris based on multi-threaded architecture. The Engine provided Netware like OS, networking and NCP support for hosting Novell’s services on Solaris.
This facilitated easier migration of services like NDS from legacy OS(NetWare) to Solaris.

Bachelor of Technology Computer Science & Engineering, May 1996, IT-BHU