Hi, I'm David Mora

Software Engineer &
Systems
Architect

The design and development of high-quality, maintainable, and user-friendly software is my passion. I am adept at learning new concepts and technologies; a deep thinker, problem solver, and excellent troubleshooter. Used to environments where it is required to “hit the ground running”, I am experienced in quickly adapting my skills to new requirements.

Biography

My engineering journey started when I was six years old and disassembled my parent’s alarm clock because I could see gears through one of the lever slots. Busting the clock and being punished for it did little to deter me from investigating why and how things worked. Other childhood projects included building a photographic enlarger out of an old SLR, a lightbulb, and wood scraps; building an audio amplifier out of a schematic without formal electronic training; multiple chemistry experiments; and more.

The advent of personal computers opened a whole new avenue of exploration and experimentation and kindled a passion that still burns hot in me. I still feel deep satisfaction in designing and writing software that solves a problem or a need. As I matured, I understood that the true value of computers is to use them to benefit others. It is not about the technology; it is about the people. That is what keeps me focused on producing high-quality, human-centered, easy-to-use systems.

This realization—that people are what matters—has driven me to mentor less experienced developers into becoming good engineers, with a clear understanding of the same principles that have helped me succeed in this field.

In my free time, I still tinker with electronics. For example, I made my own web-based sprinkler system controller. I also channel my love for chemistry as a baking hobby with a scientific foundation. Finally, I combine engineering and craftsmanship doing woodwork.

Personal Info

David Mora

mail@davidmora.dev
(360) 518-9086
Oregon, USA

Skillful engineer with extensive system experience; excellent team player

  • Strong experience in software architecture design with deployed systems and applications under my belt.
  • Experience leading projects to completion, including management of other developers.
  • Experience designing systems using cloud technologies. 
  • Experience in the design and development of complete applications, including distributed systems.
  • Strong object-oriented software design skills, including patterns and best practices.
  • System-level development experience on Windows and Linux. 
  • Network programming experience down to the socket level.
  • Strong debugging skills. Both at the software and hardware levels.
  • Proven skills in systems integration with experience in Windows, Linux, and embedded environments.
  • Thoroughly familiar with the full software development cycle.
  • Comfortable and experienced in single-developer and multi-developer environments; I have worked in large corporations, small companies, start-ups, and distributed teams.
  • Self-starter and problem solver. Hands-on approach to the job. I don’t get stuck easily.
Technologies
.NET/C#
ASP.NET
C/C++
Java
Javascript/HTML/CSS
Python
Linux
Languages
English
5/5
Spanish
5/5

Work Experience

SoftSource Consulting

August 2022

Senior Software Consultant At Nike

Backend systems engineering with emphasis on AWS cloud-based services for the Global Trade and Logistics Team.

  • Developed and maintained multiple micro-services using Python and multiple AWS resource types like lambdas, DynamoDB, RDS, SQS, Gateway API and more.
  • Developed and maintained multiple container-based services developed in Python and managed through AWS ECS.
  • Helped maintain legacy Java services Spring applications integrating with Oracle DB.
  • Managed AWS infrastructure using Terraform. 
SoftSource Consulting

June 2022

Senior Software Consultant at Coherent Corp.

Embedded systems and Windows GUI design and development.

  • Updated a WPF Windows application to communicate with a new laser device using the SCPI standard via USB and RS232. 
SoftSource Consulting

February 2022

Senior Software Consultant at Incomm Payments

.NET-based microservices development and AWS integration.

  • Helped design and implement a Web API micro-service based on C# and ASP.NET Core to process and balance high volume orders of electronic gift cards.
  • Created a micro service based on C# and ASP.NET Core that interfaces with Amazon’s Gift Card API to process digital gift cards. 
Biamp Systems

April 2021

Lead Architect

Lead the design and implementation of a innovative product in the company's line.
Mentored other engineers.

  • Integrated with a team developing a new product line for unified conferencing.
  • Led the design of the new product’s architecture, coordinating the work of other designers and keeping it cohesive.
  • Developed software engineering processes for the team and implemented the build and deliverables strategy.
  • Developed several components of the system. 
  • Led and mentored other developers. 
AnalyticsWare

July 2015

Principal Engineer

