About CodeMelted Project

The CodeMelted Progressive Web Application (PWA)

The goal of this PWA is to provide something accessible either from a web browser or installed as a PWA. With it installed, you get an SPA experience of both the CodeMelted Sub Domains and external website accessible via the end app drawer.

     

In the above images you see the PWA installed as an independent application. This provides a desktop application experience with access to the CodeMelted Sub Domains in the main application window or external websites that are wrapped within the application window as seen in the third picture.

Another goal is to have the CodeMelted | PWA to serve as a complement to other services. In the above example, the PWA is used as a side bar widget with the Edge web browser. This allows for looking up information and having it open items within the main browser window.

Lastly the PWA can be installed on mobile devices. This allows for the PWA to not only behave as a native app without the need for app stores, but can also complement other native apps and launch them based on the end drawer external services within the PWA.

NOTE: I am a Google fan boy. A lot of the external services wrapped are Google services. Other services are journals, independent creators, and developer tools that are accessible online.

CodeMelted Domains

While the codemelted.com domain hosts the CodeMelted | PWA, the PWA interacts with three sub-domains. These sub-domains can be accessed separate from the main PWA:

Blog Domain

As with any blog, it will contain articles exploring Software Engineering, Science Technology Engineering Math (STEM), amateur photography, the outdoors, and nerd culture. The Software Engineering topics will focus on concepts I have learned over my 20+ year history. It will also document the techniques utilized to build out this website and the CodeMelted | Developer.

As a member of the Association for Computing Machinery, interesting articles will be reviewed and documented along with other professional journal sites that peaks my interest in STEM.The amateur photography will document my jeep outdoor adventures documenting the story behind the pictures and what I was doing. Will also capture any astro-photography I do. More on that later.

Nerd culture will span all sorts of topics. Focus will be on indy creators in comics, music, etc. Also included will be general movie and book reviews. Lastly analysis of topics occurring within nerd culture providing a critical analysis vs. just trying to get clicks.

Developer Domain

My 20 year career allowed me to work on very cool projects. My focus area was in communication systems over Wide Area Networks, satellite, and device communication. I was required to target multiple operating systems and interface with many different systems. To accomplish what we did, our development team identified our common use cases and built common libraries to implement our business logic. This allowed our team to build applications quickly, below cost, and meet customer needs.

Currently I am employed as a software consultant. Part of my current employment had me perform an analysis of the different SDK technologies for cross platform development for mobile devices. Part of this analysis was the study of Progressive Web Applications (PWA). This serves as the ultimate cross platform technology because as long as a browser exists, you can serve up your application.

This gives rise to the CodeMelted | Developer project. This project identifies common use cases all Software Engineers must consider when building applications. These use cases will be developed into common modules to build PWAs and services targeting the following:

Along with building the above modules will be the usage of those modules to support build projects. Besides this website will be the usage of Raspberry Pi boards to build hobby projects of interest.

Photography Domain

As the name suggests, this will house my photography. I enjoy outdoor Jeep adventures and hiking. I take a lot of photos of these adventures. I am not a professional but I try. This domain will catalog those adventures along with any astro-photography I perform.

Socials

I am not looking to become some famous influencer or something. This is a passion project of giving back the experiences I have made. I am but one Software Engineer in a see of Software Engineers. All of us unique and doing work in this fun and interesting field. To that end, getting feedback and building a community I would love to do while I build out this site. They are broken into the following

Every CodeMelted Sub Domain page has a common footer (as seen on this page) that provides access to these environments. This will allow this single Software Engineer to hopefully keep tabs with people as I build a community. Only time will tell.

Mark Shaffer

Senior Software Engineer

mark.shaffer@codemelted.com

https://codemelted.com

📧

📰

Summary

Full stack software engineer specializing in cross-platform application development. Development experiences include working with communication wide area network (WAN) architectures, communication with external devices via network and serial comm, desktop applications with cross platform UI/UX requirements, mobile applications, and dedicated custom server services. With this experience also comes the ability to fully document the software lifecycle from requirements / design, test plans, test cases, and end user documentation.

