Cto, Architect And Senior Developer Resume
SUMMARY:
- Proficient and current in: Web development (Java, Servlets, JSP, JSF, Spring MVC, Javascript, Jquery, DOM API, HTML - 5, SVG, Ajax, Json/Gson), Eclipse plugin development (using EMF, GMF, OSGi bundles, AST, CDT, etc.), C, C++, Python, Google APIs, AspectJ, SQL, MySQL, PostgreSQL, and Derby databases, JUnit and TestNG based testing, Linux Ubuntu, Agile/Scrum, Maven, UML modeling and development, Matlab, white-box and black-box testing, validation and verification, embedded system programming, MIT Alloy, MIT Kodkod, Apache Spark.
- From 2006 to date, Doron served as Principal Investigator (PI) for R&D projects with funding topping $2,000,000. Funding agencies are: NASA, Missile Defense Agency (MDA), Defense Threat Reduction Agency (DTRA), Office of the Secretary of Defense (OSD), and the Office of Confidential Research (ONR).
- I have experience in a wide range of technologies, a sample of which is: assembly, signal processing, C coding, PC applications (Java), Eclipse plugins, code generators, Web server in CGI, Web-server servlets, JSP, JSF, ReST, mySQL, HTML, CSS, Javascript, Jquery, Ajax, Json (gson), SVG, Unit testing, Socket programming, multi-threading, XML parsing, Code instrumentation (Eclipse CDT), real-time (QNX). I wrote applications that run on desktops, embedded systems, and mobile-iPad (web application and testing).
TECHNICAL SUMMARY:
Computer Languages and frameworks: Java, Eclipse PSE, EMF, GMF, e(fx)clipse, OSGi, XText, XBase, AspectJ, C, C++, Python, Delphi, Pascal, Visual FoxPro, Visual Basic, HTML/XML, Lisp, Prolog, Concurrent Prolog, Lex & Yacc, Javacript, JQuery.
Web: Servlets, JSP, JSF, Angular, Grunt, Maven,CGI, Javascript, Jquery, HTML5; Debuggers Firebug, Chrome
Assembly Languages: SPARCLite, TI-TMS320C10/C40/C50/C51 (DSP's), Confidential 3210 (a Digital Signal Processor - DSP), Intel 8085, Vax-11.
Microprocessors: TI-TMS320C10/C40/C50/C51 (DSP's), Rabbit 2000.
Real-time OS: VxWorks, Green Hills, QNX, Java Real-Time (RTJ).
Hardware Description Languages: Verilog, VHDL
Web Development Languages: JSP, ASP, Web Macro, HTML, CGI-scripts, Servlets.
Diagrammatic modeling languages: UML, Petri nets, data flow diagrams.
Diagrammatic modeling tools: TogetherJ, StateRover, StateFlow, Simulink, DBRover.
Timing diagrams: Signalscan, Undertow.
Data Bases and Reporting: RT BIRT Reporting, Apache Derby, MySQL, JDBC, Visual FoxPro, Access, Hibernate.
Interactive Development Environments: Eclipse (including EMF, GMF, OSGi), Java JDK, Visual J++, Visual C++, JBuilder, Visual Basic, MFC, Wing IDE
Testing Frameworks: JUnit, Python unittest.
OS: Windows, Unix/Linux (Ubuntu), OpenWindows, Motif.
Silicon Compilers: Synopsys, Exemplar Logic.
Source/Version control: SVN/Subclipse, Clearcase-Attache, Git.
Misc.: Matlab, Visio, Sockets, VMWare.
Rule based engines: TemporalRover, MIT-Alloy, MIT-Kodkod, rules4business.com
Big-data: MapReduce, Apache Spark
PROFESSIONAL EXPERIENCE:
Confidential
CTO, Architect and Senior Developer
Responsibilities:
- Maya Software. DoD funded project for probabilistic monitoring based on Hidden Markov s generated from spreadsheets, and temporal/sequencing rules taken from rules4business.com. The tool used the StateRover and the japa Java parser for code generation.
- HP code signing (Cyber Security)group: wrote Java code for signing and verifying files, including zip's and jar's. The tool used MS signtool, java jarsigner, and a custom made RSA 2048 bit tool using Bouncy Castle or Java 8, and with openssl dgst digest verification and and HP verifier being used for testing. wrote new REST-based beans and JSF front-end for certificate download using ajax and json.
- Wrote a tool for the validation of Microsoft driver files vs. their catalogued hash as deposited by inf2cat into a .cat catalog file. The tool uses a hybrid of Visual C++ and Java.
- Developed a monitoring technique that integrates repeated Bounded Constraint Solving within Spark Streaming.
- Developed an Eclipse wrapper for a JavaFX application using e(FX)clipse framework, as well as an automatic XML converter for a pin-mapper application.
- Developed the Google Docs Aggregate Document Checker, a Google Apps plus GWT tool based on the Google API’s (Docs API and Spreadsheet API) for checking the validity of aggregate documents on Google Docs
- Applied assertion based forensics to the DoT’s Toyota runaway acceleration investigation under the auspices of NASA Ames research center. Applied Green Hills RTOS compiler, IDE and StateRover verification tool.
- Developed Hidden Markov Model (HMM) synthesis algorithm for HMM’s that act as automatic test oracles.
- Developed automatic test oracle for NASA IV&V center for the Limit Checker (LC) application. Oracle was written in Java using the StateRover/Eclipse environment.
- Developed source code instrumentation plugin in Eclipse for instrumenting GCC compliant C/C++ programs. Based on CDT technology. Customer: NASA Ames research center.
- Performed V&V of the Orion real time software (Unix and later Green Hills RTOS).
- Developed a light-weight assertion-based verification technique called run-time verification using UML models and/or temporal logic based pattern matching.
- Developed the StateRover, an Eclipse plugin for UML based modeling, code generation (C, C++, Java), socket based debug animation, and database (Apache Derby) recording. Developed semantics and code generators for non-determintsic statechart assertions all described in my 2006 book. Customers using these tools are: NASA IV&V center, the Missile Defense National Team, Singapore DSTA.
- Developed TPTP and Ant regression test suites for above-mentioned plugin. Performed cross platform testing on Linux (openSUSE and Ubunto) using VMWare.
- Developed a Productivity Reporting Eclipse-plugin that tracks the evolution of UML artifacts across a team of developers. Uses Java, Apache Derby, and BIRT. This tool is currently used by NASA’s IV&V center for productivity reporting across multiple projects.
- Developed a JUnit-based automatic white-box automatic test generator (WBATG) for reactive-systems (see my book for more details), currently used by NASA IV&V center.
- Developed combined black-box and white-box test generator based on the StateRover’s WBATG and Matlab.
- Developed an AspectJ bridge between test oracles and units under test.
- Developed a Java-inspection and Java-annotation based bridge between test oracles and units under test.
- Developed persistence for UML-based controllers using Hibernate and Derby DB.
- Developed a similar bridge using Java annotations and Java reflection.
- Developed TLtoSQL, an Eclipse plugin editor and converter from Metric Temporal Logic assertions to SQL.
- Developed run-time assertion-based verification tools known as the TemporalRover and DBRover. These tools preceded SVA, OVL.
- Developed time-series extensions to temporal logic for the asserting about properties such as stability and monotonicity.
- Authored Java PLI, a Verilog-PLI interface to Java.
- Authored eRefsRUs.com, a web job referencing system, using C, CGI, and mySQL database.
- Wrote a book about V&V of complex systems using UML-statecharts.
Confidential
Associate Professor of Computer Science
Responsibilities:
- Applied the DBRover tool I developed in a 2002 evaluation of four formal V&V tools applied to the Deep Impact and Space-station missions.
- Architected and simulated new high-end printer using Matlab/Simulink, including printer-head timing and motion control.
- Developed real-time DSP embedded code and host code for large-area, high-precision, real-time optical sensor system, on Rabbit microprocessor and using QNX RTOS host running the DSP code, combined with debugging GUI in Java on Win2K host with full duplex serial communication between QNX and Win2K. Code development was in Java and C/C++ using JNI interfacing. Used Rational Rose for modeling.
- Developed "network/packet storage" simulation where a document is "saved" by means of bouncing it between web servers.
- Developed automatic upload/download of Excel-2002 data to/from embedded target.
Confidential, Sunnyvale, CA
Sr. Engineering Manager
Responsibilities:
- Managed a Java/UI/DB development team. Was responsible for single-sign-on project using PKI to establish a secure single sign-on framework for customers of partner sites visiting our site. This framework is part of what is today known as Web-services. Technology included ASP, WebMacro, Servlets (Jrun), IIS, SQL Server, JSP, PKI, and XML communication via http, C++, VB, Java. My team consisted of seven engineers (back-end, client-side, DBA, and QA).
- Developed server-side and client side code for on-line magazine, using Java Servlets, JSP, and Gemstone/J which we later replaced with Oracle.
- Filed two patents for state-assignments and FSM partitioning of re-configurable hardware, which consists of a plurality of small PLA’s with communication delays. Built Java simulations for both inventions.
- Development of Confidential and interpreter for text language named YAL that describes hardware memories. Written in Java.
Confidential, Sunnyvale, CA
Architect and Manager
Responsibilities:
- Software architect and project lead. Architected and managed development of BetterState5, using Java/Swing and C/JNI. I joined ISI after selling BetterState to them in 1997. Work consisted of re-writing the product and inventing algorithms for integrating flowcharts inside statecharts, and for the layering of statecharts. BetterState is now part of WindRiver’s tool suite. My team consisted of four developers, two testers, documenter, and later release and installation engineers.
- Added pSos code generator to BetterState.
- Architected and designed new flowchart capability within BetterState.
- Architected and designed new statechart layering capability within BetterState.
Confidential, Cupertino, CA
Owner and President
Responsibilities:
- Inventor and author of diagrammatic software engineering tool named BetterState PRO, that was by 1997 installed in 1000 sites worldwide. Betterstate is a diagrammatic programming and specification tool using Harel statecharts and Petri nets. It includes automatic code generation in Java, C, C++, and C++ for MFC, Delphi, Verilog, VHDL, and Visual Basic. BetterState has been reviewed in IEEE Computer, December 1995 issue. Chosen as one of EDN's "100 Hot Products" in 1994 and 1995. It was acquired by ISI in 1997 (after which I joined ISI) and now belongs to WindRiver Systems. BetterState was first written in C then rewritten in Delphi and MFC.
- Author of NetState, automatic generator of Web Confidential scripts (C and Perl) from flowcharts and statecharts.
Confidential, San Jose, CA
Consultant
Responsibilities:
- Design and test of of a high-speed Confidential controller for a Sparc-LITE processor in Verilog. Worked from written specification to build, simulate and test Verilog code.
- Build regression verification test suite for double speed implementation of a Sparc-LITE processor using Verilog and C.
Confidential, Mountain-View, CA
Consultant
Responsibilities:
- Built a Web server Confidential that combines an interpreter for a C-like language and a database application.
- Includes a parser, html manipulator, database interface, ISAPI (dll extensions under MSVC 4.2), and ODBC.
Confidential, Fremont, CA
Consultant
Responsibilities:
- Connected ATE test software to a Verilog model of a tester machine using Verilog PLI. Uses IPC (sockets) and runs with Verilog XL and Chronologic's VCS.
- Wrote Primitives (Drivers) for ATE tester, under Sun-Sparc, Unix. The primitives worked with actual hardware as well as Verilog model. I extended the primitives to interface to the Verilog model.
Confidential, Santa-Clara, CA
Consultant
Responsibilities:
- Programming of video compression algorithm written for the ATT3210 DSP under ARTA (Apple Real-Time Architecture) for a Mac with a DSP. Code was written in C and assembler.
- Real-time DSP Firmware for wireless communications; TI TMSC40 in mixture of C and assembly.
- PC Camera; image grabbing, handling and color correction from digital camera to PC. C/C++ MFC/Visual Basic.