Designed and implemented high-speed data acquisition systems, and visual processing pipelines with AI and cloud support.
Lead effort to adopt good software engineering practices.

  • Developed a large Linux-based headless system in C++ (and then ported to Java) with high-speed concurrent capabilities for data capture and delivery used by casinos to track chip usage patterns via RFID tags, gathering an almost real-time view of the table, and applying game rules. This information was used upstream by other systems developed by Analyticsware to monitor user activity and and curb fraud.
  • Because the systems run 24/7, developed extensive instrumentation to remotely capture and reproduce system behavior so that it could be optimized and debugged without suspending operations.
  • Designed a remote data acquisition system for large mining equipment using headless Linux systems, C++, IoT, and Bluetooth. Sensors placed on the mining equipment were used to gather its overall health and monitor abnormal behavior and breakages.
  • Designed and developed an agent-based and containerized (Docker) multiple video stream capture and analysis system in Python to process video for event and object detection leveraging Google’s Cloud Platform and Machine Learning technologies. The system was designed to allow a variable number of vide feeds and to customize the processing of each feed by inserting filters and processors in a pipeline fashion. It was also designed for high-speed frame processing to handle video streaming.
Dexcom

January 2015

Senior Software Engineer

Managed the glucose device group, wrote mobile software, and mentored other engineers.

  • Developed an iPhone application to help CGM users browse their glucose history and to share their data with medical personnel.
  • Assisted in the development of software that captures information from other glucose monitoring devices and imports it into SweetSpot’s data analysis services.
Cardsmith

September 2013

Principal Engineer

Architected and led the developer group implementing the founders visionary product.

  • Involved in all aspects of the development of a customer-facing web-based product. From distilling a vision into a more concrete architecture, to the design of specific components and data models.  
  • Assessed, evaluated, and acquired the back-end systems and infrastructure needed for the application to be cost efficient, scalable, and maintainable.
  • Leveraged Azure’s infrastructure to implement the backend support for the system, including data storage, user management, application management, and event handling.
  • Served as liaison between the engineering team and the other stakeholders, helping bridge the chasm of communication that usually exists between technically and non-technically oriented individuals. 
  • Developed a software engineering process including policies, evaluation guides, and performance yardsticks.  
  • Managed a team of four engineers, using modern software development practices to accelerate the deliverable cycles.  
  • Developed budgets and forecasts for equipment usage and costs, as well a labor costs.
US Digital

March 2010

Senior Software Engineer

Designed and implemented software for the company's line of hardware products and internal software for production and testing.

  • Designed the architecture and prototype software for a facilities automation and monitoring system using the TR-069 and associated protocols. Evaluated and selected the hardware to be used by the system. The software was prototyped using Ruby and C++.
  • Investigated strategies to write drivers for the USB4, a data acquisition device. Wrote drivers for the device using C++ and the libusb library. Also ported several of the Windows demo applications to Linux. Rewrote a C# Windows forms demo application using QT and C++.
  • Designed an embedded system to stabilize a camera carried by remote controlled helicopters, compensating for the chopper’s navigation movements. The system was based on the FEZ Panda II board using both .NET Micro and C++ software. It also used a PIC microcontroller as a coprocessor in charge of controlling the stabilization motors. Wrote a WPF application to configure and, when desired, manually control the stabilization system.
  • Designed and coded a Windows application to control a robotic arm that tests many of US Digital’s products for shipping. The system was designed to make it easy to add new test algorithms without having to recompile the application. Also, the robot logic is isolated to make it future proof.
in4matic services

September 2006

Senior Software Engineer

Lead several projects including database management, application porting and remote water pump monitoring.

JCMS
  • The Judicial Case Management System is used by several municipalities in the East Coast to keep track of tickets and associated judicial cases. The customer in this project wanted to modernize the application, converting it from a solution based on the Clarion platform to .Net.
  • Considered with the customer the impact of conversion and designed a system that would minimize changes to the back end.
  • Redesigned the GUI of the system and implemented several dozen forms required for the process.
  • Helped the customer formalize the development process with version control and automated builds.
  • Lead a team of three engineers to complete the application.
