Post Job Free
Sign in

Senior Principal Software Engineer

Location:
United States
Posted:
July 13, 2009

Contact this candidate

Resume:

FARZAD MAHJOBI

* ******** *****

Nashua, NH *****

Home 603-***-****

********@*****.***

OBJECTIVE: Self-motivated individual, with strong design background searching for a responsible position in Software Engineering that is both challenging and interesting. Seek dynamic and innovative company.

COMPUTER Languages:

EXPERIENCE: Java, J2EE, EJB, JMS, XML, SOAP, HTML, JSP, JavaBeans, C++, C, OOP, SQL, JUnit, Log4J, SWT, Swing, AWT, Hibernate, JBOSS, Lomboze, Quartz, JGO Libraries, JFreeChart , JChart, Multi-threaded programming, Win32, JFC, MFC, DLL, VBX, Roguewave Parts (tools, threads, net, and serialize), InstallAnywhere, InstallShield, Visual Release, TK/TCL/ITCL, X-Windows/Motif, Lisp, Pascal. Thorough knowledge and background in Computer Networks and Computer Graphics.

Systems:

Windows (XP, NT, 2000), Linux, UNIX, MS-DOS, MySQL, Oracle, and ObjectStore Database Management System.

Knowledge of SNMP, MIB, TCP/IP, 802.1x, ATM, Frame Relay, SMDS, PPP data communication protocols.

Tools:

Eclipse, Netbeans, JBuilder, SWT Designer, ANT, Subversion, ClearCase, AccuRev, SCCS, PVCS, AdventNet WebNMS, AdventNet SNMP API, OptimizeIt, ILOG, JChart, Visual J++, Visual C++ (1.52, 4.0, 5.0), Symantec Cafe, Bounds Checker, Multi-Scope, CodeWright, GDB, MXGDB, Workshop.

WORK Senior Principal Software Engineer: Soapstone Networks, Billerica, MA

EXPERIENCE: Network Management (December 2007 - June 2009)

· Architected, designed and implemented the TRaC client software. TRaC is the client part of a multi-tier software architecture. It is used to manage the Soapstone PNC (Provider Network Controller) appliance. TRaC configures and monitors the service provider's network via the PNC appliance.

· TRaC uses SOAP protocol to communicate with the server side. The data communicated between the client and server is XML over HTTP. This application is built using JDK1.6, Swing, ILog, JIDE and Log4J libraries.

Principal Software Engineer: Enterasys Networks, Andover, MA

Network Security Management (June 2004 – December 2007)

· Architected, designed and implemented various parts of the next-generation management software for Dragon Intrusion Detection/Prevention System (Dragon IDS/IPS) called EMS. The EMS provides management functionalities in the areas of configuration, statistics, performance monitoring and auditlog.

· The EMS is a 3 tier distributed client/server application written entirely in java. It is based on JBOSS application server, JAVA1.6, J2EE, EJB, DTD's, XML, JDBC (MySQL 5.0), Hibernate O/R tool, Breeze xml-object generator, Lomboz and XDoclet J2EE supporting tools, SWT library, SWT Designer, JGO and JFreeChart graphics libraries.

· The development was done using Eclipse IDE and the supporting plug-ins such as CVS, Subversion, Lomboz, ANT, SWT designer, Log4J, JUnit, and others. Management data is in XML format where XML files are processed and stored in MySQL and later converted to objects and vice versa.

· The configuration process of the Dragon IDS/IPS involves many complex objects since it included a large number of processes that could be tuned.

· Implemented the entire client infrastructure and user interface. The user interface covers configuration, monitoring, and administration. It is designed to be easy to use and yet provide useful information to the system administrator.

· Implemented user interfaces ranging from network topology, wizards, dynamic tables, tree-views, table-tree-views, virtual tables, customized widgets, numerous forms, graphical statistics viewer, audit log viewer, customized editors for IP Address (V4/V6/Cidr), Regular Expression, OID, StyledText and etc.

· Implemented reference finder feature which is used to find the user of a particular resource in the network. For example visually showing where a configuration policy is being used. Useful in a large network.

