Igor Polk
Professional History

(510) 610-8711, iPolk@virtuar.com

Photo | Search terms: Job Resume, TRIZ, AI
OBJECTIVE: Software engineering;
Design and implementation of image analysis algorithms
SUMMURY:  
Overall 16 years of Software Engineering, 4 years of Image Processing, 3 years of Electrical Engineering, more than 2 year experience in Genomic industry, 5 years experience in biomedical industry.
Major 13 years in C++;
13 years in MS Windows: Windows XP/2000/NT/98/95/3.1;
Visual C++, Win32 API , STL, Templates, MFC, MSWindows SDK, MSDOS, DLL, MSOffice, Visio, Photoshop, Dreamweaver
Minor ATL, COM, ActiveX, NT device drivers, 2-years MAC, ODBC, SQL, BASIC, PROLOG, SQL, TCL, MUMPS;
HTML; Java Script; JAVA Applet programming;
Web site design; Web promotion and SEO;
PROFESSIONAL SKILLS:
  • Designed and developed complex applications and framework libraries from concept to final stages;
  • Was able to successfully prioritize projects, delegate work, and track progress [reviews];
  • Wrote specifications, set up engineering environment, set up developer’s white-box testing environment;
  • Performed design up from research and collecting information through conceptual and demo stage to final modularized descriptions, schemas, and code base;
  • Did it in software, biomedical, image analysis, chemical production, and internet media industries;
  • Excellent knowledge and application of Object Oriented Design, STL-style;
  • Implemented designs of other designers;
  • Redesigned and troubleshoot legacy code;
  • Wrote documentation;
  • Performed presentations at conferences and trade shows;
  • Used various programming environments, tools, and libraries;
  • Developed simple, flexible, solid, maintainable, and reusable code;
  • Experienced in cross platform development, algorithm development and optimization, GUI, computer control of technology processes and machinery;
  • Experienced in multithreaded real-time NT programming;
  • Widely used STL and state machines;
  • Researched data visualization, image analysis, recognition of visual objects on gray-level images;
PERSONAL SKILLS: [ “xyz” - excerpts from reviews ]
 
  • “Is very conscious of build schedules and is able to estimate the amount of coding time required quite accurately”;
  • “Is able to reuse code modules to deliver on projects efficiently”;
  • “By developing and reusing code libraries is able to handle the pressure of tight deadlines”;
  • “Is able to set up priorities to maximize feature/cost ratio”;
  • “Adept at building project plans and schedules”;
  • “Handled outsourced projects”;
  • “Is able to evaluate the merits of different algorithms very efficiently”;
  • “Is able to implement complex algorithms and integrate them into production quality software”;
  • “Is able to understand and interpret existing code and deliver code that is well organized and bug free”;
  • “Accustom to interview all parties who had stakes in the decision before arriving at a proposal solution”;
  • “Good at prototyping to reach decisions quickly”;
  • “Comes up with excellent test strategies to test solutions”;
  • “Very aware of the costs of equipment and materials needed for projects”.
 
  • Strong analytical and problem solving skills;
  • Innovative thinking;
  • Ability to formalize and solve most complex problems and find right or optimal solutions;
  • Solid mathematical and scientific background;
  • “Kept an excellent record of all research and discovery”; 
  • “Outlined the tasks required to solve problems and took very methodical approaches to solving problems”;
  • “Is able to partition problems well so that they will fit together in an elegant way”.
 
  • “Excellent communication skills”;
  • “Is able to communicate with other engineers and researchers at a very detailed and technical level”;
  • “Able to distribute tasks between people participating in the project to make the development process more efficient”;
  • “Productive and cooperative work with people, able and willing to help”;
  • “Appreciate importance of inspirational words, anecdotes, and humor”.
EMPLOYMENT:  
10/2001-present Director. Yes San Francisco, LLC,     www.virtuar.com
  Developed a concept of Virtual Walking Tour. Designed and programmed the walking tour editing software in C++ and the set of utilities. Developed interactive Java applets with animation to present walking photo tours on the Web and in a stand-alone version, Developed a Web site for on-line presentation. Developed HTML and Java–based stand alone walking tour CDs. Developed a Web-shop. Web promotion. 1st place on Google on "San Francisco pictures" search. Worked with a number of tools to achieve good positioning including WebPosition Gold 2. Product promotion on the Web-site. Products: "San Francisco Virtual Tour", "Alcatraz Virtual Tour", "Las Vegas Boulevard Virtual Tour".
  Also serving as a board member of A&B Software
