Dan

About Dan Grassi

Dan Grassi
Contact
Resume
Linked In
StackOverflow
Twitter
Dan began developing mini-computer software moving on to micro-computers in the ’90s. He bought his first Mac in January 1984 and has never turned his back from the Mac.  He began developing Cocoa software in 2001 for the ViaVoice speech-to-text application.  Since then he had developed commercial and in-house Mac software products. When the iPhone SDK was announced in 2008 he began writing Apps for the iPhone and now iPad.

Skills

  • Languages: Objective-C, C, SQL, Python
  • Operation Systems: Mac OS X, iOS (iPhone & iPad)
  • SDKs: Cocoa, CocoaTouch, FOundation, Core Foundation
  • Tools: Xcode, Interface Builder, Charles, unix shell
  • Source Control: Git, Subversion, Perforce
  • Speciality: Cryptography, Device Drivers (kernel and user-land)
  • Methodologies: OOD/OOP, Design Patterns, Refactoring, TDD, Clean Code
  • Other: GUI/UX, TCP/IP, CGI
  • Applications: Apple iTunes App Store, mass market consumer applications
  • Legacy: C++, Assembly, Fortran, HTML/CSS, YACC, LEX

iPhone and iPad applications

  • Citrix Receiver: Provides the same functionality as the PC/MAC version, development team member
  • Dream Grab: An easy yet powerful dream journal
  • Hurricanes: Tracking and current storm information aggregation
  • CardKing: Provides loyalty card scanning and access on an iPhone
  • Lap Speed: Calculates speed per lap given a track length
  • Crazy Sage: Creates crazy proverbs by randomly mixing two proverbs together
  • Eliza: Provided a “parody” of “the responses of a nondirectional psychotherapist
  • Hamurabi: Try your hand at governing ancient Sumeria successfully

Mass Market Applications

  • ViaVoice: Voice recognition and dictation application, MacWorld 2001 Best of Show, development team member
  • SafePSD S1100: Enterprise level secure removable flash storage through access control and hardware on device encryption. Implemented OS X access API and libraries, user application and auto-launch daemon
  • Image Rescue 1, 2 & 3: Application for Apple Macintosh that recovers images from damaged or erased flash cards. Responsible for the design of recovery algorithms, plug-in extensibility for image formats and code implementation
  • Active Memory: Method to provide meta information that is persistent across complete flash memory card data erasure
  • LockTight: Secure flash memory card, camera and reader system. Architect of the security architecture covering the camera, memory card, card reader user and administration applications. Implemented the OS X applications. Video
  • SafeGuard 1 & 2: Secure removable flash drive security through access controls or data encryption
  • Development of ProjectX, a project management application, Cocoa with CoreData, development team member

Presentations

  • Organizer for CocoaHeads and Cocoa Developers group in Fort Lauderdale CocoaHeads
  • MODCOMP Users Group National Convention, LISP
  • Cryptography in iOS and OSX
  • Grand Central Dispatch
  • Cocoa Blocks
  • Coding “Best Practices” for developing code
  • Regular expressions including there use in iOS 4
  • Computer memory, allocation, usage and pitfalls
  • OSX and iOS reference count memory management
  • Unit Tests with Xcode 4.x
  • OCMock in Unit Test with Xcode 4.x
  • Xcode 4.2 and the features it brings including better refactoring and ARC
  • Git, Xcode 4.2 integration and remote repositories
  • CGPath, UIBezierPath and transforms
  • Finding mathematical solutions by numeric algorithms
  • TDD demonstrations of the Stack, Roman Numeral and Bowling Katas
  • Public key cryptography: Diffie-Hellman, RSA, Certificates, PKI
  • User Interface Design
  • Best Coding Practices
  • UX — Designed by Raccoons
  • Sniffing The Wire – Network Analyzers
  • AF477 — UX and Errors
  • Professional or Artist
  • Git: Getting started & Using
  • Understanding Retain Count
  • TDD – Test Driven Development