· Implemented many server-side EJBs, database tables and supported APIs to be used by the client to provide management related tasks.

· Implemented network topology graphical interface to provide graphical configuration and visual status, error presentation and error correction. Used to represent the network graph of connected event flow processors.

· Implemented drag-n-drop, cut, copy, paste and add-bulk like functionality for ease of use of the application.

· Implemented various object models within the system. These objects are used to contain information within the system.

· Implemented connection recovery mechanism between the JMS server and its clients. This is used so that neither the client nor the server would have to be restarted in case of network outage or server crash/restart.

· Designed and implemented the context-sensitive help.

· Worked with system test group in reproducing and resolving issues promptly.

Principal Software Engineer: Legra Systems, Burlington, MA

Network Management (Oct 2002 – June 2004)

· Architected, designed and implemented various parts of the Legra Manager LM6000 Network Management System for Legra Wireless LAN Switches and Access Points. The LM6000 provides management functionalities in the areas of configuration, monitoring, faults (Alarms and Events), trap forwarding, syslog, historical and dynamic statistical data collection (graphical or tabular), radio planning, and administration.

· LM6000 is a distributed client/server application written in Java based on RMI, JSP, XML, JDBC (MySQL) and SNMP V3/V2C/V1 technology. The server runs on Linux/Windows platforms. The client is an applet which is downloaded from the HTTP server and connected to the server via RMI. The server uses MySQL database for persistent storage and SNMP V3/V2C/V1 protocol to communicate with the wireless switch.

· Implemented the entire client user interface. The user interface covers configuration, faults, performance, monitoring, statistics, and administration. It is designed to be easy to use and yet provide useful information to the system administrator.

· Implemented user interfaces to configure switches services, radio related services, wireless security suites and station related services.

· Implemented user interfaces to provide administration functionality such as NMS status, user accounts, and network groups or scope management.

· Implemented client and server components to provide network Alarms, Events and statistics.

· Implemented various object models within the system. These objects are used to contain information within the system.

· Implemented many server-side functionalities and APIs to be used by the client to provide configuration, monitoring and faults related tasks.

· Implemented device discovery process on the server side. This is the process of walking the MIB and building an object hierarchy to represent hardware and software entities within the wireless network (i.e. switches, ports, access points, 802.11 security suites, and stations)

· Implemented SNMP trap filtering and propagation components for the switch, ports, Access Points and wireless stations to provide fault and monitoring capabilities. These traps would be stored in the database and would also be reflected in the client user interface.

· Designed and implemented the context-sensitive help for the LM6000 Legra Manager.

· Implemented the build process to build an installable product using ANT. Utilized many built-in functionalities such as JAR, Signed JAR, RMIC, etc.

· Tutored and assisted most of the team members in the group on a needed basis.

· Worked with system test group in reproducing and resolving issues promptly.

· First developer in the group of 5 person team.

Principal Software Engineer/Team Leader: Crescent Networks, Lowell, MA

Network Management (Feb 2001 – Oct 2002)

· Lead the provisioning group within the network management.

· Architected, designed and implemented the entire WEB-based, Graphical User Interface (GUI) client software called C-View VR Data Entry Module. The VR Data Entry module is part of the C-View Services Manager suite of products. The purpose of this product category is to meet the needs of customer-facing personnel such as field- or inside-sales, customer care representatives, or planning and design staff by simplifying their job. Staff at different levels within the Service Provider environment could use this tool to provide the required data to create a new Service or change an existing Service on-line.

C-View consists of a main module GUI application that works in conjunction with this Web-based application module. The C-View main application is a distributed client/server Java application that runs on Sun Sparc Servers and Sun or Microsoft Windows NT clients. It uses the Java, RMI, Oracle, XML, and AdventNet SNMP API technology. The VR Data Entry module is tied to the same distributed Oracle database and server that the main application uses. The use of a common database and server enables persistent storage of service and customer information. The VR Data Entry module provides direct access to the C-View components through an integrated workflow engine. This workflow engine operates through a Web Server and populates both customer and customer service information within the C-View Services Manager application.

