Senior Software Engineer Resume Profile
NJ
Technical Skills:
Programming Languages:
C/C /C 11:
20 years' experience that I gained working for market leaders. I took part in the development of important engineering simulation and other applications like Dassault/Simulia Abaqus, Autodesk's AutoCAD, Altair Engineering Hypermesh FEA pre- and postprocessor, EXA's PowerDelta CFD program, Cymer's robotic laser program, Kongsberg's Ledaflow flow assurance code for the oil and gas
industry and quite a few others..
Python:
15 years of continuous expertise. Major projects: Dassault/Simulia's Abaqus/CAE, Boeing Dreamliner 787 version management, EXA's PowerDelta MPAVE finite element pre- and postprocessor. Python wrapping around the OpenCascade visualization and geometric modeling library that has thousands of C classes. Shell Oil Gas distributed multiprocessing/multithreaded application to crawl the company network drives and putting their documents metadata into an Oracle database. I also developed a unique architecture partially based on Python to develop engineering simulation applications in general.
C /Python Integration:
Thoroughfull expertise integrating Python and C using boost.python and SIP
FORTRAN:
Optimization of thin walled steel structures using non-linear programming doctoral dissertation . Latest results: Three new linear equation solvers for multicore CPUs.
TCL/TK and FORTH
GUI Libraries:
Qt:
15 years of continuous expertise from version 1. to version 5. at Dassault, Autodesk, EXA and Kongsberg Oil Gas, both from C and Python. Recent developments: Qt version of Microsoft's ribbon concept and a PyQt based grid library that allows handling large data tables millions of rows .
MFC:
At Dassault and to develop FEM 2000 finite element code earlier.
wxWidgets, Wind/U, Zinc's ZAF,:
Both in C and Python at Dassault and in OpenCascade demo library.
Visualization:
- 5 year's long expertise using HOOPS 3D. EXA Corporation, MPAVE FEA pre- and postprocessor. DEM Discrete Element Method visualization for Conveyor Dynamics Corp.
- OpenCASCADE visualization library for engineering projects.
- Autodesk's AutoCAM quality improvement.
- VTK: integration with Qt5 and using it for an engineering simulation project.
- I am familiar with ParaView.
3D Modeling:
- Extensive experience using OpenCASCADE geometric library that was the basis of the MPAVE FEA geometry representation.
- I became familiar with ACIS at EXA Corp.
Multicore/multiprocessing/HPC programming:
- Fully scalable version of LAPACK DGBTRF linear equation solver without using locks/mutexes.
- Highly scalable version of LAPACKS's DGBTF2 linear equation solver
- New scalable direct linear equation solver, also without using locks/mutexes.
- These solutions are considerably faster than Intel's MKL or any other direct solver in that segment.
- Distributed multiprocessing solution for Shell Oil Gas for document processing 300 speed increase comparing to their own solution with much less development cost in a robust way
Messaging:
- MPI Message Passing Interface on Windows 2008 R2 server for linear equation solving.
- ZeroMQ for heterogeneous systems extensive experience
CAE Computer Aided Engineering:
Finite Element Pre- and Postprocessing:
- Took part in the development of market leader products: ABAQUS CAE at Dassault/Simulia, Hypermesh at Altair, PowerDelta at EXA Corp. Developed a pre and postprocessor for the MPACT multiphysics solver and NASTRAN finite element code.
- Used PATRAN and FEMAP to solve engineering problems.
Solvers/discretization:
- Was member of a team that developed one of the first adaptive finite element solver. Ported Stress Check solver from Linux to Windows.
- Complete p-adaptive finite element solver development for linear static and dynamic applications and a h-p fully adaptive 2D solver development.
- Used NASTRAN and NISA II/DISPLAY III to solve engineering problems.
- Work on advanced new discretization technologies based on partition of unity methods that help stress engineers to radically reduce labor cost in general stress analysis and fracture mechanics.
Meshing:
- Meshing algorithm and software for p-adaptive solvers including mesh optimization based on nonlinear programming and mesh topology changes.
- Extensive usage of Simmetrix finite element mesh generator.
- Development of meshing solution for Ledaflow flow assurance program that made simulation four times faster
Mathematics:
- Non-linear programming for structural optimization
- Speeded up popular linear equation solvers making them multicore LAPACK's DGBTRF and DGBTF2.
- Developed new direct linear equation solver that is better fit for multicore architectures.
- Used and compared PARDISO, MUMPS, SuiteSparse, MA65. MA32, DGBTRF, DGBTF2, SCALPACK, DDS, LAPACK and frontal solvers.
- Equation renumbering algorithm for frontal solvers.
Oil and Gas:
- High speed document processing for Shell Oil Gas.
- Flow assurance software development for Kongsberg Oil Gas
- New discretization technology that can be used in flow assurance and fracture mechanics reducing labor and controlling discretization errors.
Operating Sytems:
Windows and Windows Server 2008 R2/HPC edition, Linux, Desqview/X
Database:
POET Object Oriented , ORACLE beginner
IDEs and other tools:
- Visual Studio 2008, 2010 , Intel Composer C and FORTRAN.
- Eclipse on Linux
- cmake, qmake
- Wing IDE for PYTHON.
- Intel VTune, AMD CodeXL, AQtime, GlowCode profilers
- SVN, Visual SourceSafe, Perforce, Git source code management.
- XERCES for XML parsing, Liquid XML Studio for schema design
- Axosoft's OnTime, Track, Gnats, Jira for issue tracking
- Phantom Test drive for QA
- Mathematica, Matlab,
- Alibre, SolidEdge, SolidWorks CAD programs
- Installshield and Bitrock installers
- XML-RPC, Pyro, SOAP protocols
- DOORS
Professional Experience:
Confidential
Senior Software Engineer
- Developed a grid GUI based on Qt 5.1 and Python that allows viewing large
- amount of data spreadsheet quickly. The goal of this development was to simplify GUI development for CAE applications in general.
- developed the multithreaded version of LAPACK's DGBTF2 linear equation solver for narrowly banded equations see comments below about DGBTRF .
- MPI, C , C11, FORTRAN 90, multithreading, multiprocessing
- developed a parallel direct equation solver algorithm. This is a new approach
- to solve linear equations in a more scalable way increasing number of threads on multicore computer the solution time decreases almost linearly
- developed prototype of a new discretization method the needs much less labor
- from stress engineers and allows them to control the discretization error of the analysis
- develop GUI and visualization for engineering simulations
- C /FORTRAN/Python 3.2 /Qt 5.0.2/VTK, multithreading
Confidential
Senior Software Engineer, Contract
- Large scale document processing. Companies more frequently store all their documents on network drives. In case of large organizations like Shell maintaining millions of documents is a challenging task. I developed a new method to collect metadata about documents on large network drives that proved to be 2-3 times faster than their own technology speed is important, analyzing a drive might take days The development was also much cheaper. It is a multiprocessing application distributed over network of computers.
- Python, high speed messaging in heterogeneous environment, multiprocessing, multithreading, SQL, Oracle.
- Ported ribbon Qt/Python library to Qt 5.1 from Qt 4.8
- C , Qt 5.1, SIP, Python 3.3
Confidential
Senior Software Engineer, Contract
- Flow assurance software development LedaFlow . Kongsberg Oil Gas is one of the two companies that is involved in transient flow assurance software development. Flow assurance software application simulate the behavior of pipelines filled with multiphase content oil, gas, water helping engineers to understand how the system works while oil reaches the platform from a well on the sea bed e.g. The problem is extremely complicated, requires to solve a set of partial differential equations numerically, considering the time as well. Solving such a system might take a lot of time even using powerful computers. One of the ways to decrease the time of a simulation is to simplify the pipeline, replacing it with another one with less individual pipes but from simulation point of view with similar behavior. I developed a pipeline optimization algorithm and software that makes the simulation about 4 times faster. The software is a combination of several non-linear programming methods. It is regarded a unique solution in that domain.
- Windows 7, C , Python, Qt, Wing IDE, VC 2010, Intel Compiler
- Qt development.
- Added new features to LedaFlow network viewer and diagrammer modules
- using Qt/QtGraphics
- Made the Qt version of Microsoft Office's ribbon concept usable from Python.
- C , Qt, Python, SIP
- Multithreading / parallel programming. I adapted/developed a method that makes scalable multithreading programming possible increasing the number of cores increases the speed of calculation linearly, regardless of the number of CPU cores . Developers can also save time using the method comparing to the traditional multithreading.
- Developed distributed computing solutions for heterogeneous network of computers.
- Windows Server 2008 R2 HPC, CentOS 5.8, Intel C / FORTRAN 77, FORTRAN 90, FORTRAN 95, FORTRAN 2003, GCC, VC 2010, Eclipse/CDT/Photran, TBB , C 11, high speed communication
- Linear equation solver development. In flow assurance and other simulations there is a need to solve large number millions of linear equation systems. As a first step to create a more efficient linear equation solver library I developed the multithreaded version of DGBTRF solver which is part the popular LAPACK math library . It proved to be much faster than Intel's MKL solution.
- Intel FORTRAN 90, multithreading, C , VS 2010
Confidential
Senior Software Engineer, Started as a contract, client offered a permanent position.
- Robotic laser programming. Cymer Inc. is the leading supplier of excimer light sources used in semiconductor manufacturing and laser crystallization production equipment for the advanced flat panel display FPD market. I am responsible for the development of a software component that allows communication between the host computer and subsystems of different equipments of a high performance laser. Introduced a new messaging system and worked out prototypes for multitasking. I also developed a QA tool to assure the quality of the software application and work on a C /Python integration project
- Linux, Windows XP, C , Python, Eclipse/CDT, Phantom Test Drive, Wing IDE
Confidential
Senior Software Engineer, Contract
- Using the ASTRA framework developed pre- and postprocessor for a DEM Discrete Element Method solver. The software is used primarily in the mining industry to simulate behavior of granulated and row materials e.g. rock or coal The challenging part was to visualize efficiently huge number of moving particles polyhedral objects . A fully programmatic software application was the result of the development.
- Windows XP, Visual C , Python, Qt, XML, HOOPS3D
Confidential
Senior Principal Software Engineer, 3 months long contract
- Worked for AIRMax team that delivers common software components for Autodesk products like AutoCAD, Maya, Revit, Inventor etc.
- This includes working on GUI development for a web services component and improving the quality of visualization of Janus test software using AutoCAM visualization library
- Windows 7, Visual C , Qt, AutoCAM, OGS One Graphics System
Confidential
Self employed
CAE Software Development
- Added new features to the ASTRA Automated Stress Analyzer engineering simulation software. That features include prescribing boundary conditions both in Finite Element and Adaptive Domain environment, interfacing it with the NASTRA solver, finite element AD based post processing, finite element editing and Adaptive Domain generation. Interfaced it visualization and finite element mesh generation software components
- Worked on the development of the new Adaptive Domain technology.
Windows /Linux using Visual C , Python, Qt/PyQt , HOOPS
Confidential
Visualization and GUI Software Engineer
- Utilized expertise in scientific software development gained from working in market leader engineering software companies and developing personal framework. This assignment started as a short term 3 months contract position originally, expired in June. After that the company renewed the contract three times.
- Helped EXA Corporation to improve the quality of the new PowerDelta product, fixing bugs in the GUI, meshing and core components, speeding up visualization successfully speeded up important features in visualization sometime by two magnitudes, e.g. in picking entities, rubber band selection in huge models etc. EXA Corporation is involved in developing Computational Fluid Dynamics CFD software. It is an internationally recognized company in that area, one of the major players on the CFD market. EXA's products are used by almost all the important automotive companies and many aerospace companies too.
- Developed a comprehensive QA technology that can be used to improve the quality of CAD and CAE products. It has several components including GUI tests, tools that help problem replication and solutions for product architecture that help improving quality.