Research and Publications

  • Marine Biological Laboratory, Research Assistant, 1988 – 1999
  • Expert consultant to Cardio Renal New Drug Products Division, FDA, 1986 – 2000
  • MSC Lock: Technical contributor to the usb.org USB lockable storage specification
  • Verapamil Effects on Voltage-Dependent Sodium and Potassium Currents. Federation Proceedings, 49:1200A, 1990; Lipicky, R.J., Greif, P., Knudsen, K., Gill-Kumar, P., Grassi, D.
  • Diltiazem Effects on Voltage-Dependent Sodium and Potassium Currents. Biophysical J., 57:129A, 1990; Lipicky, R.J., Greif, P., Knudsen, K., Gill-Kumar, P., Grassi, D.
  • Flecainide Effects on Voltage-Dependent Sodium and Potassium Currents. FASEB J., 5:, 1991; Lipicky, R.J., Vargas, F., Knudsen, K., Caviedas, P., Grassi, D., and Gill-Kumar, P.

Education

  • The Clean Code Video Series by “Uncle Bob” Martin
  • Operating SystemDesign, graduate course, University of Pennsylvania, Audited
  • Compiler Design graduate course, University of Pennsylvania, Audited
  • Advanced Operating Systems (att unix), Florida Atlantic University, Audited
  • Artificial Intelligence, George Mason University, Audited
  • Electrical Engineering, North Carolina State University

Certifications

  • Sybase Relational and Database Design
  • Sybase System and Database Administration
  • Sybase Performance and Tuning
  • FCC Radiotelephone Operator License, First Class

Conferences Attended

  • Mdevcon, Amsterdam, Netherlands, 2012 – 2014
  • NSConference, Reading/Leicester, England, 2011 – 2014
  • ConveyUX, Seattle, February 2014
  • CocoaConf, Boston, October 2013
  • ACM MobileHCI, Munich, Germany, August 2013
  • WWDC, San Francisco 2003 – 2013
  • CocoaConf, Washington DC, 2012
  • ACM Turing Awards, San Francisco, 2012
  • Voices That Matter, Philadelphia, 2010
  • 360 MacDev, Denver, December 2010
  • CocoaConf, Columbus, 2010
  • Mac Tech, Los Angeles, 2010

