Brian Davis

Software Engineer

Skills

Languages:

C++, C#, SQL, Java, JavaScript, Python, PHP, and more.

Technologies:

Microsoft Visual Studio, IntelliJ IDEA, PostgreSQL, Node.js, Linux

Contact Me

www.linkedin.com/in/acronos

Software Engineer with 20+ years of experience including developing embedded control systems for factory floor automation, Enterprise Resource Planning, and Database Integration. Seeking a position working in a healthy environment with experienced team.

Experience
2020- 2021 Calimon Industries
Developed an infrastructure for research into Artificial Intelligence.
1995- 2020 Davis Core and Pad
Responsible for developing an Enterprise Resource Planning (ERP) system that allowed production managers, plant managers, and supervisors to see real-time data collected from across the business to measure productivity, inventory, profitability. This system included: an embedded controller to run the machines on the factory floor written in C++, a PostgreSQL database to collect the data, and office clients written in C#. Using digital technology the controller provided an approximately 20% decrease in cycle time over the mechanical timer based system used previously. In addition, the first week the full system came online this project created an 8% gain in productivity and only continued to improve productivity and functionality after that.

I was solely responsible for all components of the software process including gathering requirements, architecture and design, coding, testing, deployment, and maintenance. I was also responsible for the IT infrastructure of the corporation from servers to networking to keeping each individual user’s desktop operational as well as all the hardware that ran the controllers and its networks. This was 25 years of labor over many iterations. See my website for a more detailed description of this project.

1995-2002 The first version was written in Dynamic C and assembly on a Z180 embedded controller. Challenges:

  • The original hardware on the machine was physical timer based and very inaccurate with limited functionality. The new system increased accuracy of the timer to 1/10 second and allowed new functionality like vacuum molding. This overall decreased the cycle time by at least 20% and resulted in a corresponding increase of 20% in overall productivity.
  • An OS did not exist for that hardware at that time. To overcome this a custom real time kernel was needed and built using C and Assembly code.
  • Along with the lack of OS there was no network stack. A custom coded token ring type network stack was also created and ran on a RS485 serial network.
  • Eventually the project outgrew the hardware. New Hardware was needed.

2002-2010 The second major version for the controller was created on new hardware based on x86 running Microsoft Windows Embedded. Challenges:

  • Greater longevity of the OS without rewriting of code was desired. Linux was considered but the KDE GUI was very young at this time and Microsoft Windows had a long history of being upgraded with mostly backward compatibility. Proprietary real-time OSs had even less long-term support or were also very expensive. The choice was made to go with Microsoft.
  • The new environment needed a completely new GUI design, overhaul of development environment, and a new OS integration. We rebuilt the main machine controller in C++ only importing small portions from the old design from Dynamic C.
  • Reporting the monitoring system was needed in the office instead of only one each individual controller. We added the PostgreSQL database and clients to collect all the data generated by each of the individual controllers. This database ran on a Debian Linux server and in the end handled gigabytes of data using 36 tables and about 20 stored procedures for the database API written in SQL and PL/pgSQL.

2010-2020 The database alone was all but useless to most users who did not know SQL. Challenges:

  • A client was needed to view the machine data. The above database was fed into several monitoring clients that were used in the office to provide real time data including but not limited to gross and net $/hr for each machine and employee, shift overviews and efficiency, employee efficiencies that could be displayed over multiple time frames. For example, this specifically began to be used for the yearly bonuses.
  • It was desired to add inventory management and this client and database modifications also stored other data such as information on each customer. This client application was written in C# and ran on Microsoft Windows. It could be used anywhere in the world that had permission to access the PostgreSQL database.
  • The second version of this project created an 8% gain in productivity in the first week it went online and only continued to improve the productivity and functionality after that.

1993- 1994 Burton Vision
  • Assisted in development of an interactive sign language-English dictionary for deaf students
  • Language: Hypertalk
1991- 1992 Telecommunication Consulting and Repair
  • Technician doing component level repair and installation on PBX telephone equipment.
  • Reverse engineered and created circuit diagrams for PCB circuit boards.
  • troubleshooting involving soldering and replacing surface mount components
Education
2016- Present Georgia Institute of Technology
MS in Computer Science Degree Candidate Specialization: Machine Learning
2012- 2016 Souther Polytechnical Institute (Kennesaw)
BS in Computer Science