Skills

Applications:

Android Studio, GitHub Desktop, MS Project, NetBeans, Notepad++, Projucer, QT Creator, Visual Studio Code, Visual Studio 2013 / 2015, Xcode

API Docs:

Doxygen, dart doc, Javadoc, jsdoc, tsdoc, markdown, pandoc

Build Deployment:

apple app store, ant, bitbucket actions, CMake, closure compiler, dart / flutter, deno, google play store, tsc, javac, Jenkins, make, MS build, pwsh

Databases:

Apache Derby, MS Access, SQLite, SQL

Programming Languages:

  • PWA / Cloud Backend: browser APIs (fetch, location / local and session storage / workers / web socket), chrome v8 run times (deno / nodejs), frameworks (ExtJS / jQuery), typescript, web languages (html5, css3, javascript es6 modules)
  • C#: ASP .Net, multi-threaded, Win Forms
  • Java SE: file processing, jdbc, jni, jndi, multi-threaded, rmi, serialization, sockets (http / tcp / udp / ssl), scripting (rhino / nashorn / jython), swing gui development, xml processing
  • Python: disk manipulation, flask, gps processing, qt framework, raspberry pi camera module, simple http server, threading
  • C/C++: databases, file processing, frameworks (Boost, JUCE, QtWidgets, wxWidgets), static library development, sockets (tcp / udp / ssl), threading (pthread / stl thread), vxWorks real-time processing, xml processing
  • Scripting: awk, cmd, bash, javascript, jscript, powershell, pwsh with .NET core, python, sql, vba, vbscript

Requirements / Design:

Confluence, DOORs, Draw I/O, JIRA, Lucid Chart, Magic Draw, Markdown, Mermaid, MS Visio, PlantUML

Source Control:

Bitbucket, ClearCase, git, GitHub, Mercurial, MS Team Foundation Server, PVCS

Testing:

  • Frameworks: bullseye, cppunit, deno, flutter, google test, junit, mocha / chai, qunit
  • Manual: writing simulators, verification & validation with functional / system level test development, writing test plans / reports, requirements verification matrix tracking, performance validation, interface validation

