Dave Aronson, Software Developer in Fairfax, VA, United States
Dave Aronson

Software Developer in Fairfax, VA, United States

Member since February 25, 2014
Dave has developed software since 1980 in a wide variety of languages, fields, techniques, and domains. He now mostly does Ruby (on and off Rails) but is also skilled in Python, C, Elixir, and much more. He is a seasoned speaker on software development topics at conferences, user groups, and podcasts. With his gathered knowledge, Dave can mentor your devs and advise on processes and tools.
Dave is now available for hire

Portfolio

  • Codosaurus, LLC
    GitHub, Git, Linux, OS X, NuoDB, Riak, MySQL, PostgreSQL, minitest, RSpec, C...
  • Rosetta Stone
    Subversion (SVN), Flash, Jazz, Trac, Linux, OS X, Ruby on Rails (RoR)...
  • Comcast Cable
    Subversion (SVN), Jira, Kerberos, Linux, OS X, Shell Scripting, Perl, Python...

Experience

Location

Fairfax, VA, United States

Availability

Part-time

Preferred Environment

Elixir, Ruby, Git, MacOS

The most amazing...

...thing I've developed lately is a system to translate OMG CORBA IDL to YAML, including certain specially-formatted comments.

Employment

  • T. Rex (President, CEO, Owner, etc.)

    1990 - PRESENT
    Codosaurus, LLC
    • Ran all aspects of the company, doing everything including the client work, marketing, bookkeeping, IT, and more.
    • Added features and fixed bugs in a high-assurance guard project for US government (via prime contractor), in Ruby (with Sinatra), C, Python, and bash-scripting.
    • Added features, fixed bugs, refactored code, etc. in assorted Ruby on Rails applications in a wide variety of industries. Also some group email web software in Python, plus a fax board initializer, and a corrupt dBase III file repairer, in C.
    • Taught clients testing, TDD, Agile/Scrum, use of source and issue trackers, and other skills conducive to rapid delivery of high quality software. Mentored junior developers. Advised on tools and processes. "Roadmapped" projects.
    • Spoke at technical conferences. Co-organized TDDConf.com. Created and ran RubyDayCamp 2014 conference, solo. Maintained Call-for-Papers list for Toptal's Speakers Network. Managed programming language forums, and Meetups for consultants.
    • Contributed to CMU SEI CERT's “C Secure Coding Standards”. Participated in IETF (Internet Engineering Task Force); credited for input in RFC 3458. Released assorted Open Source. Served as webmaster for local nonprofits.
    • (Note: full-time from 1990 to 1992, then part-time between "permanent" jobs plus occasional evenings and weekends, full-time again from 2011 to 2021, now semi-retired.).
    Technologies: GitHub, Git, Linux, OS X, NuoDB, Riak, MySQL, PostgreSQL, minitest, RSpec, C, JavaScript, Python, Ruby on Rails (RoR), Ruby, Ruby on Rails 4, Ruby on Rails 3, Ruby on Rails API, Ruby Gems, Background Jobs, Background Threading, CSV Import
  • Developer IV

    2010 - 2011
    Rosetta Stone
    • Created and enhanced games and related tools such as content-set editors.
    • Added those games and tools to Ruby on Rails pages, passing data via JavaScript.
    • Added new pages to a Ruby on Rails site engine, modifying the controller and views.
    • Mentored junior staff by reviewing code and conducting software engineering training.
    • Proposed ideas for new games.
    • Integrated with components from other teams or third parties (such as web analytics).
    Technologies: Subversion (SVN), Flash, Jazz, Trac, Linux, OS X, Ruby on Rails (RoR), JavaScript, ActionScript
  • Senior Software Engineer

    2009 - 2010
    Comcast Cable
    • Wrote Ruby, Python, and Perl programs to record device performance data.
    • Created a Ruby on Rails web application to record and estimate the risks of projects, broken out by various types of risk.
    • Created a data file clearinghouse to streamline the data-file transfer agreement process, in bash script.
    • Assisted in the security design and implementation for a single-sign-on effort.
    • Elicited requirements from other teams to determine needs for performance recorders.
    Technologies: Subversion (SVN), Jira, Kerberos, Linux, OS X, Shell Scripting, Perl, Python, Ruby
  • Senior Lead Software Engineer

    2004 - 2009
    BAE Systems
    • Created multiple frameworks for rapid development of near-real-time data guards (traffic scrubbers) since our extant frameworks were too slow. Used those frameworks to create data guards for demos and for clients, including NRL (Naval Research Laboratory), NATO C3A (North Atlantic Treaty Organization's Command, Control, and Communications Agency), NTT Data, and other parts of BAE Systems.
    • Developed a week-long training class on information security principles; how to install, use, program for, and administer STOP OS; how to use my main framework, and our main older one; and other BAE Systems products. Taught this class to NATO C3A (in The Hague), NTT Data (in Tokyo), Lockheed-Martin (in Ft. Worth, Texas), and assorted BAE Systems personnel (both the American company BAE Systems Inc., and its British parent BAE Systems plc).
    • Architected the next generation of the DSG data guard system and wrote its internal message transport system. Helped analyze security flaws in the previous generation.
    • Modified the STOP 6 OS networking stack to let it read and write raw Ethernet packets, to let it act as a DHCP server or client.
    • Helped adapt Samba for use as an MLS (multi-level secure) file server for use on F-35 JSF (joint strike fighter) mission plans. Traveled to Ft. Worth to install STOP and our Samba at the Lockheed-Martin plant producing F-35s.
    • Co-developed weekly CISSP (Certified Information Systems Security Professional) certification exam preparation classes for colleagues, and co-taught it for a full run of twelve weeks.
    • Taught seminars on modern software engineering techniques such as pair-programming and TDD (test-driven development).
    • Enhanced and maintained the STOP 7 operating system installer and a package installer/upgrader.
    • Tested the functionality of most of our compatibility-patched versions of BusyBox and other open-source utilities, under STOP 6 and 7, and submitted the patches upstream.
    • Founded a Toastmasters club (first new club in District that year) and served as president and webmaster.
    • Won the Chairman’s Award for Innovation (for “helping F-35 get off the ground”); was nominated many other times for the Chairman’s Award for Innovation or for Transferring Best Practices.
    • Won a Certificate of Achievement for Outstanding Service and Performance.
    • Won a spot award for rescuing the company's reputation with a disgruntled client, which resulted in multiple man-years of additional business. Traveled to Charleston, SC to pair-TDD with their team lead many times.
    Technologies: Subversion (SVN), CVS, Windows, Linux, Shell Scripting, Java, C
  • Senior Software Engineer

    2003 - 2004
    Secure Software
    • Fixed and enhanced a static analyzer that inspected many different languages, in C.
    • Fixed and enhanced a static analyzer that inspected binaries, not human-readable source code.
    • Wrote Python static analysis plugins to find usage of mobile code or files in Java, and usage of the Windows registry in C or C++.
    • Made memory leak hunting easier by enhancing the memory allocation library.
    • Helped plan test procedures as part of a code quality initiative.
    Technologies: Security, Assembler, Subversion (SVN), Windows, Linux, FreeBSD, OS X, Java, C++, C, Python
  • Senior Software Engineer

    2001 - 2001
    Cryptek Secure Communications
    • Wrote a monitoring program in C++ for Windows to detect frozen VPN devices (external versions of our network cards), save sniffer logs, and either power-cycle the frozen device or failover to backup device.
    • Wrote requirements, use cases, and visual prototypes for a new management console for an IPsec (Internet Protocol Security)-based VPN (Virtual Private Network) using our network cards.
    • Researched management GUIs of top ten IPsec-based VPNs and presented a competitive analysis to my supervisor and colleagues.
    • Improved throughput by writing a utility to set the Ethernet MTU (Maximum Transmission Unit) on any version of Windows.
    • Wrote a manual test plan for the current VPN management GUI.
    Technologies: Visual SourceSafe, Linux, Windows, C++
  • Senior Software Engineer

    1999 - 2001
    3Com
    • Added VPIM (Voice Profile for Internet Mail) 3 to a Unified Messaging platform. Discussions in IETF Working Group creating the standard led to credit in RFC 3458.
    • Enhanced and maintained a system for mobile non-SMS notification of office voicemail, using the normal mobile-account message-waiting indicator instead.
    • Co-wrote a multi-process multi-threaded tool simulating 1,400 users per PC.
    • Invented a way to change sound file speed, preserving quality better than simple interpolation while retaining greater speed than Fast Fourier Transforms; partially prepared the patent application, including a library containing the function.
    • Added a Zmodem file transfer protocol to a telnet/dialup VT100 emulator.
    • Added more languages to a text-to-speech server.
    • Created SCE (Service Creation Environment) scripts to allow the UM platform to act as a client for an advertising server to support free cell phone service.
    Technologies: Lotus Notes, Telephony, Unified Communications, Unix, C++, C
  • Software Engineer

    1997 - 1999
    Template Software (now part of Cicero)
    • Created an ORM for an EAI subsystem.
    • Helped design a new GIS data format.
    • Updated GIS format-translation and filtering functions and utilities to use the new format.
    Technologies: Rich Communication Services (RCS), AIX, Linux, GIS, Enterprise Application Integration (EAI), Libraries, Object-relational Mapping (ORM), C
  • Software Engineer

    1995 - 1996
    Telemet America
    • Added new data items to be transmitted.
    • Added new calculations to the display.
    • Created a new sales contact tracking system.
    • Ported data from the old sales contact system to my new one.
    Technologies: Visual SourceSafe, Microsoft SQL Server, Visual Basic, Mac OS, Windows, C++, C
  • Branch Chief of Systems Engineering

    1992 - 1995
    R&K Engineering
    • Wrote and ran periodic and ad-hoc SQL queries on an Army real-property Oracle database, including figuring out how to extract the desired combinations of data.
    • Developed a flexible SQL query constructor and result display, as part of a facility planning, tracking, and analysis system for the IRS (Internal Revenue Service).
    • Documented and enhanced BRAC (Base Realignment And Closure) calculations in a COBRA (Cost Of Base Realignment Actions) program for the DoD (Department of Defense).
    • Enhanced other real-property database management programs.
    • Investigated potential new technology, fixed technical problems, provided general IT support, etc.
    • Supervised and coached a programmer/technical support person.
    Technologies: Content Management Systems (CMS), Windows, MS-DOS, REXX, Fortran, Object Pascal, Oracle, Unix, Pro*C, C, SQL
  • Consultant

    1989 - 1990
    COMTEK Services
    • Created the user interface for MCI’s phone network monitoring and configuration system.
    • Tested an alarm propagation subsystem for the network element configuration system.
    Technologies: VOS, VMS, C
  • Senior Software Engineer

    1987 - 1989
    Mead Data Central (now Lexis-Nexis)
    • Continued work on communications protocol implementation, from BDM days.
    • Fixed and enhanced database software for newspaper/magazine article lookup by countries and topics (out of a preset list).
    • Replaced creation of SQL to find the articles in Oracle, with "indexed files" (a capability of Stratus VOS), reducing typical search time from several seconds to under one.
    • Created software to serve up newswire articles using freeform boolean text searches, including reception over a proprietary protocol, indexing, storage, reception of the query, interpretation of the query, finding results, and serving up results to client.
    Technologies: SQL, Oracle, VOS, C
  • Assistant Programmer and Analyst

    1985 - 1987
    BDM (Braddock, Dunn, & McDonald; now part of Northrop-Grumman)
    • Wrote a system health monitor for the company VAX center.
    • Wrote an idle process killer for the company VAX center.
    • Researched same-user same-account inter-project security and accounting for the company VAX center.
    • Wrote parts of a war game system for Air Force University.
    • Wrote a weapons accuracy plotter for the JTSC (Joint Test Support Center).
    • Wrote a generic-printer histogram plotter for the JTSC.
    • Wrote a troop unit strength calculator and comparator for the CIA (Central Intelligence Agency).
    • Enhanced a program to analyze or design (derive behavior from measurements, or vice-versa) various types of physical shock isolators for the United States Air Force.
    • Co-wrote multi-process multi-threaded communications software to handle transactions sent over an X.25-like proprietary protocol for LexisNexis (who then hired me).
    Technologies: GRID, PCL, CDC, VOS, SAP VMS, Fortran, MS-DOS, Pascal, Clipper, dBASE, C

Experience

  • Mutation Testing Talk Playlist
    https://www.youtube.com/playlist?list=PLMrm16n64Bub8urB-bsyMyHiNPMLG7FAS

    YouTube playlist of versions of my main talk on mutation testing, delivered at various conferences from 2019 to today. They incorporate more updated information and better presentation as time goes by. They are also of different lengths, from 22 to 60 minutes. One of them, in Elixir, also includes a lightning talk at the front.

  • Open Pantry
    https://github.com/openpantry/open_pantry/pulls?q=is:pr+author:davearonson

    Improved an Elixir/Phoenix web app for an open-source project to feed the hungry called Open Pantry. My main focus was to simplify overly complex code, add tests, and silence many warnings by rewriting the code.

  • ACRUMEN Playlist
    https://www.youtube.com/playlist?list=PLMrm16n64BuaRo9N8xY8OnTOWZ5K2aFG1

    YouTube playlist of my talks and one podcast appearance on my ACRUMEN definition of software quality, from 2018 to present.

    None of the talks (so far) were at conferences that recorded the sessions professionally, so the AV quality isn't excellent. Please pay closer attention to the content.

  • Rubocop Improvements
    https://github.com/rubocop-hq/rubocop/pulls?q=is:pr+author:davearonson+

    Pull requests to Rubocop, including making it allow certain styles it previously did not realize, but that I prefer, such as allowing braces on procedural one-line blocks but otherwise following "semantic" block delimiting.

  • Pull Request Roulette
    http://www.pullrequestroulette.com/

    A site to match up open source projects on GitHub that have pull requests that need to be reviewed with people willing to do the review. Not all that much there now, but please see the README and the issues at the GitHub repo (https://github.com/davearonson/pull-request-roulette/) for what I have in mind for the long term.

  • Hook Lying Syncer
    https://rubygems.org/gems/hook_lying_syncer

    A Ruby gem to keep "method_missing" and "respond_to_missing?", two very important methods to supply for Ruby metaprogramming, in sync to make that easier and more reliable. Without these properly coordinated, subtle bugs could be created inadvertently.

  • Assorted Open Source
    http://github.com/davearonson

    Assorted things I've released as open source; some are already included in this list individually.

  • Ruby Gotchas
    http://bit.ly/RubyGotchas

    Slides from my "Ruby Gotchas" presentation, delivered to assorted Washington DC area Ruby Meetup around 2014. Sorry, there is no video available. Also, my slide style has changed drastically since then. One of these years I will update the slides and create a coherent story out of these poorly-connected snippets.

  • Ruby on Rails Best Practices and Tips by Toptal Developers (Publication)
    This resource contains a collection of Ruby on Rails best practices and Ruby on Rails tips provided by our Toptal network members.

Skills

  • Languages

    Ruby, C, HTML, SQL, Elixir, JavaScript, Python
  • Other

    Software Engineering, Presentations, Software, Public Speaking, Software Design, APIs, Ruby Gems, API Design, Client-server Model, Technical Training, Software Consulting, SaaS, Application Security, Web App Development, Software as a Service (SaaS), Unified Communications, Telephony, Leadership, Presentation Design, Automated Tests, Training, Conference Speaking, Development, Software Development, Software Development Lifecycle (SDLC), Software Development Management, Web App Testing, Background Jobs, Background Threading, CSV Import
  • Frameworks

    Ruby on Rails (RoR), Phoenix, Sinatra, Ruby on Rails 4, Ruby on Rails 3
  • Libraries/APIs

    Rails Engines, REST APIs, jQuery, Ruby on Rails API
  • Tools

    GitHub, Git, Rubocop, GIS, Cucumber
  • Paradigms

    Scrum, Agile, Agile Software Development, Test-driven Development (TDD), Behavior-driven Development (BDD), Unit Testing, Object-oriented Programming (OOP), Web App Design, Object-relational Mapping (ORM), Functional Programming, Testing, Metaprogramming
  • Platforms

    MacOS, Linux, Unix, Heroku
  • Industry Expertise

    Security
  • Storage

    JSON, PostgreSQL, MySQL, NoSQL

Education

  • Bachelor's degree in Computer Science
    1984 - 1985
    Arcadia University - Pennsylvania

Certifications

  • Advanced Communicator and Leader, Bronze (ACB/ALB)
    JANUARY 2003 - PRESENT
    Toastmasters International

To view more profiles

Join Toptal
Share it with others