06/1999-10/2001 Senior Software Engineer. Technology Development Group Leader. Incyte Genomics, Inc., Fremont, CA. 
 

Overall:

  • Owned the image processing project, including research and development of technological aspects, development of specifications, software architecture, design and implementation. Responsible for all aspects of the image processing software and algorithms at the Incyte Microarray facility.
  • Responsible for maintaining the image analysis program, improving reliability, implementing new imaging algorithms, and integrating new and innovative statistical data methods.
  • Responsible for software enhancements that enable production technologies such as 16-pen printing and single channel GEM analysis. ( GEM stands for Gene Expression Microarray. It is an abbreviation used in company's GEMTools software product. )
  • Responsible for the technical aspects of the Automated GEM Quality effort.
  • Responsibilities include GEM Quality control reports, and expert decision system, statistical reporting algorithms.
  • Responsible for troubleshooting production issues related to the image processing software and developing related modules in the GEMTools software.
  • Developed a system of software graphical documentation. The diagrams comprise of data and control flow diagrams, functional blocks and objects. Took part in design and coordinated efforts to improve quality of element segmentation.
 

Projects:

  • Reverse-engineered the Image Analysis program. Made diagrams of the program structure and the Image Analysis algorithm. Wrote documentation for in-house use and for customers; Made presentations about structure of the program and algorithms.
  • Investigated effects of cross-talk, made presentation, implemented cross-talk correction methods.
  • Implemented automatic method of finding elements and element arrays on images. It includes finding parameters of element distribution and corner coordinates of element arrays. Method worked for 4 element arrays per microarray. Designed, and guided outside contractors to implement more general method for 16, 32, 64, and n-number of arrays.
  • Designed software structure and guided software developers to make a new method of element segmentation. Developed validation strategies.
  • Developed an evaluation method of element segmentation quality.
  • Designed and implemented an interactive location map tool using the graphic object visualization library VISED. VISED is the library previously independently developed and owned by Igor Polk.
  • Took part in design and implementation of a decision-making module to recognize quality of GEMs based on scatter plot distributions. These enhancements have proved instrumental for the distributed array and expression database programs.
  • Designed enhancements to allow the analysis of 16-pen GEMs, Single Channel GEMs, Plane Balancing ( AEB Normalization ) methodologies, and automation features.
  • Implemented design of software to support probe processing.
  • Made presentation on the in-house conference “Technology First” about new methods of automated microarray quality assurance.
  • Implemented the conceptual design of an expert system for microarray quality assurance based on Decision Tree and Decision Step notions.
  • Participated in discussions, planned, designed, and implemented in software single channel data support for GEMTools and LifeArray. It was implemented using virtual combined microarray for replicas.
  • Used Tcl interpreter to incorporate formula calculation in the product.
  • Rewrote SYTO Stain analysis module.
 

Code:

  • Spent significant efforts reorganizing and streamlining the image processing code using generic programming methods. Wider use of functions, classes, STL, templates helped to reduce the amount of code, made testing easier and more comprehensive; It also greatly reduced implementation time and simplified bug fixing.
  • Designed and implemented STL-style basic template classes for image analysis; It included buffers, abstract “pointers” to parts of images, and several classes of algorithms; It was supplemented by general classes like “Range”, “Value with precision”, statistical classes like “Histogram” and “Distribution”, and matrix classes.
  • Implemented code to generate detailed application logs and allow custom configuration of routines.
  • Made improvements to the GEMTools software including Graph, Element Display, GEM Groups.
  • Enhanced the GEMTools source control structure to use common include files and automatically record build version.
  • Introduced scripting engine into Image Analysis program to control it through a command window. A version of TCL was used.
04/1998-04/1999 Senior Software Engineer. MRS Inc., CA. (Magnetic Recording Solutions, Inc.)
  Was responsible for design and implementation of the real-time multithreaded control and data collection program for a complex machine. First program in the industry to be implemented on Windows NT with multithreading. The machine is the Magnetic Media Certifier and Glide Tester used in production lines of disks for hard drive industry. The program reads a number of complex system and data files, assembles the sequence of control algorithms, performs actions in automatic (robot) or manual modes, reacts to interrupts, acquires data from hardware, processes and stores data, collects statistics, informs operator about actions, reflects hardware parameters and data, performs error handling, cancel and abort functionality. As a leading member of a team I took significant part in design and implementation of other engineering and data analysis programs of the software package including NT device driver, DLLs and general static libraries, and overall data flow in the system. Established process of software development. Designed test drivers. Developed original concepts for user presentation of information. Used MFC and ActiveX in design and implementation of GUI. In hardware control algorithms extensively used state machine approach. Formalized, implemented, and optimized command sequences for state machines. Used STL to implement data objects and perform efficient collection and pattern recognition on acquired data. Paid special attention to make more testable, reusable, and robust design and code. Used, where efficient, templates and C++ features like inheritance and polymorphism to do that. Used Physical Design concepts to increase Levelization and Insulation. Applied Direct Port I/O in NT device driver implementation. Adopted TCL engine for use as an interactive runtime debugging and tracing tool.
1/1996-4/1998 Senior Software Engineer. CoreTek Inc., CA.
  Start-up environment of small consulting company (7 people). Development and programming of new modules along with concurrent work on complex software systems and bug fixing. Worked on Genealogy software for Palladium Interactive, Database reengineering, Client-Server applications (development of new modules and porting to UNIX using Bristol technology). Debugged ported Mindscape PrintMaster. Designed and wrote EnRoute’s QuickStitch, image manipulation program (Windows design for MS crosscompiler). Designed C++ framework library, designed C++ graphical library. MFC, GUI, ODBC, TCL interpreter. Custom controls, Internet, Netscape programming, Graphic editor. Windows 95, Windows NT, MS SQL Server, MAC, Unix-shells, Windows3.1.
6/1995-1/1996 Senior Software Engineer. Creative Labs Inc., Milpitas, CA.
  Was responsible for design and implementation of Shared Whiteboard Application as a part of a complex product. Win95, MFC3.2, DataBeem SWAT, Visual C++ 2.2. This is a general purpose MFC MDI application with graphic-editing capabilities. Designed and implemented the graphical C++ library.
3/1993-6/1995 Software Engineer III. Computer Curriculum Corporation, Sunnyvale, CA.
  Deeply redesigned and implemented the next generation of in-house cross platform framework libraries used in 30+ programs. The libraries include application control support; multiple windows; animation; movies; Macintosh emulation of MS Windows drawing mechanism, windows, and controls; built-in debugging and testing capabilities. Adaptation of in-house tools to new requirements and framework libraries. Troubleshooting of applications based on the framework. Developed modules and library tests strategies. Wrote documentation and trained application programmers. Arranged tasks for programmers involved in library development.
3/1991-3/1993 Research. San Francisco, CA.
  Research in Image Analysis Algorithms and Automated Creative Problem Solving. C, C++, MSDOS, MS Windows, PROLOG.
1987-1990 Researcher. Minsk Medical Institute, Russia
  R&D. Various programs including image analysis system. Image processing: morphological algorithms, image enhancement, filtration, segmentation, noise reduction, interactive (mouse) image modification, gray level feature extraction, wavefront algorithms, statistical data analysis. Image expert system, Image processor design, Robotic languages. Research in artificial intelligence problem solving.
1984-1986 Automatic Control Systems Engineer . Mogilev Chemical Company, Russia
  Computerized control of technological processes. From the day one was responsible for functioning, repair of original design problems, and enhancement of the major control circuit of a large chemical plant. The plant, designed in and built by West Germany engineers ( Hoechst ) consisted of 4 production lines of 3 tons of production a day of polyester resin. Control circuits included 6 micro-processor-based computers and numerous control electronics including sensors. Redesigned original main program to be more adaptable to chemical process parameters and controllable by human operators, and performed a replacement. As a side work, repaired and instructed how to repair various electronics devices, sometimes without any documentation ( schemas ) available. Software design, Installation, SW/HW Troubleshooting, board design, analog signal processing, control circuits.
EDUCATION: 1984, MSEE, Minsk Institute of Electronics, USSR (Belarus now) ( now BGUIR)
Major: Automatic Control Systems; Minor: Computer Science, Analog and Digital Electronics
PUBLICATIONS: Igor Polk: “A memory to read out and write a block of words via one memory access from a random address”
in 1992 IEEE 26-th Asilomar Conference on Signals, Systems & Computers.
REFERENCES: Available upon request.
PERSONAL: US citizen. Proficient in photography, dancing instruction, organizing backpacking trips. One child.