It includes tasks involved in customer creation and service assignment for Crescent's VRX-1000 Service Edge Router network. It is written in Java, Java-Script, and HTML. It makes use of JSP (Java Server Pages), Java Beans, Apache Web Server and Oracle DBMS technology. This application includes an email notification feature that will allow the user to receive notifications on any changes to a service object. It also provides simple reporting capability where the user could view/print reports of services and their respective properties for a particular customer and more. It includes a change log facility that will track all the changes committed during the lifecycle of a service.

· Designed and implemented the integration of the C-View VR Data Entry with the C-View main application.

· Designed and implemented many features for the C-View Services Manager in order to make the application more usable and scalable such as Load client data on demand so that a large number of routers and interfaces could be managed. Worked on all client, server and database portions of the application such as designing database tables and implementing the server and client parts in order to provide the data at the client level.

· Designed and implemented various user interface related features such as progress indicators.

· Designed and implemented the context-sensitive help for the C-View Services Manager.

· Designed and implemented the C-View Task Manager application. The purpose of this application is to manage all services/tasks of the C-View Services Manager. It includes a GUI application that allows the user to start the C-View server software parts all from one place and provides the option to stop/re-start any tasks. It can be run remotely on the client machine to control the server. It is written in Java and uses RMI to talk to other parts within C-View.

· Designed and implemented the Installation software for VR Data Entry Module product. This installation program uses the InstallAnywhere tool. It has the standard look and feel of installation programs.

Principal Software Engineer: IronBridge Networks, Lexington, MA

Network Management (Sep 98 – Feb 2001)

· Architected, designed and implemented the entire Java-based client software called SwiftSight. This application is a distributed network management system that is used to provide configuration and fault management for the IronBridge Terabit router (SwiftCOR). The client application is a multi-threaded application that communicates with the server process running on a remote host that is a Solaris executable written in C++. The client software can be run as both applet and application. This makes it possible to run the client via the web browser or from a locally installed version. The applet version would work anywhere and the application version can be installed on both Solaris and Windows NT/9x. The client application has a user interface that is powerful and yet easy to use. The client user interface makes use of maps and tree objects in conjunction with table, form and tab page objects which make the user interface much cleaner and fewer layers to get to the data. The tree object is a dynamic object that is controlled by the data provided from the server. The relations between objects are dictated by the server and as a result making the client software more dynamic to the changes in the system. Client and server communicate via object serialization mechanism. Data objects are implemented to carry the data and object serialization is used to marshal and unmarshal the data. Wrote 57,000 lines of code and over 300 classes to implement the client software.

The client application is built using the core JDK 1.3 and some ILOG and RogueWave libraries. The server application is built using RougeWave Tools.h++, ACE threads, Informix Database, SNMP V3, and is written in C++.

· Designed and implemented the integration of the SwiftSight application with the HP OpenView platform. With this integration, HP OpenView can discover IronBridge devices and SwiftSight application can be launched against the discovered devices. Wrote CGI scripts to launch the SwiftSight applet via the web version of the HP OpenView.

· Designed and implemented the Installation software for SwiftSight product. This installation program used the InstallShield scripting language. It has the standard look and feel of windows installation programs.

Senior Software Engineer: Bay Networks, Billerica, MA

Network Management (June 94 – Sep 98)

· Architected, designed and implemented the multi-threaded client/server version of the Network Configuration application. The entire GUI of the Bay Network’s NETarchietct application is written in Java. This product is a cross-platform (NT/UNIX) client/server application, which is written in Java/C++ using the Roguewave’s Tools.h++, Threads.h++, Net.h++, and Serialize.h++. Both the Java-client and the C++-server are fully object-oriented and are designed to communicate with each other by exchanging objects over the net. This application represents the communication device’s hardware and software graphically as a Tree View that can collapse and expand by a mouse click. It allows the user to configure the software entities that are running on the device. It uses all of the current Java AWT standards, such as Tree, Tab page, right mouse button support for pop up menu, and etc. Responsible for design and implementation of the entire application. The server part is written in C++ running on UNIX and is multi-threaded. Multiple clients could connect to the same server to manage the devices. The client can run on UNIX, NT, or WIN95.

