Scroll To View More
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 over three decades of software development experience in a wide variety of languages, fields, techniques, etc. Now he mostly does Ruby (for security software and Rails back-ends), but he is also skilled in Python, C, Elixir, and much more. He can also mentor your developers and advise on processes and tools, and is a skilled speaker and trainer (as heard at various conferences and user groups in the USA and Europe).
Dave is now available for hire

Portfolio

  • Codosaurus, LLC
    Ruby, Ruby on Rails, Python, JavaScript, C, RSpec, MiniTest, PostgreSQL...
  • Miscellaneous
    Ruby, Ruby on Rails, Python, JavaScript, C, HTML, Google Sites
  • Rosetta Stone
    ActionScript, JavaScript, Ruby on Rails, OS X, Linux, Trac, Jazz, Flash...

Experience

  • JavaScript, 20 years
  • Unix, 20 years
  • SQL, 20 years
  • C, 20 years
  • Ruby, 10 years
  • Ruby on Rails (RoR), 8 years
  • Python, 2 years
Fairfax, VA, United States

Availability

Part-time

Preferred Environment

Mac, Vim, Git w/PRs, and Ruby, Elixir, or Python

The most amazing...

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

Employment

  • T. Rex (President)

    1990 - PRESENT
    Codosaurus, LLC
    • Ran (and still run) all aspects of the company, doing the client work, marketing, bookkeeping, IT—everything!
    • Added features, fixed bugs, mentored junior developers (in Ruby, Python, and testing), improved code quality, and advised on tools and processes for a high-assurance guard project, plus a CORBA IDL to YAML translator, for the US federal government (via a prime contractor), in Ruby (with Sinatra), Python, and C. Also helped "roadmap" parts of this and other projects and brought up (and sometimes got to implement) ideas to save time and labor. This is expected to last until early 2021.
    • Added features and fixed bugs in a Ruby on Rails retail sales floor planning system, plus a Ruby on Rails API-based query-answerer, for RBM Technologies (via Toptal). Helped define a new version of a custom query language, added new types of queries, added the ability to download results in CSV format, removed redundant data copying, removed redundant request types, converted a query answerer from a microservice to an engine, and packaged it as a gem. This resulted in bringing query time down from half an hour to, on average, just over half a second; worst case on known common queries was about two seconds.
    • Added features and fixed bugs in the coaching section of a Ruby on Rails wellness portal for Onlife Health (via RaveTec). Introduced the use of videos for an end-of-sprint demo, reducing the chance of error during live demo. Created developer onboarding documentation on how to set up Onlife's apps and others needed in a development environment.
    • Split a service creation platform into API and UI halves for Verisign (via Celerity IT), for easier scaling. Designed the RESTful API and implemented it in Ruby on Rails. Updated Cucumber/RSpec tests and Python/Java bulk upload tools. Investigated migrating its data storage from MySQL to Riak or NuoDB. Helped out with random other projects and a friend's classes teaching Ruby.
    • Enhanced and repaired Ruby on Rails database table administration web apps for Retrieval Systems Corporation (direct client). Also advised the president and general counsel, and some dev staff, on techniques like pair programming, test-driven development, Agile project management, and other practices conducive to high software quality.
    • Added email contact retrieval to a newsletter subscription manager in Ruby on Rails for HomeActions (direct client). This included adding abilities in the Omnicontacts gem to download contact info from additional online services. Also made the upload importing happen in the background so the user could proceed with other work, fixed several bugs, refactored the code to make later addition of other email providers easier, and advised on test-driven development and other quality-enhancing development practices.
    • Adapted desktop Ruby on Rails views to mobile (mainly splitting up long forms) for Barclaycard (via Object Systems Group, as a temporary employee of theirs). Also came up with ways to ensure that the desktop and mobile views were in sync, helped BAs develop and triage use-cases.
    • Fixed bugs and added features in an event networking and session scheduling site in Ruby on Rails for Halfaker and Associates (as a temporary employee), such as profile completeness checks, day-by-day agenda view, "more like this" for sessions, detection of room booking conflicts, reports in various formats such as PDF or CSV, and having those generated in the background and emailed instead of making the user sit and wait.
    • Created a minimum viable product for a financial portfolio rebalancer in Ruby on Rails for a private individual client. This included educating the client on what a web app might be able to do in such a case.
    • Created a device-track GIS plotter demo in HTML5 and JavaScript for Department 13 (direct client). D13 had a proprietary device that would detect certain signals from certain common devices (can't say more due to NDA). They gave me a batch of data and had me create a demo of what could be done with it, including showing the movement of a given target device and associating it with other target devices. I also helped in brainstorming meetings about more applications for this data, such as creating a Palantir plug-in.
    • Created a tweet retriever in Ruby on Rails for Atomic Broadcast as part of a potential application to filter social media output.
    • Enhanced a Python group email/SMS system for Anteon (via Liqwid Networks). Added features such as sending email to individuals instead of only groups, uploading files of new users, forwarding messages, admin notifications of new users, monitoring an email address for notices to forward, reports, better workflow, and assorted security restrictions and other robustness.
    • Created a fax board initialization and diagnostic program in C for Send2Fax and configured their server to use it.
    • Created a tool to fix corrupted dBase III files, in C.
    Technologies: Ruby, Ruby on Rails, Python, JavaScript, C, RSpec, MiniTest, PostgreSQL, MySQL, Riak, NuoDB, OS X, Linux, Git, GitHub
  • Volunteer

    1985 - PRESENT
    Miscellaneous
    • Released open-source projects, both mine and others'. Some still can be found on GitHub, and others have been lost to the sands of time, mainly dial-up BBS utilities, MS-DOS screensavers, and text file manipulation utilities.
    • Served (and still serve) as Speaker-Mentor, CfP-finder, and assistant CfP-list maintainer, for Toptal's Speakers Network.
    • Spoke (and still speak) at technical conferences worldwide, and Washington-DC area technical meetups. Spoke at DevConf Poland 2018 and CodeCamp Chisinau 2019; scheduled to speak at NDC Oslo 2019, BCS SPA Software In Practice 2019, Abstractions II (2019), and American Mensa Annual Gathering 2019. Was a backup speaker at RubyNation 2018, though no slots opened. Spoke mainly on software quality, Ruby, and mutation testing.
    • Founded (and still own and run) the LinkedIn “Plain Old C Programming” group. Manage LinkedIn “Rubyists” and “Ruby on Rails” groups. Managed Google Plus "Ruby Programming Language community" until Google Plus went away.
    • Served (and still serve) as organizer (president) of the "DC Computer Consultants" (remnants of ICCA of Greater Washington), and "Independent Consultants of NoVa, DC, & MD" Meetups.
    • Served (and still serve) as an electronic participant for IETF (Internet Engineering Task Force); credited for input in RFC 3458.
    • Served (and still serve) as webmaster for Metropolitan Washington Mensa and Fairfax Toastmasters. Served as webmaster of District 29 Toastmasters and Mount Holyoke Club of Philadelphia.
    • Created and organized Ruby DAY Camp 2013 (an overflow event for Ruby DCamp).
    • Contributed to “C Secure Coding Standards” book and website for CMU SEI CERT.
    Technologies: Ruby, Ruby on Rails, Python, JavaScript, C, HTML, Google Sites
  • 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: ActionScript, JavaScript, Ruby on Rails, OS X, Linux, Trac, Jazz, Flash, Subversion
  • 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: Ruby, Python, Perl, Shell Scripting, OS X, Linux, Kerberos, Jira, Subversion
  • 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: XTS/STOP (Secure OS), C, Java, Shell Scripting, Linux, Windows, CVS, Subversion
  • 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: Python, C, C++, Java, OS X, FreeBSD, Linux, Windows, Subversion, i386 Assembler, Security
  • 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: C++, Windows, Linux, SourceSafe
  • 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: C, C++, Unix (many varieties), Unified Messaging, Telephony, Lotus Notes
  • Software Engineer

    1997 - 1999
    Template Software
    • 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: C, SNAP (Proprietary Language, Libraries, and Development Environment), Linux, AIX, RCS
  • 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: C, C++, Windows, OS/2, Visual Basic, MS SQL Server, SourceSafe
  • 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: SQL, C, Pro*C (C with embedded SQL), Unix, Oracle, Object Pascal, FORTRAN, REXX, MS-DOS batch script, Windows, CMS
  • 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: C, VAX/VMS, VOS (Stratus OS)
  • 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: C, dBase, Clipper, Pascal, MS-DOS batch scripts, Fortran, MS-DOS, VAX/VMS, VOS (Stratus OS), CDC CYBER, HP PCL (Printer Control Language), GRiD-OS

Experience

  • ACRUMEN Software Quality Framework Presentation at Arlington Ruby Meetup (Other amazing things)
    https://bit.ly/acrumen-arlington-ruby

    Presentation on my ACRUMEN Software Quality Framework, presented at Arlington Ruby Meetup (even though it's technology-agnostic). It runs about 30 minutes.

  • ACRUMEN Software Quality Framework Presentation at DevConf.pl 2018 (Other amazing things)
    http://bit.ly/acrumen-from-devconf-poland-2018

    Presentation on my ACRUMEN Software Quality Framework, presented at DevConf Poland 2018 (about 40 minutes).

  • ACRUMEN Software Quality Framework "Lightning-Ball" Talk at Tech Talk DC Meetup (Other amazing things)
    https://davearonson.wistia.com/medias/0yrd83elyb

    "Lightning-ball" talk (longer than a typical "lightning talk" but not full presentation-length) at the Tech Talk DC Meetup, about my ACRUMEN Software Quality Framework and in particular how testing can help with each of its six aspects.

  • Rubocop Improvements (Development)

    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.

  • ACRUMEN Software Quality Framework Presentation at Joy of Programming DC Meetup (Other amazing things)
    https://bit.ly/jop-acrumen-talk

    Presentation on my ACRUMEN Software Quality Framework, presented at Joy of Programming DC Meetup (about 30 minutes).

  • Open Pantry (Development)
    https://github.com/openpantry/open_pantry/pulls?q=is%3Apr+author%3Adavearonson

    Simplify overly complex code, add tests, and shut up a bunch of warnings (by making the code right, not just telling the compiler to shut up), for an open-source project to feed the hungry, in Elixir with the Phoenix web-application framework.

  • Pull Request Roulette (Development)
    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.

  • EOTS (Email of the Species) Gem (Development)
    https://github.com/davearonson/EOTS

    Ruby on Rails gem for describing, showing, and accepting the forms for multiple kinds of email, arranged in a hierarchy. Each kind only needs to have its own specializations described and "inherits" the rest from its "ancestors" in the hierarchy.

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

    A Ruby gem to keep method_missing and respond_to_missing? in sync to make metaprogramming easier and more reliable.

  • The Jobsmith (Development)
    http://www.thejobsmith.com/

    The beginning of a job board I've been working on, on and off. Currently broken due to neglect; one of these years I'll get back to it....

  • The Decider (Development)
    http://thedecider.herokuapp.com/

    My first (visible) Rails app, done mainly just to show prospective clients that yes, I can do Rails, even though I didn't yet have anything public to showcase.

  • Assorted Open Source (Development)
    http://github.com/davearonson

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

  • Ruby Gotchas (Other amazing things)
    http://bit.ly/RubyGotchas

    Slides from my Ruby Gotchas presentation.

  • 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, ActionScript, Fortran, JavaScript, HTML, SQL, Elixir, Python, Java, HTML5
  • Frameworks

    Ruby on Rails 3, Ruby on Rails 4, Ruby on Rails 5, WebApp, Ruby on Rails (RoR), minitest, Phoenix, Sinatra, Jasmine
  • Platforms

    FreeBSD, MacOS, Linux, Unix, Heroku, BSD, VOS, Oracle
  • Other

    Complex Problem Solving, Problem Solving, Software, Software Engineering, Presentations, Gmail, Leadership, Public Speaking, Software Design, GitFlow, Creative Problem Solving, APIs, Debugging, Ruby Gems, API Design, RESTful Microservices, RESTful Web Services, RESTful Services, RESTful Routes, RESTful APIs, Client-server Model, Presentation Design, Agile Sprints, Technical Instruction, Instructor-led Training (ILT), Training, Technical Training, Technical Consulting, Software Consulting, Technology Consulting, Consulting, Consultation, HTTP, SaaS, Security, Application Security, Web App Development
  • Libraries/APIs

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

    Git Flow, GitHub, Git, Mercurial, Emacs, RSpec, Vim Text Editor, Subversion (SVN), Cucumber, Rake, Google Hangouts
  • Paradigms

    RESTful Development, Scrum, Agile Workflow, Agile, Minimum Viable Product, Plain Old Ruby Object (PORO), Agile Software Development, Test-driven Development (TDD), REST, Imperative Programming, Class-based OOP, Behavior-driven Development (BDD), Unit Testing, Object-oriented Programming (OOP), Object-oriented Design (OOD), Functional Programming
  • Storage

    Oracle SQL, JSON, PostgreSQL, MySQL, FlatFile, SQLite, NoSQL, NuoDB, Riak

Education

  • Advanced Communicator and Leader, Bronze (ACB/ALB) in Communication and Leadership
    2003 - 2016
    Toastmasters International - Rancho Santa Margarita, California, CA
  • Bachelor's degree in Computer Science
    1984 - 1985
    Arcadia University - Pennsylvania
I really like this profile
Share it with others