Spyglass
  • Creation of a web application to browse and analyze telemetric data collected from monitoring stations.
    • Designed and implemented a database to collect the information. Since the monitors produce large amounts of data, the design included provisions for data partition and efficient storage. The database resides on SQL Server 2005.
    • Set up database replication to a remote server to insure data availability.
    • Created an application to parse and store the data from the monitors. Every night, the monitoring stations produce logs of the information collected from the previous day. Using FTP, this application polls the monitoring stations for the log files, parses them and archives the information in the database.
    • Designed and coded an ASP.NET site to present the collected data in tables and charts, manage users, and configure the monitoring stations.
    • Used AJAX to improve the performance of the data-presenting pages and their usability.
  • Creation of an alarm and event coordination service that broadcasts messages to interested parties. 
    • The system is designed to easily scale from a few dozen to thousands of events per second.
    • Used a modular approach where different concerns run in separate processes with WCF as a means of inter-module communication. This architecture simplifies the eventual distribution of the modules to run on separate machines, with little impact on uptime or configuration.
    • Created an ASP.NET web site to manage users, configure alarms, and assign message delivery methods.
  • Creation of a client-server Windows application to remotely control instrument panels and other electronic components.
    • Designed to work as a Rich Internet Application (RIA), the program is delivered via web download using ClickOnce.
    • Uses the archive database mentioned above through Web Services and WCF.
    • Presents arbitrarily large portions of archival data by performing progressively detailed retrievals. That is, for large samples, the application will first get a coarse data set and present it to the user while more detailed data sets are downloaded asynchronously.
    • Communicates to the monitoring stations to retrieve near real-time information about the equipment under surveillance. This is done through a custom protocol on top of TCP/IP.
    • All communications with the monitoring stations are done asynchronously avoiding pauses or freezes of the GUI.
Saturn
  • Derived from the previous application (Spyglass), Saturn is a streamlined, modular, and highly-configurable application tailored to a vertical market: management of crop irrigation. It uses the same database via RIA services as Spyglass and uses the same communication protocols to poll the monitoring equipment.
  • To accommodate multiple deployment scenarios, I designed a mechanism to allow Saturn to configure itself at run-time based on instructions from the database.
  • Created a configuration tool that allows Field Application Engineers to visually configure Saturn, deciding what instruments to show and assigning other parameters to the application.
Tektronix

February 2005

Software Engineer

Development of process tooling and firmware for their MSO4000 line of oscilloscopes.

  • Designed and implemented a C API for one of the oscilloscope’s custom IC’s. Being designed in-house, the IC only understands op-codes. I created a wrapper library that exposed useful, intuitive operations and encapsulated the op-code handling part.
  • Using Tcl and Expect, developed a flexible test-runner framework that helped QA engineers to integrate disparate software and hardware to test the oscilloscopes.
  • Worked with other engineers in developing several components of the oscilloscope’s firmware.
  • Designed a generic software framework in Perl to implement regression tests in the nightly builds of the firmware.
  • Helped formalize the build process.
  • Worked with the team during the release cycles to test and debug the software.
Aptix

July 1996

Software Engineer

Development of process tooling and firmware for their MSO4000 line of oscilloscopes.

  • Ported an embedded system from a DOS platform to Linux.
    • Researched viable solutions at the time. Performed a risks analysis and ROI projection.  
    • Created a customized “distro”. Due to limited hardware resources this required careful pruning of unneeded functionality.
    • Ported many code sections from DOS to Linux and reconfigured them to take advantage of multitasking properties of Linux with an immediate speed-up of the system.
    • Wrote kernel drivers for specialized hardware like GPIOs, LCD, and such.
    • Wrote system-level support software for serial port communications.
    • Implemented the company’s proprietary network communications protocol using sockets.
    • Created alternate communication routes using mainstream protocols (HTTP, FTP) to replace obsolete proprietary protocols.  
    • Created many ancillary applications in the microcontroller to deal with UI, maintenance, automatic updates, etc.  
    • Created Java applications that communicate with the embedded system and present an easy to use interface to the user.
    • Designed and implemented an automatic and secure firmware-update mechanism.
  • Designed and developed tooling for high-speed testing of large FPGA-based systems, verifying the health of the System Explorer product.
    • Verified that the hardware is free of faults.  Used JTAG technology to verify connections between points.
    • Designed to be flexible and infinitely configurable to accept any combination of FPGAs in the board.
    • Designed to be extremely fast.  Some configurations may require hundreds of thousands of connections and the customer should not have to wait unnecessarily.
    • Used multithreading techniques to make more efficient use of the processor.
  • Leader for all the firmware development projects. Acting both as a supervising developer and as a peer on other projects. 

Education

Electrical Engineering

Instituto Tecnológico de
Costa Rica

1987-1992
Computer Science

Associate Degree Chemeketa Community College

2016-2019
Computer Science

Bachelor - Focus on Systems Oregon State University

2019 - 2023