· Architected, designed and implemented the multi-threaded client/server communication mechanism and the entire Java GUI of the Bay Network’s WAN monitoring application. This product is a cross-platform (NT/UNIX) client/server application, which is written in Java/C++ using the Roguewave’s Tools.h++, Threads.h++, Net.h++, and Serialize.h++. Both the Java-client and the C++-server are fully object-oriented and are designed to communicate with each other by exchanging objects over the net. This application represents the router’s hardware and software graphically as a Tree View, which can collapse and expand by a mouse click. It allows the user to monitor the software entities that are running on a particular logical circuit in a hierarchical graph. It uses all of the current Java AWT standards, such as Tree, Tab page, right mouse button support for pop up menu, and etc. Responsible for design, implementation and testing of the GUI and client/server architecture.

· Developed Network Management software. Designed and implemented configuration management software components in order to manage Bay Networks router product line. This management software is able to configure and manage all hardware devices and software protocols that Bay Networks routers support.

· Key designer and developer for Bay Network’s Quick2Config router configuration manager. Quick2Config is an MS-Windows application, which is written in C++ using MFC and FarPoint’s Tab VBX, and Spread20 VBX. It is fully object-oriented and represents the router’s hardware and protocol configuration graphically as a Tree View that can collapse and expand by a mouse click. It allows the user to change the configuration dynamically through SNMP or create a local configuration file and download to the router using Xmodem/FTP. It uses all of the current MS-Windows GUI standards, such as Tree View, Property Page, OLE Drag & Drop, right mouse button support for pop up menu, Context sensitive help support and etc. Responsible for design, implementation and testing of the GUI and back-end configuration of Quick2Config.

· Designed and implemented the Installation software for Quick2Config product. This installation program used the Visual Release & InstallShield scripting language. It has the standard look and feel of windows installation programs.

· Designed and implemented the next generation firewall configuration management software for Bay Networks Site Manager router configuration manager.

· Designed and developed common code base network management software components to manage Bay Network’s routers. This software runs on both X-Windows and MS-Windows.

Software Tools Development (Aug. 92 - June 94)

· Developed a Test Shell using TCL/TK toolkit to provide an environment for testing communication protocols. Developed built-in commands as extension to the TCL shell. These commands could be called from the command line or from a TCL script to test protocols functionality. The goal of this product was to build a test environment equipped with a rich set of commands that is easy to develop test with very little programming knowledge.

· Designed and developed a graphical user interface for SQA Tools. This is an X-Windows application and it is used as a top-level view to the SQA tools. The user interface is designed to make the SQA tools easier to use. This application is equipped with an on line help system. User will use this tool to launch various test programs from within the interface.

· Designed and developed an X/Motif application to monitor and analyze data on a wide area link.

· Designed and developed test tools for UNIX-based automated test platform.

· Developed C code to directly test the WAN (Wide Area Network) protocol products. These protocols are ATM, Frame Relay, X.25 packet switching, SMDS (Switched Multi Megabit Data Service), and PPP. Modified existing LAN test protocols to work over WAN.

Software Engineer: Jupiter Technology, Waltham, MA (June 90 - Aug. 92)

· Extensive programming in C, and C++. Microsoft Windows Programming.

· Architected and implemented two User Interface Systems to automate the configuration process of Network Protocol Server. This application hides all system complexities and presents an easy to use graphical interface for the user to configure the protocol server (gateway) towards a specific application. The outcomes of this software were Customer installation of the system, providing easy configuration and future reconfiguration of the protocol server. This software was developed for both UNIX (using curses), and MS- Windows application.

· Designed and implemented software to enhance quality assurance of software products.

· Designed and Implemented an Interface System for a UNIX application program using X-Windows (Athena Widgets, X Intrinsics, X Toolkit Library).

EDUCATION: Northeastern University

· M.S. Computer Systems Engineering (June 1992)

· Major: Engineering Software Design

University of Massachusetts at Amherst

· B.S. Computer Systems Engineering (May 1989)

HONORS: Member of Eta Kappa Nu (HKN), National Electrical Engineering Honor Society.

INTERESTS: Soccer, Basketball, Volleyball, Skiing.

REFERENCE: Available upon request.



Contact this candidate