Experience

  • Development of the Citrix Receiver for the iPhone and iPad iOS apps. The iPad app was in the app store on day one and is currently the #3 Free Business app in the iTunes store. Worked on authentication, XML parsing, memory usage, GUI, architecture and best practices for coding and design
  • Developed kernel based SCSI vendor specific command I/O device driver
  • Developed kernel based AES encryption driver, PowerPC & Intel
  • Developed userland USB vendor specific command device driver, PowerPC & Intel
  • Developed Active Memory, a method and cross-platform SDK to provide meta information that is persistent across complete flash memory card data erasure.
  • Created a fully automated one click build system from compile to installer. Developed a bug tracking system, developed a prototype file archive and retrieval system
  • Developed a Python program to convert Flash memory card firmware assembly code from 8085 to 186
  • Developed an installer and build system for Xcode C/Objective-C, Interface Builder, Cocoa API/Framework, user-land and kernel I/O device drivers, cryptography
  • Developed Scoptec, a cognitive development educational program aimed at pre-school children
  • Provided the majority of the interface work with the unix BSD kernel
  • Developed a GUI front-end for IBM’s CMVC version control system for Mac OS X, installed and maintained a CVS system
  • Ported PowerPlant to Project Builder
  • Developed the ViaVoice installer application and registration tool
  • Managed a staff of web developers and interfaced with marketing and creative on a daily basis
  • Developed and upgraded java applets
  • Implemented DART/doubleclick serving/tracking including dynamic tag generation
  • Created programs to globally & dynamically synchronize multiple web servers and monitor their status in Python
  • Developed an in-house mass membership-mail program utilizing QMail and Python
  • Developed web content with HTML/DHTML JavaScrip and ColdFusion
  • Interactive program to view experimental data, real-time high-speed data acquisition
  • Consultant working on the ABPM CRADA project at the Cardio Renal Division of the FDA to study ABPM capabilities
  • ABPM database design and creation as well as custom analysis and visualization applications
  • Design and implementation of the ABPM database utilizing Sybase on a Sun workstation
  • Design and implementation of various data reduction programs and GUI data interfaces for the ABPM project
  • Design and creation of custom analysis and visualization applications fpr ABPM data
  • Design and implementation of WAN networking between various sites for the FDA
  • Design, development and testing intelligent graphical (GUI) client/server workstation software interfaced to Sybase SQL databases, DEC VAX image files, SNA LU 6.2 and IBM 3270 HHLAPI sessions
  • Stress tested and corrected memory leaks, handle locking and object freeing problems in several existing MacApp/C++ applications
  • Designed and implemented a parent application which provided logon verification, application management and functional requests via Apple Events
  • (IAC), Sybase, SNA LU 6.2 and 3270 emulation.
  • Developed FORTRAN subroutine package to interface a MODCOMP minicomputer with Rosemont MVCU/II PIO hardware for Bethlehem Steel Corporation
  • Consultant on a distributed network of 11 MODCOMP minicomputers controlling Basic Oxygen Furnaces and Dual Slab Casters for SIDOR
  • Developed solidification and chemistry quality models as part of a continuous caster supervisory control system for Gulf States Steel
  • Port of Versaplot 2.x and Color Versaplot 9.2 to Macintosh
  • Port of Color Versaplot 9.2 to Max IV
  • Port of several data analysis programs to the Macintosh
  • Kermit communications protocol port with enhancements to MODCOMP
  • Port of Tektronics TCS and AGII terminal graphics package to MAX IV
  • Member of the Galileo Deep Space Network technology demonstration project of a Token Ring network of mini-computers for the Jet Propulsion Laboratory
  • Integration all three phases of project which included a high speed optical disk, high speed Token Ring communications network and T1 communications link for the JPL DSN
  • Identified pathological map miss problems in hardware and firmware design of the MODCOMP 3285 super-mini computer and coordinated the resolution of the problem
  • Member of team validating the operation of and resolving erroneous operation for the new 3285 minicomputer
  • Designed a file manager management caching scheme for MAX32 which achieved cache hit rates greater than 95 percent
  • Design and implementation of enhancements to the file manager user interface
  • Definition of the user interface requirements between realix (MODCOMP’s unix) and the underlying MODCOMP MAX32 operating system
  • Design of the file manager data chaining implementation
  • Design and implementation of several development tools including a grep-like searcher
  • Implementation of disk and tape bootstrap loaders.
  • Developed two Forth interpreters, one for 6800 microcomputer another for a MODCOMP minicomputer
  • Developed a micro LISP interpreter for a MODCOMP minicomputer
  • Developed OS debugger with symbolication and time profiler for a MODCOMP minicomputer. The debugger had the capability to single-step through interrupt routines and thunks from 16 to 32 bit modes
  • Ported the MODCOMP file manager from 16 bit to 32 bit hardware
  • Ported a meta-port of the MODCOMP file manager from a proprietary OS (MaxIV) to unix
  • Developed hardware diagnostic programs for MODCOMP minicomputers
  • Developed a structured assembler for MODCOMP computers
  • Technical lead on bringing ethernet to MODCOMP computers via way of a an 68k attached processor
  • Developed IEEE-488 driver for a MODCOMP minicomputer
  • Developed embedded Telnet server, async communications unix device driver
  • Designed and developed a Sybase database on a Sun minicomputer for ABPM (Automated Blood Pressure Monitor) with data from over a dozen drug companies

Comments are closed.