Experience

  • iOS Swift App / Library Development: Maintain, upgrade, and develop new iOS Swift mobile apps / libraries for rendering audio services, managing devices via BLE, integrating with web services, and communicating with cloud endpoints. Provide software engineering expertise in designing new products via user story analysis and UML breakdowns of those products.
  • Automated Forklift/Pallet Jack System: Integrated a set of smart / dumb sensors for obstruction detection via the fork tips. These sensors connected via IO-Link Master bridge connecting via Ethernet/IP and Modbus/TCP industrial protocols to feed their data into the overall single board computer system. This made use of C++ 17 standard with Python for utility programs and automated testing.
  • Smart Home IoT Integration: Refactored a cloud IoT backend for smart appliances from a mix of Python and NodeJS to TypeScript Node codebase for use on the Google Cloud Platform, specifically Firebase. This provided a new consistent backend codebase. Upgrade the website and mobile apps into a Flutter app consolidating those into a single code base from REACT Native. Also implemented AWS and Google Smart Home skills to interact with the smart home appliances.
  • Asset Tracking Mobile Application: Built an asset tracking mobile application in Flutter SDK. This application targeted both Android and iOS. The application was a client to AWS cloud endpoints gathering and updating asset data via GraphQL and REST APIs. The assets were displayed on a Google Map for real-time tracking and getting directions to different trackers. The assets were also managed via a sortable table. The application also provided assets via BLE, allowing for direct updating of an asset, and gathering information about it. The application could also generate and email reports. These were the subset requirements from the overall web portal requirements to support customers in the field.
  • Cross Platform Mobile Framework Evaluation: Did a broad analysis of all technologies related to targeting multiple platforms to determine our best recommendations to our clients. The main targets were Android and iOS with other targets of web, desktop, and IoT evaluated. This consisted of setting up build toolchains along with writing demo apps utilizing different required technologies. The result of this report now allows for picking the right solution for the job to better support clients.
  • Docker Server Suite: Performed systems engineering for a project. The system is a suite of Docker container images (some custom builds, some from Docker repository) joined with a Python flask gateway application. Users can completely access services via a custom web application. Part of the systems engineering was a refactor of the installation process to allow for upgrading aspects of the system instead of a full installation. Other parts include identifying user stories to bring this to a deliverable project hosting within the cloud or on physical hardware along with establishing the existing design and creating a coding standard for scripts. Scripts to perform other tasks were written within Python and bash with a set coding standard for those.
  • User Database Migration: An air conditioner company was migrating their cloud-based system from AWS to GCP solution. Part of this migration was the moving user / device data from Xively database to a Firebase Cloud Firestore. A TypeScript utility was written to make API calls from the old AWS endpoints to transfer the data into the Firebase Cloud Firestore system.
  • Django Endpoints and Test API Framework: Upgraded a Django web application hosted in the Google Cloud Platform to have a dynamic demo capability for on-stage expos. This demo required a facilitator on stage to utilize the web application from a laptop or mobile device to demonstrate the web applications features while ~500 concurrent audience members could see the results of the feature demonstration. This required an architecture upgrade for Django to utilize the ASGI protocol via the Channels framework. Once upgraded, a web socket protocol was utilized to facilitate the demo capabilities. Other changes included allowing access to a mobile device camera, OCR capabilities via the Google Vision API, and an application protocol to facilitate the demo capability over the web socket. Establishment of API endpoints and the ability to validate those endpoints for non-degradation / performance testing. The API endpoints were developed in Django Python interfacing with business logic working with a Postgres database. API documentation was auto generated via swagger.io. Finally, all documentation hosting, Django admin pages, and the demo application completely share a custom look and feel for a light and dark theme. The Test API Framework was developed in Python 3 CLI app utilizing the requests and tabulating python modules. The framework was compiled into an executable to work on Mac OS/ Windows OS. The framework would utilize JSON test input files to validate expected returns from API calls along with measuring how long the calls took. This was summarized in a metrics report. All of this was to support the Django Endpoints into other systems the client was supporting.
  • Jeep Pi Explorer Prototype: This is a Raspberry Pi 3 Camera Module project that can capture photos from within an SUV. The project has three primary goals. The first is the capture of the photos, tagging them with GPS and time information. The second goal is the management of those photos by being able to view, delete, share, and move the photos from the SD card to other storage means. The third goal is access to entertainment items to enjoy while camping in those remote areas. The system is developed using Python 2/3 technologies to access aspects of the Raspberry Pi system with an embeddable web app to support the camera capture features. The “share” feature is an eventual Cloud IoT social feature to share photos with other explorers.
  • QT Framework Evaluation: Performed a technical evaluation of the QT C++ framework for building desktop and mobile applications to provide a single code base and user interface experience. Wrote a procedure with resource links to set up a QMake project and successfully build an application for those operating systems.
  • JUCE Framework Evaluation: Performed a technical evaluation of the JUCE C++ framework for building audio applications. The technical evaluation was to determine how easily one could build user interfaces to target mobile and desktop applications. Identified available training and built several custom components utilizing the framework. Documented the findings in a technical report that will allow other software developers to train and identify the strengths & weaknesses of the JUCE framework as compared to other frameworks.
  • Audio Renderer: Written in C/C++ utilizing the Qt Framework for the user interface. Ran on the Windows 7/10 and Mac OS operating systems. Worked on building a custom user interface utilizing Qt widgets. Widgets were highly customized for the clients' look & feel requirements. Utilized the Qt Designer Plugin Architecture to allow the customized widgets to be dragged & dropped with the Qt Designer Tool. Widget customization included overriding behaviors, custom paint events, and heavy emphasis on QSS. Another side task with this client was the research into QML. Created two prototypes utilizing QML as the front end. The first was a “pure” QML frontend providing a thin C++ communication layer to allow for interacting with the QML. The second was providing integration of the custom widgets with QML but providing the same C++ communication mechanism as the widgets.
  • Unmanned Aerial Vehicles (UAV): Worked on UI written in C/C++ with QT framework, which ran on Windows and Linux OS. Supported Army operators in the field for surveillance and search missions. Worked on modifications to the ACE video payload module written in C, which ran on an embedded military platform, for uploading external data files from a Windows laptop. Worked on a prototype for emergency transponder broadcasting when loss of communication occurred.
  • Electronic Checklist Aide (ECA): Worked on a team that built an automated electronic checklist aide program for the army operator for flight prep,operations, and landing of the UAV. This project consisted of a generator program for the checklist stored as XML and used by the checklist program. The checklist program utilized multiple sockets to interface with other programs to determine if they successfully completed steps as part of the UAV operations. The library was utilized by both applications for the data model, threading, and logging facilities. 100% functional / conditional test coverage accomplished with QTest and Bullseye.
  • British Tank System: Work on a modernization effort for the British tank system as part of the communications team. The technologies utilized C++ modernization wrapping legacy COM objects performing the legacy mission. Subsystems developed included: 1) Message rules routing for email messages that were communicated via the radio network, 2) Chat templates facility utilizing QT and XML to support chat operations, 3) Redesigned the Chat Gateway Stack responsible for sending/receiving messages via XMPP on a radio NET, and 4) Redesigned the MILCAN BUS to communicate for GIS information about the tank’s position and speed.
  • Collision Avoidance and Broadcast System: Java SE8 Raspberry PI2 embedded application with touch screen for emergency responders that processed, displayed, and communicated Graphical Information System (GIS) data over a radio mesh network to other devices. This was done to avoid collision with other equipped emergency vehicles. It also provided the ability to trump traffic signals to allow better responses by emergency vehicles. Also included was the documentation of the procedures to load, build, and flash the programs and GIS data.
  • Profit Hauler: Android application revamp for tracking trucker receipts for end-of-year tax reporting. The revamp included a newly skinned application frontend to be in line with the website and iOS application look & feel. Needed to access the GPS and Camera APIs. Also needed to handle new Android permissions API.
  • Digital Signage: Internal product based on ASP .NET web server, C# Win Form application for management, and a web based front-end for displaying content on flash drives on Windows dedicated screens.
  • Human Resources: ExtJS web site with a Java EE / MySQL backend for managing employees time off and vacation based on time-of-service with the company.
  • ISEF: ExtJS web-based application for modeling software requirements like Rational Rose Use Case Management.
  • Global Windows Provisioning: Aided the System Administration team in developing a series of PowerShell scripts forming a framework for installing software (COTS, custom, security updates) to support the Defense Information System Agency (DISA) hardening of multiple Windows OS platforms worldwide. Skills from this endeavor allowed the Software Engineering team to develop installation packages from custom applications and build simulation/test capabilities using the .NET platform.
  • Advanced Storage Unit (ASU) Upgrade: The MGS is an older mobile system that utilizes 8MM tapes to load the software system. The tape drives were dying, and the government procured the Advanced Storage Unit (ASU) to replace the tape drives. Led a team of five Software Engineers, one Systems Engineer, one HW/Network Engineer, and two Test Engineers to deploy the ASU. This required an update of all site procedures from utilizing 8MM tapes to utilizing the ASU. Use case analysis of both operations/maintenance procedures yielded three new Java applications and the modification of 1970s mainframe applications to communicate via TCP/IP. This was to allow for the development/deployment of a Java virtual tape library server within a WAN accessible by the modified mainframe programs and a dedicated Java client. The final Java program was a dedicated application for transferring data to and from the ASU/virtual tape library.
  • MWDCS Application Suite: Developed a new application for addressing multiple usability and performance issues with four originally developed Java applications on a Windows platform. This required the development of an application bridge to each of the four original Java applications (i.e., turn them into libraries) to maximize code reuse and consolidate the application into a single application view.
  • Advanced Display Unit Screen Capture: A C++ embedded vxWorks display system for receiving vector graphics from the MGS and receiving keyboard / trackball from a customized keyboard hardware. The display unit ran an X-Window system for the vector graphics information. Built into this system is the ability to perform a screen capture and pipe that information to a Windows XP embedded system as a JPEG image for review by the client.
  • MGT Communications Application: Was the creation of a new Java application for the MGS to handle multiple satellite communication interfaces and an Ethernet interface for receiving and transmitting messages. This application required a searchable database and a service to run so the operator could receive data while not being logged into the platform. This effort was a team of three Software Engineers and two Test Engineers with a turnaround time of 6 months and ~18,000 SLOC.
  • GCNM Operator Display Application: Led a team of three Software Engineers to build a command and status application for server applications within a WAN. This Java application communicated with the server applications over SSL providing user credentials when issuing commands and displaying status of all the server applications. In total, there were four to six active servers within the WAN. The server changes were in C++ requiring the use of OpenSSL, PAM, and implementing SNMP v3.
  • GCNM Toolkit Application: Led a team of five Software Engineers to implement the GCNM Toolkit application. This application was an offline application providing management and testing of server applications within a WAN. This was a collection of 7 tools that provide log management, server configuration, scenario editing and simulation testing. The other set of tools provided management of the applications' many features.
  • GCNM Java Common Services Module: Developed a reusable library for the Java applications that wrap many Java APIs into a reusable set of classes between the applications. Some of the features include SSL, Socket transactions (TCP server, client, and UDP), threading, database transactions, XML parsing, and RMI.
  • Eglin Space Surveillance Radar Modernization: Systems Analyst / Software Integrator responsible for the collection/analysis of software development metrics and software subsystem integration/testing within a real-time Java Runtime Environment (JRE). Accomplishment of these tasks included the development of MS Access 2003 database applications, development of test utilities in Java/Unix Shell scripts, and the development of internal operating procedures.
  • Ground Communication Network Modernization (GCNM): System Test Lead responsible for the development of a program test plan, test execution plans, reports for major test phases, and developing the regression test cases against the system requirements (218 software, hardware, and network). Accomplishment of these tasks included the development of MS Access 2003 database applications, development of test tools in Unix Shell scripts/awk scripts, utilization of test tools (Wireshark, simulators, etc.), and the utilization of software / network models.
  • Large Processing Station (LPS) / Mobile Ground System (MGS) Missile Warning Systems: Programmer Analyst responsible for the analysis/implementation/testing of problem reports. Accomplishment of these tasks included the development of requirements/design models of the problems, implementation of the code changes, updates to user documentation, and development of unit/system test procedures. Languages utilized were Fortran 77, Assembler 370, JCL, C, and textual dataset updates.

Education

  • MS in Computer Science (Software Engineering)
  • BS in Computer Information Systems Management
  • AAS in Computer Programming

Training

  • AFSPACE USSTRATCOM NORAD SCTP Overview Course / 2007 / AFSPACE
  • Space Control Missile Defense-Missile Warning Test Manager Workshop / 2006 / Dynamics Research Corporation
  • Supervisor Certification / 2006 / ITT Industries
  • Object-Oriented Analysis and Design Using UML / 2004 / Sun Microsystems
  • Combined Test Force CCIC2S Test manager Course for Cheyenne Mountain Complex / 2004 / CMOC SPO
  • Network Administration for the Solaris 9 OS / 2003 / Sun Microsystems

Awards

  • Special Recognition Awards / 2014, 2013 (2x), 2008
  • SPOT Awards / 2011, 2010, 2009, 2007
  • SBIRS New Ways of Doing Business Team Award / 2008
  • Peer Recognitions / 2003, 2002, 2001


Mark Shaffer’s Resume

Last Updated September 2024