Experienced software engineer in software design and development, including team leadership, requirement gathering, analysis, prototyping, proof of concept, sizing, design, planning, testing, and customer interaction. Specialized in areas of storage virtualization, RAID, iSCSI, SAN, OO development, C/C++, Java, Client/Server, and Operating Systems. An organized team player who delivers quality work and adapts easily to new situations.
Senior Software Engineer @ Lead design engineer for the storage virtualization and high availability for Storage Appliances and Security Product Families. Involved in design and development of RAID0/1/10/5/6, basic volumes, clone volumes, snapshots, replications, iSCSI target and initiator, storage distribution among nodes for high availability, SNMP with Intransa MIBs, command line interface, database, multi-threading, and more. Involved in design and implementation of storage cluster up to 16 nodes, including IO path migration among nodes for load balancing, node failure, and disk fault management. Also, developed Windows applications for disk management as well as a router servlet to provide storage configurations to Web GUI. Designed and implemented database manager that represents tables in database and then map objects with the columns in the database. Involved in any situation needed in a startup company, including product requirement, design, coding, QA testing, customer support and more. From August 2001 to Present (14 years 4 months) Manager and Senior Software Engineer @ Manager and architect of SAN Appliance (Axxess) to provide virtualization, snapshot, mirroring, caching and total storage solutions. Designed a client and server (using Java RMI) to provide a management application, providing networked storage pool. Designed and developed an Instant Image Manager to manage snapshots. Also, designed an Event Monitoring component to provide data integrity by notifying system administrators of any failure in hardware or software via email, phone-home, or console. Part of this component, an SNMP Monitor software was developed to receive all SNMP traps from switches and Uninterruptible Power Supplies (UPS).
Manager of firmware team to deliver 2Gb Open Fabric Switch (Slingshot 4218) using Fibre Channel protocol and standards, providing embedded OS, zoning, routing, hardware and firmware interfaces, SNMP using Fibre Alliance MIB, and other areas. From May 2000 to August 2001 (1 year 4 months) Advisory Software Engineer @ Lead design engineer for the agent component of Tivoli Storage Network Manager, offers a comprehensive SAN management solution that discovers, displays, allocates, monitors, automates, and manages SAN fabric components and disk storage resources.
Designed and implemented the agent server to manage the host-specific Fibre Channel storage using HTTP protocol connection, RMI, and CORBA (Voyager ORB).
Ported the agent server to other operating systems to run on Windows NT/2000, SUN Solaris, and UNIX AIX. It is written in Java and C using object-oriented methodologies ranging from OO analysis and design to OO programming and implementation. From September 1995 to May 2000 (4 years 9 months) Advisory Software Engineer @ Designed the agent component of IBM's Enterprise Storage Resource Management solution to enable storage administrators to efficiently manage storage resources from any location within an enterprise. Developed the client/server component to communicate between clients and servers using HTTP protocol, RMI, JNI, Web Server, database (jdbc), and Java Secure Socket Layer (SSL). The servers run on Sun Solaris, Hewlett-Packard HP-UX, IBM UNIX AIX, IBM OS/2, IBM OS/390 UNIX System Services, Microsoft Windows NT, Novell IntranetWare, and Silicon Graphics IRIX.
Designed and implemented a linker to link object modules created by C compiler, C++ compiler, or any other compilers. Participated in the design of Dynamic Link Libraries (DLL), and contributed to the design of the Language Environments. From January 1991 to March 1995 (4 years 3 months) Sr. Associate Software Engineer @ Designed windowing support and implemented the screen manager and terminal I/O interfaces. Managed the usability, human factors, and graphical user interface issues. Worked on several projects in order to develop library systems, file access methods, word processing, multitasking, internationalization, and more. From September 1983 to January 1991 (7 years 5 months)
Master's degree, Computer Science @ University of Nebraska-Lincoln From 1982 to 1984 Bachelor of Science (B.S.), Economics @ University of Nebraska at Omaha From 1979 to 1982 Amir Nakforoush is skilled in: SCSI, iSCSI, Storage, Embedded Systems, Linux, C, Distributed Systems, C++, Fibre Channel, Java, Software Development, Unix, Cluster