<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Josh Lambert — Work</title><link>https://joshlambert.xyz/work/</link><description>Selected work from Josh Lambert and his companies: networks, mobile apps, websites, and infrastructure built across Alabama and beyond.</description><language>en-us</language><copyright>© 2026 Josh Lambert</copyright><managingEditor>josh@lambertmail.xyz (Josh Lambert)</managingEditor><webMaster>josh@lambertmail.xyz (Josh Lambert)</webMaster><lastBuildDate>Tue, 30 Jun 2026 03:26:39 +0000</lastBuildDate><atom:link href="https://joshlambert.xyz/work/index.xml" rel="self" type="application/rss+xml"/><item><title>Connecting the Comeback: Powering Birmingham’s New Amphitheater</title><link>https://joshlambert.xyz/work/connecting-the-comeback-powering-birminghams-new-amphitheater/</link><guid>https://joshlambert.xyz/work/connecting-the-comeback-powering-birminghams-new-amphitheater/</guid><pubDate>Mon, 23 Jun 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<p>When Birmingham’s brand-new Coca-Cola Amphitheater was preparing to host its <a href="https://www.wbrc.com/2025/06/23/fans-other-states-countries-visit-coca-cola-amphitheater-first-show/" rel="noopener" target="_blank">debut show with comedian Matt Rife</a>
, one critical piece was running late: the internet connection.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/Screenshot-2025-06-23-at-10.43.42_AM-1024x516_hu_587d2bb807147670.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/Screenshot-2025-06-23-at-10.43.42_AM-1024x516_hu_587d2bb807147670.webp" width="1024" height="516"
           alt="Aerial view of the new Birmingham Coca-Cola Amphitheater under construction, showing the steeply terraced bowl of empty stadium seats and a section of standing-room area." loading="lazy" decoding="async">
    </a></figure></p>
<p>Although preparations began well in advance and the venue team stayed proactive, the scheduled fiber delivery faced unforeseen delays and wasn’t ready in time for the opening weekend. For a major new venue preparing to host its first show, that kind of gap isn’t just inconvenient, it’s critical.</p>]]></description><content:encoded><![CDATA[<p>When Birmingham’s brand-new Coca-Cola Amphitheater was preparing to host its <a href="https://www.wbrc.com/2025/06/23/fans-other-states-countries-visit-coca-cola-amphitheater-first-show/" rel="noopener" target="_blank">debut show with comedian Matt Rife</a>
, one critical piece was running late: the internet connection.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/Screenshot-2025-06-23-at-10.43.42_AM-1024x516_hu_587d2bb807147670.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/Screenshot-2025-06-23-at-10.43.42_AM-1024x516_hu_587d2bb807147670.webp" width="1024" height="516"
           alt="Aerial view of the new Birmingham Coca-Cola Amphitheater under construction, showing the steeply terraced bowl of empty stadium seats and a section of standing-room area." loading="lazy" decoding="async">
    </a></figure></p>
<p>Although preparations began well in advance and the venue team stayed proactive, the scheduled fiber delivery faced unforeseen delays and wasn’t ready in time for the opening weekend. For a major new venue preparing to host its first show, that kind of gap isn’t just inconvenient, it’s critical.</p>
<p>With only a few days to go, my team stepped in and solved this connectivity challenge.</p>
<p>Using an existing DIA circuit with ample bandwidth at a nearby downtown high rise in Birmingham, we established a wireless link to the amphitheater rooftop using bonded 6GHz and 5GHz point-to-point microwave. A secure VPN tunnel extended the connection back to the <a href="https://alabamalightwave.com/" rel="noopener" target="_blank">Alabama Lightwave</a>
 Montgomery network core and <a href="https://mgmix.net/" rel="noopener" target="_blank">MGMIX</a>
, preserving IP space consistency and full routing control.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/Screenshot-2025-06-23-at-12.41.59_PM-1002x1024_hu_642a56c45adf92f4.webp" aria-label="View larger image" style="flex-grow: 0.9784735812133072;"><img src="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/Screenshot-2025-06-23-at-12.41.59_PM-1002x1024_hu_bd340936ade87dda.webp" width="1000" height="1022" alt="Two stacked parabolic backhaul dishes on a rooftop pole, aimed across the downtown Birmingham skyline under a winter overcast sky." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/Screenshot-2025-06-23-at-12.44.49_PM-937x1024_hu_ffec3278f2803ec2.webp" aria-label="View larger image" style="flex-grow: 0.9149130832570905;"><img src="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/Screenshot-2025-06-23-at-12.44.49_PM-937x1024_hu_285e2ba8fccdae.webp" width="1000" height="1093" alt="Young Alabama Lightwave technician in a hard hat flashing a peace sign inside an open warehouse loading dock at the amphitheater build site." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/Screenshot-2025-06-23-at-12.43.36_PM-1-1024x766_hu_2677105b04769757.webp" aria-label="View larger image" style="flex-grow: 1.3368983957219251;"><img src="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/Screenshot-2025-06-23-at-12.43.36_PM-1-1024x766_hu_1b2c380c84d52b3.webp" width="1000" height="748" alt="Articulated boom lift extended toward the rafter trusses inside the Birmingham Amphitheater at night, lit by overhead floodlights." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/Screenshot-2025-06-23-at-12.44.38_PM-1024x915_hu_8b63721756f515cc.webp" aria-label="View larger image" style="flex-grow: 1.1185682326621924;"><img src="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/Screenshot-2025-06-23-at-12.44.38_PM-1024x915_hu_b8a2045f48e8f24a.webp" width="1000" height="894" alt="Blue Genie articulated boom lift extended toward the corrugated-metal exterior of the Birmingham Amphitheater on a cloudy afternoon." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/Screenshot-2025-06-23-at-12.41.50_PM_hu_dc7bf43b3202996c.webp" aria-label="View larger image" style="flex-grow: 0.9823182711198428;"><img src="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/Screenshot-2025-06-23-at-12.41.50_PM_hu_387a41f36d5931c6.webp" width="1000" height="1018" alt="Pair of parabolic backhaul radios mounted on a rooftop balcony rail above a downtown Birmingham skyline view at golden hour." loading="lazy" decoding="async"></a>
  </div></figure>

<p>The facility needed fast and reliable internet, and we delivered, with real-world bursts hitting 700 mbps during testing to public speed test servers, using gear we sourced and deployed on short notice.</p>
<p>The internet went live just in time, and the show didn’t miss a beat. It’s a powerful reminder of what wireless can do: deliver fast, dependable connectivity when traditional options fall short. In moments where speed matters and fiber just can’t get there fast enough, wireless steps up and gets the job done.</p>
<p>We were not alone in getting this connection online. Several good community citizens and vendors stepped up to make this happen:</p>
<div class="mediatext mediatext--left"><figure class="mediatext__media"><a class="zoom" href="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/dba_hu_ccdc23cb4067ce91.webp" aria-label="View larger image"><img src="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/dba_hu_ccdc23cb4067ce91.webp" width="427" height="448" alt="Logo for DBA, a yellow circular badge featuring a stylized black panda inside a circle and bold &#39;DBA&#39; lettering below." loading="lazy" decoding="async"></a></figure><div class="mediatext__text prose flow">
    Big thanks to <a href="https://x.com/knewter" rel="noopener" target="_blank">Josh Adams</a>
 at <a href="https://dbadbadba.com/" rel="noopener" target="_blank">DBA</a>
 for facilitating access and key introductions when time was tight. His support helped us move fast and stay on track.
  </div>
</div>

<p>Additionally we’d be remiss if we didn’t call out the rock solid response time from key vendors in making this happen. You’re in good hands with any of these folks:</p>
<ul>
<li>Marc Negri at <a href="https://www.cticonnect.com/" rel="noopener" target="_blank">CTIConnect</a>
 for quickly getting us the 6GHz radios we needed for this link.</li>
<li><a href="https://broadbandnow.com/Eagle-Internet-Services" rel="noopener" target="_blank">Eagle Internet / BDA</a>
 for lending 5GHz radios they had on the shelf for this project.</li>
<li>Ruben Pate at <a href="https://www.cahabamachine.com/" rel="noopener" target="_blank">Cahaba Machine</a>
 in Centreville for rushing the build of custom non-penetrating roof mounts.</li>
<li>Reed Matte from a local fiber provider for same-day response time assisting with a rushed site walk.</li>
<li>Anthony Polsinelli at <a href="https://carbonnetworksolutions.com/" rel="noopener" target="_blank">Carbon Network Solutions</a>
 for rushing the network engineering services needed to establish the connection.</li>
<li><a href="https://flyteccomputers.com/" rel="noopener" target="_blank">Flytec Computers</a>
 for fast order processing and overnighting of the NetPoint dishes.</li>
</ul>
<h3 id="another-beat-in-birminghams-comeback-pulse">Another Beat in Birmingham’s Comeback Pulse</h3>
<p>The Coca-Cola Amphitheater isn’t just a new venue. It’s a signal. Like <a href="https://protectivestadium.com/" rel="noopener" target="_blank">Protective Stadium</a>
, <a href="https://topgolf.com/us/" rel="noopener" target="_blank">Top Golf</a>
, the <a href="https://www.wbrc.com/2025/03/13/urban-supply-development-set-bring-new-life-birminghams-parkside-district/" rel="noopener" target="_blank">revitalization of Parkside</a>
, and the <a href="https://innovationdepot.org/" rel="noopener" target="_blank">Innovation Depot</a>
’s tech-forward momentum, it’s part of a broader story, a city shaking off the dust and building something better.</p>
<p>Birmingham is no longer quietly transforming behind the scenes. It’s stepping into the spotlight, backed by real investment in culture, commerce, and community. The amphitheater brings world-class entertainment downtown, but more importantly, it brings people together. Residents, visitors, creators, and builders, all sharing in the energy of a city that knows its best days are still ahead.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/AdobeStock_588014770-1024x682_hu_45408e6c0ef30f68.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/connecting-the-comeback-powering-birminghams-new-amphitheater/AdobeStock_588014770-1024x682_hu_45408e6c0ef30f68.webp" width="1024" height="682"
           alt="Aerial photo of downtown Birmingham, Alabama at sunset, with the Wells Fargo Tower and other office towers reflected in the orange-streaked sky." loading="lazy" decoding="async">
    </a></figure></p>
<p>And we want to give a <a href="https://www.livenation.com/" rel="noopener" target="_blank">heartfelt thanks to Live Nation</a>
 for investing in that future. This venue is a gift to the city, and we’re proud to call them neighbors and collaborators in Birmingham’s comeback.</p>
<h3 id="connectivity-is-part-of-the-foundation">Connectivity Is Part of the Foundation</h3>
<p>Behind every thriving event, venue, and moment in Birmingham, there’s infrastructure working behind the scenes. Reliable connectivity is part of that foundation. As the city grows, so does the need for fast, flexible, and resilient internet that keeps up with the pace of progress.</p>
<p>Whether through fiber, microwave, or what’s next, the goal is the same: to support a Birmingham that’s more connected, more capable, and more ready than ever.</p>
<h3 id="need-fast-dependable-internet-for-an-upcoming-event-or-project">Need fast, dependable internet for an upcoming event or project?</h3>
<p>If you’re up against a tight deadline or a tough location, I can help. I have the network, experience, and tools to deliver real solutions when others can’t. <a href="mailto:josh.lambert@centrevilletech.com">Drop me an email and let’s talk</a>
.</p>
]]></content:encoded></item><item><title>Lightwave LINK Mobile App Lands In Central Alabama</title><link>https://joshlambert.xyz/work/lightwave-link-mobile-app-lands-in-central-alabama/</link><guid>https://joshlambert.xyz/work/lightwave-link-mobile-app-lands-in-central-alabama/</guid><pubDate>Wed, 14 May 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<p>In an age where digital technology is reshaping how we live, work, and communicate, the need for local connection and community has never been stronger. People are looking for ways to feel grounded, to see and support what’s happening around them. At Alabama Lightwave, we recognize that broadband isn’t just about speed, it’s about bringing people together.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/AL-logo-on-white-1024x227_hu_738d0d729bc56ba1.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/AL-logo-on-white-1024x227_hu_738d0d729bc56ba1.webp" width="1024" height="227"
           alt="Alabama Lightwave Inc. logo, a yellow lightning-bolt &lsquo;A&rsquo; icon next to the black &lsquo;ALABAMA LIGHTWAVE, Inc.&rsquo; wordmark." loading="lazy" decoding="async">
    </a></figure></p>]]></description><content:encoded><![CDATA[<p>In an age where digital technology is reshaping how we live, work, and communicate, the need for local connection and community has never been stronger. People are looking for ways to feel grounded, to see and support what’s happening around them. At Alabama Lightwave, we recognize that broadband isn’t just about speed, it’s about bringing people together.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/AL-logo-on-white-1024x227_hu_738d0d729bc56ba1.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/AL-logo-on-white-1024x227_hu_738d0d729bc56ba1.webp" width="1024" height="227"
           alt="Alabama Lightwave Inc. logo, a yellow lightning-bolt &lsquo;A&rsquo; icon next to the black &lsquo;ALABAMA LIGHTWAVE, Inc.&rsquo; wordmark." loading="lazy" decoding="async">
    </a></figure></p>
<p>We’re a locally owned and operated internet service provider delivering fast, reliable broadband to homes and businesses across Bibb, Chilton, and Choctaw Counties in Alabama. As the CEO of Alabama Lightwave, I’m proud to help lead a team that’s building more than just a network, we’re building infrastructure that supports real, local impact.</p>
<p>We recently launched a new mobile app called <strong>Lightwave LINK</strong>, designed to deepen the bond between Alabama Lightwave and the communities we serve. This app gives users access to high-definition (1080p) weather camera feeds from towers across our coverage area, offering a real-time, on-the-ground look at local conditions.</p>
<p>At the time of this writing, three camera sites are live and streaming in <strong>Centreville</strong>, <strong>Jemison</strong>, and <strong>Woodstock</strong>. Today, a team is installing a fourth camera in <strong>McCulley Hill</strong> (near West Blocton), with a fifth planned for <strong>Eoline</strong> later this afternoon. Our goal is ambitious: <strong>200 camera locations</strong> across Alabama over the next two years.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Screenshot-2025-05-14-at-10.28.46_AM-1024x369_hu_eaed8012ced18f3d.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Screenshot-2025-05-14-at-10.28.46_AM-1024x369_hu_eaed8012ced18f3d.webp" width="1024" height="369"
           alt="Three Lightwave LINK tower preview cards, showing Centreville&rsquo;s e911 dispatch tower, Jemison&rsquo;s Church Street water tank, and Woodstock&rsquo;s GPWB water tank." loading="lazy" decoding="async">
    </a></figure></p>
<h3 id="supporting-first-responders--military-personnel">Supporting First Responders &amp; Military Personnel</h3>
<p>Access to Lightwave LINK is <strong>completely free</strong> for all Alabama Lightwave customers, and we’re going a step further. The app is also available at <strong>no cost</strong> to <strong>all active duty military personnel</strong> and <strong>first responders</strong> in our service areas, including:</p>
<ul>
<li>Police Officers</li>
<li>Firefighters</li>
<li>EMTs and paramedics</li>
<li>EMA personnel</li>
<li>Peace officers at local correctional facilities</li>
</ul>
<p>This ensures that those on the front lines, whether serving their country or their community, can access vital visual information regardless of their internet provider.</p>
<h3 id="changing-the-game-for-severe-weather-coverage">Changing The Game For Severe Weather Coverage</h3>
<p>We’ve partnered with <strong>WBRC FOX6 News</strong> in Birmingham and their Chief Meteorologist <strong>Wes Wyatt</strong> to extend the impact of the Lightwave LINK network. Through this collaboration, <strong>the general public</strong> also benefits from our camera system. WBRC’s app will include updated thumbnail images from the camera network, and their meteorologists have <strong>full 1080p live access</strong> for use in broadcasts and severe weather coverage.</p>
<p>This partnership allows critical visual data from our tower cameras to reach thousands of Alabamians during weather emergencies, providing a new layer of public safety and awareness.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Screenshot-2025-05-14-at-12.49.41_PM-1024x575_hu_e71cad1e3e760e61.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Screenshot-2025-05-14-at-12.49.41_PM-1024x575_hu_e71cad1e3e760e61.webp" width="1024" height="575"
           alt="Lightwave LINK weather-cam screenshot showing downtown Centreville, Alabama under a bright sky, branded with First Alert Weather and Alabama Lightwave overlays." loading="lazy" decoding="async">
    </a></figure></p>
<h3 id="historical-lookout-photo-archival">Historical Lookout Photo Archival</h3>
<p>In addition to live monitoring, the Lightwave LINK camera network will also maintain a <strong>historical archive of still images</strong>, a visual time capsule capturing local skylines, storms, and seasonal change. It’s a small way we’re preserving the unique character of our communities for future generations.</p>
<h3 id="lightwave-link-architecture">Lightwave LINK Architecture</h3>
<p>The Lightwave LINK app has several components that make everything work.</p>
<ol>
<li>iOS and Android Mobile Application</li>
<li>Camera FFMPEG Proxy Server</li>
<li>Link Admin Panel</li>
<li>Link Station Panel</li>
</ol>
<p>The Lightwave LINK mobile application was built with Titanium SDK – a mobile development framework targeting both iOS and Android from a single unified JavaScript codebase. <a href="https://titaniumsdk.com/" rel="noopener" target="_blank">Titanium SDK</a>
 is maintaned by the non-profit <a href="https://tidev.io/" rel="noopener" target="_blank">TiDev foundation</a>
 where I serve as chairman – <a href="https://www.bibbvoice.com/2022/05/01/titanium-mobile-development-software-finds-a-new-home-in-central-alabama/" rel="noopener" target="_blank">based right here in Alabama</a>
.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Screenshot-2025-05-14-at-10.18.31_AM-1024x434_hu_dd48ceb0f8077a42.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Screenshot-2025-05-14-at-10.18.31_AM-1024x434_hu_dd48ceb0f8077a42.webp" width="1024" height="434"
           alt="Five iPhone screens of the Lightwave LINK mobile app: tower views, the Jemison camera detail, network status by site, an active Link Pass, and the More menu." loading="lazy" decoding="async">
    </a></figure></p>
<p>The camera streams are powered by the <a href="https://ffmpeg.org/" rel="noopener" target="_blank">open-source <strong>FFmpeg</strong> library</a>
. A dedicated server connects to each camera’s RTSP feed, remuxing the video into <strong>HLS (HTTP Live Streaming)</strong> format, which enables smooth, browser-based playback without the need for special plugins.</p>
<p><a href="https://ffmpeg.org/" rel="noopener" target="_blank"><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/FFMPEG_LOGO-1024x309_hu_393be903c4edb7f5.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/FFMPEG_LOGO-1024x309_hu_393be903c4edb7f5.webp" width="1024" height="309"
           alt="FFmpeg open-source video toolkit logo, with the green 3D &lsquo;Z&rsquo; mark beside the bold black &lsquo;FFmpeg&rsquo; wordmark." loading="lazy" decoding="async">
    </a></figure></a>
</p>
<p>To manage Lightwave LINK users, we developed a custom admin panel for our support staff. It provides an intuitive interface for tasks like adding or removing users, onboarding TV station partners, uploading overlay graphics, and monitoring platform usage, all without digging through log files or complex database queries. Names and phone numbers in the below screenshot changed to protect customer privacy:</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Screenshot-2025-05-14-at-1.35.12_PM-1024x518_hu_41ee86830eca17cd.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Screenshot-2025-05-14-at-1.35.12_PM-1024x518_hu_41ee86830eca17cd.webp" width="1024" height="518"
           alt="Screenshot of the Lightwave LINK admin web console&rsquo;s User Management page, listing customer phone numbers, pass tiers, and validity dates with edit and Remove Pass actions." loading="lazy" decoding="async">
    </a></figure></p>
<p>We also built a custom software application specifically for TV stations using the Lightwave LINK camera network. It enables fast access to live camera feeds through both a grid view and an interactive 3D map, ensuring that during critical events like tornado outbreaks, meteorologists can immediately identify and display the most relevant camera angles, without wasting time searching manually.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Screenshot-2025-05-14-at-2.34.10_PM-1024x807_hu_40fae108e73624a1.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Screenshot-2025-05-14-at-2.34.10_PM-1024x807_hu_40fae108e73624a1.webp" width="1024" height="807"
           alt="Map view of the Lightwave LINK Station Viewer, showing labeled tower pins scattered across a satellite map of Bibb and Chilton counties." loading="lazy" decoding="async">
    </a></figure></p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Screenshot-2025-05-14-at-1.49.16_PM-743x1024_hu_a4fb6ae13fba71b4.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Screenshot-2025-05-14-at-1.49.16_PM-743x1024_hu_a4fb6ae13fba71b4.webp" width="743" height="1024"
           alt="Lightwave LINK Station Viewer detail page for the Centreville tower, showing the daytime webcam view, location coordinates, sponsor block, and a small camera thumbnail." loading="lazy" decoding="async">
    </a></figure></p>
<p>The web components of Lightwave LINK were developed using a combination of <strong>PHP</strong> and <strong>JavaScript</strong>, with <strong>MariaDB</strong> chosen as the backend database for its proven reliability and performance. For hosting, we selected <strong>Akamai</strong> as our proxy server provider, leveraging the low-latency connection between our <a href="https://mgmix.net/" rel="noopener" target="_blank">network core in Montgomery</a>
 and Akamai’s Atlanta data center to ensure fast, responsive service.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Screenshot-2025-01-01-at-9.05.51_PM_hu_1a70735650ad853b.webp" aria-label="View larger image" style="flex-grow: 0.9345794392523364;"><img src="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Screenshot-2025-01-01-at-9.05.51_PM_hu_185f2f92857cd783.webp" width="1000" height="1070" alt="Logo of the Titanium SDK on a dark background, with a red interlocking &#39;T&#39; star mark above the wordmark &#39;Titanium SDK.&#39;" loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Akamai_hu_63424098b0ec6cd3.webp" aria-label="View larger image" style="flex-grow: 2.277904328018223;"><img src="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/Akamai_hu_88dfb59295324acb.webp" width="1000" height="439" alt="Akamai Technologies logo, with a curving blue stream wave above the orange &#39;Akamai&#39; wordmark." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/php_hu_2cabb8a2f0d7bcc8.webp" aria-label="View larger image" style="flex-grow: 1.7094017094017093;"><img src="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/php_hu_6d61aa1c3965184f.webp" width="1000" height="585" alt="Official PHP logo, the lowercase &#39;php&#39; wordmark in white inside an oval slate-blue badge." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/mariadb_hu_64c34125b50b6db3.webp" aria-label="View larger image" style="flex-grow: 1;"><img src="https://joshlambert.xyz/images/posts/lightwave-link-mobile-app-lands-in-central-alabama/mariadb_hu_8f494bc211f1373a.webp" width="1000" height="1000" alt="MariaDB logo, a white seal silhouette on a dark navy rounded square with the &#39;MariaDB&#39; wordmark beneath." loading="lazy" decoding="async"></a>
  </div></figure>

<h3 id="planned-feature-updates-for-lightwave-link">Planned Feature Updates For Lightwave LINK</h3>
<p>We’re actively working on new capabilities to enhance the Lightwave LINK experience, including:</p>
<ul>
<li><strong>Air Quality Monitorin</strong>g: Real-time air quality data sourced from our network of street-level microcells across the coverage area.</li>
<li><strong>Built-in Live Chat Support</strong>: Native in-app chat, eliminating the need for a Facebook Messenger account to reach our support team.</li>
<li><strong>Time Machine for Camera Feeds</strong>: Browse and share archival images from our weather cameras, perfect for looking back at major weather events or scenic moments.</li>
<li><strong>Community Photo Feed</strong>: A social stream featuring user-nominated snapshots from the Lightwave LINK camera network with support for LIKES and COMMENTS just like Facebook or other social networks.</li>
<li><strong>In App Speedtest:</strong> Run speed tests directly within the app using Alabama Lightwave’s on-network SpeedTest servers, providing a smooth and integrated Speedtest experience compared to third-party testing tools.</li>
</ul>
<h3 id="software-available-for-license-with-custom-modifications">Software Available For License With Custom Modifications</h3>
<p>In addition to leading <a href="https://alabamalightwave.com" rel="noopener" target="_blank">Alabama Lightwave</a>
, I run <a href="https://centrevilletech.com" rel="noopener" target="_blank">Centreville Tech</a>
, where I design mobile apps, build web platforms, and advise ISPs nationwide on technology and marketing strategies that help them stand out and grow.</p>
<p>Lightwave LINK is available for license with full customization. The platform’s standout feature, <strong>live weather cameras powered by your tower network</strong>, offers something fiber-only providers can’t easily replicate. Combined with in-app support and local engagement tools, it helps create a customer experience that drives loyalty and word-of-mouth.</p>
<p>If you’re ready to set your ISP apart with features your competitors can’t easily replicate, <a href="mailto:josh.lambert@centrevilletech.com">send me an email</a>
 and let’s talk.</p>
]]></content:encoded></item><item><title>Simplifying the Core: Introducing Rapid5GS</title><link>https://joshlambert.xyz/work/simplifying-the-core-introducing-rapid5gs/</link><guid>https://joshlambert.xyz/work/simplifying-the-core-introducing-rapid5gs/</guid><pubDate>Mon, 14 Apr 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<p>One of the hardest parts of building a private LTE or 5G network is getting a functional network core up and running. In mobility parlance, this core is known as the EPC (Evolved Packet Core) or 5GC (5G Core), and it’s essentially the <em>brain</em> of a cellular network.</p>
<p>This “brain” handles all the essential functions that make a modern mobility network possible. A few key responsibilities include:</p>
<ol>
<li><strong>Authorizing subscriber devices</strong> to connect to the network.</li>
<li><strong>Allocating IP addresses</strong> and managing routing information for subscribers.</li>
<li><strong>Handling Quality of Service (QoS)</strong> for user traffic.</li>
<li><strong>Managing mobility</strong>, such as handovers between towers or roaming onto other LTE/5G networks.</li>
</ol>
<p>Unlike traditional wireless you may be used to where the radios run embedded software to manage their access point name, password, QOS, etc like the wireless routing running in your home right now – in the mobility world, the radios themselves are “dumb”. Instead of on-device management of these functions, they’re all offloaded to the RAN and CORE. Rapid5GS is focused on making the CORE part of the LTE/5G deployment <strong>FAST</strong> and <strong>SIMPLE</strong> – just like setting up a router is for your home or business.</p>]]></description><content:encoded><![CDATA[<p>One of the hardest parts of building a private LTE or 5G network is getting a functional network core up and running. In mobility parlance, this core is known as the EPC (Evolved Packet Core) or 5GC (5G Core), and it’s essentially the <em>brain</em> of a cellular network.</p>
<p>This “brain” handles all the essential functions that make a modern mobility network possible. A few key responsibilities include:</p>
<ol>
<li><strong>Authorizing subscriber devices</strong> to connect to the network.</li>
<li><strong>Allocating IP addresses</strong> and managing routing information for subscribers.</li>
<li><strong>Handling Quality of Service (QoS)</strong> for user traffic.</li>
<li><strong>Managing mobility</strong>, such as handovers between towers or roaming onto other LTE/5G networks.</li>
</ol>
<p>Unlike traditional wireless you may be used to where the radios run embedded software to manage their access point name, password, QOS, etc like the wireless routing running in your home right now – in the mobility world, the radios themselves are “dumb”. Instead of on-device management of these functions, they’re all offloaded to the RAN and CORE. Rapid5GS is focused on making the CORE part of the LTE/5G deployment <strong>FAST</strong> and <strong>SIMPLE</strong> – just like setting up a router is for your home or business.</p>
<p>While several commercial core solutions exist, they are often expensive and complex, requiring specialized expertise to deploy and maintain. High-end options from companies like Nokia and Microsoft are powerful and flexible, but they come with a price tag that puts them out of reach for most smaller operators in the commercial and government sectors.</p>
<p>Open-source alternatives like <strong><a href="https://open5gs.org/" rel="noopener" target="_blank">Open5GS</a>
</strong> and <strong><a href="https://magmacore.org/" rel="noopener" target="_blank">Magma</a>
</strong> offer significant promise, but they come with steep learning curves. It took me several days, plus some outside help, to get Open5GS delivering internet access to actual customer devices. I’m still in the process of building a reliable Magma environment.</p>
<h2 id="enter-rapid5gs">Enter Rapid5GS</h2>
<p><a href="https://rapid5gs.com" rel="noopener" target="_blank">Rapid5GS</a>
 was born from the lessons I learned while deploying Open5GS in the real world. Every time I figured out a key setup step or tricky configuration to get Open5GS functional for subscriber traffic, I turned it into a Bash script and added it to the Rapid5GS installer.</p>
<p>Once the installation was automated and reliable, I shifted focus to usability. I started adding scripts to simplify common tasks and make the platform approachable for users without deep Linux experience. Some of the features now include:</p>
<ul>
<li><strong>Viewing connected access points</strong> and their latency.</li>
<li><strong>Viewing attached subscriber devices</strong> and the APNs they’re using.</li>
<li><strong>Restarting all core services</strong> with a single command.</li>
<li><strong>Tailing key logs</strong> (MME, SMF) to simplify troubleshooting.</li>
</ul>
<p>The theme here is <em>ease of use</em>. Even the supported Linux distributions, <a href="https://www.debian.org/" rel="noopener" target="_blank">Debian</a>
 and <a href="https://ubuntu.com/" rel="noopener" target="_blank">Ubuntu</a>
, were chosen because they’re beginner-friendly, with excellent documentation and community support.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/simplifying-the-core-introducing-rapid5gs/install-1024x1024_hu_4e7f8d4ff77f589c.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/simplifying-the-core-introducing-rapid5gs/install-1024x1024_hu_4e7f8d4ff77f589c.webp" width="1024" height="1024"
           alt="Terminal screenshot of the Rapid5GS installation menu, showing options to check requirements, configure, and install MongoDB, Node.js, Open5GS, and the Web UI." loading="lazy" decoding="async">
    </a></figure></p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/simplifying-the-core-introducing-rapid5gs/control-1024x1024_hu_a3f46905e91a7bc1.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/simplifying-the-core-introducing-rapid5gs/control-1024x1024_hu_a3f46905e91a7bc1.webp" width="1024" height="1024"
           alt="Terminal screenshot of the Rapid5GS Control Panel menu with options to view EPC throughput, eNB and UE status, and live-tail the MME and SMF logs." loading="lazy" decoding="async">
    </a></figure></p>
<p><strong>Current Limitations</strong></p>
<ul>
<li>NAT’ing of customer traffic directly on the core is the only networking configuration supported today out of the box.</li>
<li>Two Ethernet interfaces (management and customer traffic) required and the installer is opinionated about which Open5GS services will be binded to said interfaces. This isn’t in direct user control yet during the setup process.</li>
<li>There’s no way to access subscriber units yet attached to the core without setting up manual NAT ip port forwards on the core itself.</li>
</ul>
<p><strong>Planned Features</strong></p>
<ul>
<li>Support for IP pool allocation from upstream routers instead of on-core NAT.</li>
<li>A cloud-based controller.</li>
<li>Latency monitoring of customer UEs.</li>
<li>Watchdog processes to restart failed services.</li>
<li>Enhanced firewalling.</li>
<li>A dedicated web UI beyond the glitchly default Open5GS web UI.</li>
</ul>
<p><strong>Open Source and Growing</strong></p>
<p>Rapid5GS is fully open-source under the GPLv3 license, and the project website, <a href="https://rapid5gs.com" rel="noopener" target="_blank">rapid5gs.com</a>
, includes documentation and the one-line install command to get started.</p>
<p>A list of known-supported eNBs and UEs can be found on the Rapid5GS website. Running the core is confirmed to work on this used <a href="https://www.ebay.com/sch/i.html?_nkw=Lenovo&#43;ThinkCentre&#43;M710q&amp;_sacat=0&amp;_from=R40&amp;_trksid=p2332490.m570.l1313" rel="noopener" target="_blank">$70 mini computer for sale on eBay</a>
 if you add an additional USB ethernet interface to it. Yes, that’s right, you can run a mobility core on a used mini computer. Open5GS is amazing!</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/simplifying-the-core-introducing-rapid5gs/image-1024x675_hu_c581b6860cf9235e.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/simplifying-the-core-introducing-rapid5gs/image-1024x675_hu_c581b6860cf9235e.webp" width="1024" height="675"
           alt="Terminal screenshot of Rapid5GS&rsquo;s EPC Throughput Monitor showing live WAN, MGMT, and uplink/downlink Mbps bars for the connected eNB." loading="lazy" decoding="async">
    </a></figure></p>
<p>I’m thrilled to share Rapid5GS with the world and plan to keep expanding it over the coming weeks and months. <a href="https://github.com/joshualambert/rapid5gs/pulls" rel="noopener" target="_blank">Contributions are welcome</a>
, whether it’s code, documentation, or feedback.</p>
<p>Check out the <a href="https://rapid5gs.com" rel="noopener" target="_blank">Rapid5GS website by clicking here</a>
, or check out the <a href="https://github.com/joshualambert/rapid5gs" rel="noopener" target="_blank">source code for Rapid5GS</a>
 by clicking here.</p>
]]></content:encoded></item><item><title>Building The Bibb Voice: A Local News Site for Bibb County</title><link>https://joshlambert.xyz/work/website-for-the-bibb-voice/</link><guid>https://joshlambert.xyz/work/website-for-the-bibb-voice/</guid><pubDate>Fri, 28 Feb 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<div class="mediatext mediatext--left"><figure class="mediatext__media"><a class="zoom" href="https://joshlambert.xyz/images/posts/website-for-the-bibb-voice/Screenshot-2025-02-27-at-6.20.38_PM_hu_30ef76969320a8c1.webp" aria-label="View larger image"><img src="https://joshlambert.xyz/images/posts/website-for-the-bibb-voice/Screenshot-2025-02-27-at-6.20.38_PM_hu_30ef76969320a8c1.webp" width="462" height="546" alt="Promotional graphic for The Bibb Voice with brush-script title and the tagline &#39;Community News, Digital Age,&#39; over a photo of a person at a laptop holding a smartphone." loading="lazy" decoding="async"></a></figure><div class="mediatext__text prose flow">
    One of America’s founding principles was the <a href="https://constitution.congress.gov/browse/essay/amdt1-9-1/ALDE_00000395/" rel="noopener" target="_blank">The Freedom Of The Press</a>
 – the idea that government was supposed to be, by design, accountable to it’s citizenry, was truly revolutionary.
  </div>
</div>

<p>In an age where social media and fake news causes bad information to spread at breathtaking rates, local news is more important than ever in preserving the founding principles of the land I call home. <strong>Good local journalism has not just the power to hold government in check – but also the power to keep a citizenry informed and educated.</strong></p>]]></description><content:encoded><![CDATA[<div class="mediatext mediatext--left"><figure class="mediatext__media"><a class="zoom" href="https://joshlambert.xyz/images/posts/website-for-the-bibb-voice/Screenshot-2025-02-27-at-6.20.38_PM_hu_30ef76969320a8c1.webp" aria-label="View larger image"><img src="https://joshlambert.xyz/images/posts/website-for-the-bibb-voice/Screenshot-2025-02-27-at-6.20.38_PM_hu_30ef76969320a8c1.webp" width="462" height="546" alt="Promotional graphic for The Bibb Voice with brush-script title and the tagline &#39;Community News, Digital Age,&#39; over a photo of a person at a laptop holding a smartphone." loading="lazy" decoding="async"></a></figure><div class="mediatext__text prose flow">
    One of America’s founding principles was the <a href="https://constitution.congress.gov/browse/essay/amdt1-9-1/ALDE_00000395/" rel="noopener" target="_blank">The Freedom Of The Press</a>
 – the idea that government was supposed to be, by design, accountable to it’s citizenry, was truly revolutionary.
  </div>
</div>

<p>In an age where social media and fake news causes bad information to spread at breathtaking rates, local news is more important than ever in preserving the founding principles of the land I call home. <strong>Good local journalism has not just the power to hold government in check – but also the power to keep a citizenry informed and educated.</strong></p>
<p>With that in mind, it was my honor and joy to be part of the founding team for <a href="https://www.bibbvoice.com/" rel="noopener" target="_blank">The Bibb Voice</a>
. Through this website, we brought a much-needed new source of local journalism to my community.</p>
<p><strong>My direct contributions and responsibilities included:</strong></p>
<ul>
<li>Provisioning and configuration of a <a href="https://www.akamai.com/" rel="noopener" target="_blank">Akamai VPS</a>
 to host the website.</li>
<li>Installation and configuration of the <a href="https://wordpress.org/" rel="noopener" target="_blank">WordPress CMS</a>
.</li>
<li>Performance optimization and configuration of the <a href="https://wp-rocket.me/" rel="noopener" target="_blank">WP Rocket</a>
 plugin.</li>
<li>SEO optimizations to ensure good syndication of articles in <a href="https://news.google.com" rel="noopener" target="_blank">Google News</a>
 and other news aggregators.</li>
<li>Setup of ad distribution mechanisms on the website to track views, clicks, and other performance metrics.</li>
</ul>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/website-for-the-bibb-voice/Screenshot-2025-01-01-at-9.06.04_PM_hu_f81a682a92ecf1a9.webp" aria-label="View larger image" style="flex-grow: 2.1459227467811157;"><img src="https://joshlambert.xyz/images/posts/website-for-the-bibb-voice/Screenshot-2025-01-01-at-9.06.04_PM_hu_a90fdd18550a989c.webp" width="1000" height="466" alt="Logo of WordPress.org, the white circled W glyph with the WordPress.org wordmark on a dark slate background." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/website-for-the-bibb-voice/Akamai_hu_63424098b0ec6cd3.webp" aria-label="View larger image" style="flex-grow: 2.277904328018223;"><img src="https://joshlambert.xyz/images/posts/website-for-the-bibb-voice/Akamai_hu_88dfb59295324acb.webp" width="1000" height="439" alt="Akamai Technologies logo, with a curving blue stream wave above the orange &#39;Akamai&#39; wordmark." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/website-for-the-bibb-voice/Screenshot-2025-02-27-at-6.42.59_PM_hu_52d06090f81fadec.webp" aria-label="View larger image" style="flex-grow: 1.1655011655011656;"><img src="https://joshlambert.xyz/images/posts/website-for-the-bibb-voice/Screenshot-2025-02-27-at-6.42.59_PM_hu_fa956b8b72c376b1.webp" width="1000" height="858" alt="Google News logo, three offset news-card pages in red, yellow, and green behind a blue card with a white &#39;G&#39; and content lines, above the &#39;Google News&#39; wordmark." loading="lazy" decoding="async"></a>
  </div></figure>

<p><strong>The website has experienced significant reach and been part of numerous breaking news events over the years</strong>. It’s operated will minimal downtime and scaled with traffic demand without issues. Everything’s just “hummed along” – the way a website should!</p>
<p>Do you need help setting up a news website for your organization configured for significant traffic demand? I can help! <a href="mailto:josh.lambert@centrevilletech.com">Drop me an email and let’s figure out how to make it happen</a>
.</p>
]]></content:encoded></item><item><title>Website for Repair On The Square</title><link>https://joshlambert.xyz/work/website-for-repair-on-the-square/</link><guid>https://joshlambert.xyz/work/website-for-repair-on-the-square/</guid><pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<div class="mediatext mediatext--left"><figure class="mediatext__media"><a class="zoom" href="https://joshlambert.xyz/images/posts/website-for-repair-on-the-square/file-1024x1024_hu_7d4af3777b02de65.webp" aria-label="View larger image"><img src="https://joshlambert.xyz/images/posts/website-for-repair-on-the-square/file-1024x1024_hu_7d4af3777b02de65.webp" width="1024" height="1024" alt="Repair On The Square Centreville circular logo, reading &#39;Mobile Devices and Computers, Repair on the Square, Centreville&#39; in black on white." loading="lazy" decoding="async"></a></figure><div class="mediatext__text prose flow">
    <strong>REPAIR BEFORE REPLACE</strong> – this is something near and dear to my heart in an age of mass-consumerism and waste. The fact that we can get new life out of electronics by replacing a screen or a charging port is magic and a call-back to the American ideals of good stewardship and old-fashioned ingenuity.
  </div>
</div>

<p><a href="https://repaironthesquare.com/" rel="noopener" target="_blank">Repair On The Square</a>
 is a device repair shop based on the <a href="https://www.cityofcentreville.com/" rel="noopener" target="_blank">Historic Centreville Town Square</a>
 that specializes in repairs of iPhone, iPad, Android, and other small electronics devices. They can repair screens, charge ports, swollen batteries, broken microphones, and more.</p>]]></description><content:encoded><![CDATA[<div class="mediatext mediatext--left"><figure class="mediatext__media"><a class="zoom" href="https://joshlambert.xyz/images/posts/website-for-repair-on-the-square/file-1024x1024_hu_7d4af3777b02de65.webp" aria-label="View larger image"><img src="https://joshlambert.xyz/images/posts/website-for-repair-on-the-square/file-1024x1024_hu_7d4af3777b02de65.webp" width="1024" height="1024" alt="Repair On The Square Centreville circular logo, reading &#39;Mobile Devices and Computers, Repair on the Square, Centreville&#39; in black on white." loading="lazy" decoding="async"></a></figure><div class="mediatext__text prose flow">
    <strong>REPAIR BEFORE REPLACE</strong> – this is something near and dear to my heart in an age of mass-consumerism and waste. The fact that we can get new life out of electronics by replacing a screen or a charging port is magic and a call-back to the American ideals of good stewardship and old-fashioned ingenuity.
  </div>
</div>

<p><a href="https://repaironthesquare.com/" rel="noopener" target="_blank">Repair On The Square</a>
 is a device repair shop based on the <a href="https://www.cityofcentreville.com/" rel="noopener" target="_blank">Historic Centreville Town Square</a>
 that specializes in repairs of iPhone, iPad, Android, and other small electronics devices. They can repair screens, charge ports, swollen batteries, broken microphones, and more.</p>
<p>I worked with the team at Repair On The Square to design and launch a website aligned with their brand guidelines and logo, showcasing their business offerings in a modern, polished way. My responsibilities included:</p>
<ul>
<li>Provisioning of a web server and WordPress to run the website.</li>
<li>Customization of the theme to match their logo and style guide.</li>
<li>Integration with Slack to feed business inquiry forms to their internal Slack group.</li>
<li>Authored all landing page and other website copy.</li>
<li>Selection of stock photos that supported the copy.</li>
<li>Setup of Facebook Ads to push people to the different website landing pages based on targeted geofences.</li>
<li>Worked with videographer on production of a website promotional video.</li>
</ul>
<p>My CMS of choice for this website was <a href="https://wordpress.org/" rel="noopener" target="_blank">WordPress</a>
, hosted on top of a custom-tuned <a href="https://www.akamai.com/" rel="noopener" target="_blank">Akamai</a>
 VPS server. Integration with Slack was done using <a href="https://www.make.com" rel="noopener" target="_blank">Make.com</a>
 allowing leads to quickly land on the technician’s desk without needing to dig through emails.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/website-for-repair-on-the-square/Screenshot-2025-01-01-at-9.06.04_PM_hu_f81a682a92ecf1a9.webp" aria-label="View larger image" style="flex-grow: 2.1459227467811157;"><img src="https://joshlambert.xyz/images/posts/website-for-repair-on-the-square/Screenshot-2025-01-01-at-9.06.04_PM_hu_a90fdd18550a989c.webp" width="1000" height="466" alt="Logo of WordPress.org, the white circled W glyph with the WordPress.org wordmark on a dark slate background." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/website-for-repair-on-the-square/Akamai_hu_63424098b0ec6cd3.webp" aria-label="View larger image" style="flex-grow: 2.277904328018223;"><img src="https://joshlambert.xyz/images/posts/website-for-repair-on-the-square/Akamai_hu_88dfb59295324acb.webp" width="1000" height="439" alt="Akamai Technologies logo, with a curving blue stream wave above the orange &#39;Akamai&#39; wordmark." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/website-for-repair-on-the-square/make_hu_7948d4c45065734e.webp" aria-label="View larger image" style="flex-grow: 2.8328611898016995;"><img src="https://joshlambert.xyz/images/posts/website-for-repair-on-the-square/make_hu_3187294e51583c14.webp" width="1000" height="353" alt="Make.com logo, with three white slanted bars and the lowercase &#39;make&#39; wordmark on a deep purple background." loading="lazy" decoding="async"></a>
  </div></figure>

<p><strong>The website has been a customer generation engine for Repair On The Square</strong>. Throughout the day, Slack “dings” with inquires from new customers, keeping the repair technician busy and profitable.</p>
<p>Do you need help building a sales-focused website for your organization? I can help! <a href="mailto:josh.lambert@centrevilletech.com">Drop me an email and let’s figure out how to make it happen</a>
.</p>
]]></content:encoded></item><item><title>React Mobile: A Personal Safety App Built on Titanium</title><link>https://joshlambert.xyz/work/react-mobile-safety-app/</link><guid>https://joshlambert.xyz/work/react-mobile-safety-app/</guid><pubDate>Sat, 22 Feb 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<p><strong>Press a button, get help. It’s that simple.</strong></p>
<p>React Mobile, founded in 2011, was a mobile safety app designed to make it fast and simple to get help when you need it. Simply press the discrete wearable bluetooth button paired to your phone, and a preset list of emergency contacts will be sent a text message and email with your location.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/react-mobile-safety-app/ReactSidekickThumbnailsmall-1024x764-1_hu_acb6bf6b8c5fdb59.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/react-mobile-safety-app/ReactSidekickThumbnailsmall-1024x764-1_hu_acb6bf6b8c5fdb59.webp" width="1024" height="764"
           alt="React Sidekick promo image: a young woman tapping the React Sidekick wrist mount, an iPhone showing the I&rsquo;m-Fine, Follow-Me, and SOS interface, and the Bluetooth panic-button puck." loading="lazy" decoding="async">
    </a></figure></p>]]></description><content:encoded><![CDATA[<p><strong>Press a button, get help. It’s that simple.</strong></p>
<p>React Mobile, founded in 2011, was a mobile safety app designed to make it fast and simple to get help when you need it. Simply press the discrete wearable bluetooth button paired to your phone, and a preset list of emergency contacts will be sent a text message and email with your location.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/react-mobile-safety-app/ReactSidekickThumbnailsmall-1024x764-1_hu_acb6bf6b8c5fdb59.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/react-mobile-safety-app/ReactSidekickThumbnailsmall-1024x764-1_hu_acb6bf6b8c5fdb59.webp" width="1024" height="764"
           alt="React Sidekick promo image: a young woman tapping the React Sidekick wrist mount, an iPhone showing the I&rsquo;m-Fine, Follow-Me, and SOS interface, and the Bluetooth panic-button puck." loading="lazy" decoding="async">
    </a></figure></p>
<p>I worked with the team at React Mobile to develop the initial version of the mobile application before the <a href="https://joshlambert.xyz/work/react-mobile-hotel-dispatch-center/">company pivoted into the hotel wearables space</a>
.</p>
<p><strong>The app’s debut feature set included:</strong></p>
<ul>
<li>Support for iOS and Android</li>
<li>Ability to add emergency contacts with photos, email, and SMS notification contact methods.</li>
<li>Pairing of the “Sidekick” bluetooth wearable.</li>
<li>Sign-In via Facebook</li>
<li>Live web console to view user’s location in real-time.</li>
<li>Email and SMS message notification alerts.</li>
</ul>
<p><a href="https://www.kickstarter.com/projects/robbmonkman/the-react-sidekick-changing-the-way-people-call-fo" rel="noopener" target="_blank">The first versions of React Mobile was funded by a successful Kickstarter campaign that you can check out by clicking here.</a>
</p>
<p>The React Mobile Sidekick was covered by <a href="https://www.wgrz.com/" rel="noopener" target="_blank">WGRZ, a NBC affiliated news outlet in Buffalo, New York</a>
.</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/8N18zuNv_0Q?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<p>I built the app using the open source <a href="https://titaniumsdk.com" rel="noopener" target="_blank">Titanium Mobile framework</a>
 targeting both iOS and Android devices. I leveraged the <a href="https://sendgrid.com/en-us" rel="noopener" target="_blank">SendGrid</a>
 service to handle sending of emails, and <a href="https://www.twilio.com/en-us" rel="noopener" target="_blank">Twilio</a>
 to handle SMS message notifications.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/react-mobile-safety-app/Screenshot-2025-01-01-at-9.05.51_PM_hu_1a70735650ad853b.webp" aria-label="View larger image" style="flex-grow: 0.9345794392523364;"><img src="https://joshlambert.xyz/images/posts/react-mobile-safety-app/Screenshot-2025-01-01-at-9.05.51_PM_hu_185f2f92857cd783.webp" width="1000" height="1070" alt="Logo of the Titanium SDK on a dark background, with a red interlocking &#39;T&#39; star mark above the wordmark &#39;Titanium SDK.&#39;" loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/react-mobile-safety-app/blog-sendgrid_hu_e2fcba4b1342112a.webp" aria-label="View larger image" style="flex-grow: 1.7761989342806395;"><img src="https://joshlambert.xyz/images/posts/react-mobile-safety-app/blog-sendgrid_hu_501dba2c7af21349.webp" width="1000" height="563" alt="Twilio SendGrid logo, with a stacked-square envelope mark and the white &#39;SendGrid&#39; wordmark on a navy background." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/react-mobile-safety-app/twilio-logo-6a141664f35a78e9ac08eed627c2a859_hu_fa524f0deafe36c6.webp" aria-label="View larger image" style="flex-grow: 3.225806451612903;"><img src="https://joshlambert.xyz/images/posts/react-mobile-safety-app/twilio-logo-6a141664f35a78e9ac08eed627c2a859_hu_f4db49923f20172e.webp" width="1000" height="310" alt="Twilio logo, with the four-dot face icon (two red, two gray) inside a gradient gray circle next to the red &#39;twilio&#39; wordmark." loading="lazy" decoding="async"></a>
  </div></figure>

<p>My roll in development of this mobile application caused me to get deeply embedded in the Titanum mobile development community. As a result, <a href="https://www.bibbvoice.com/2022/05/01/titanium-mobile-development-software-finds-a-new-home-in-central-alabama/" rel="noopener" target="_blank">I helped bring Titanum’s on-going maintenance and organization structure into a 501c3 non-profit founded right here in Alabama</a>
. I now serve as chairman of the Titanium foundation and have helped keep the framework actively maintained through management of open-source community contributors and corporate support.</p>
<p>Do you need help developing a mobile application like <a href="https://www.reactmobile.com/" rel="noopener" target="_blank">React Mobile</a>
? I’ve built a number of them and can help! <a href="mailto:josh.lambert@centrevilletech.com">Drop me an email and let’s get in touch.</a>
</p>
]]></content:encoded></item><item><title>DNA S.A.M.M.I.E. Freight Visibility Platform</title><link>https://joshlambert.xyz/work/dna-s-a-m-m-i-e-freight-visibility-platform/</link><guid>https://joshlambert.xyz/work/dna-s-a-m-m-i-e-freight-visibility-platform/</guid><pubDate>Sat, 22 Feb 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<p><a href="https://dnasam.com/" rel="noopener" target="_blank">DNA S.A.M.M.I.E.</a>
 is a logistics and freight management platform designed to provide unparalleled visibility of cargo movement during the shipment lifecycle.</p>
<p>Traditionally, freight visibility involves tons of emails, phone calls, and other manual processes to determine where cargo is as it moves from factory to final destination. It’s a messy process prone to data entry failures and other mistakes. A headache for all involved!</p>
<p>I worked with the team at <a href="https://dnasupplychain.com/" rel="noopener" target="_blank">DNA Supply Chain</a>
 to build a solution to this problem from the ground up.</p>]]></description><content:encoded><![CDATA[<p><a href="https://dnasam.com/" rel="noopener" target="_blank">DNA S.A.M.M.I.E.</a>
 is a logistics and freight management platform designed to provide unparalleled visibility of cargo movement during the shipment lifecycle.</p>
<p>Traditionally, freight visibility involves tons of emails, phone calls, and other manual processes to determine where cargo is as it moves from factory to final destination. It’s a messy process prone to data entry failures and other mistakes. A headache for all involved!</p>
<p>I worked with the team at <a href="https://dnasupplychain.com/" rel="noopener" target="_blank">DNA Supply Chain</a>
 to build a solution to this problem from the ground up.</p>
<p>S.A.M.M.I.E provides a tracking solution that offers complete end-to-end visibility of where cargo is with the freshest possible data from multiple sources.</p>
<p><strong>This means a user can see things like:</strong></p>
<ul>
<li>Current location of the container.</li>
<li>Original Arrival Date, and A.I. Predicted Arrival Date of the container to the final destination.</li>
<li>All attachments that go with the shipment such as ISF, Bill of Lading, and more with one click.</li>
<li>PO Number</li>
<li>AND MORE</li>
</ul>
<p><strong>In addition to all of the visibility, the platform also offers several industry-leading features to interact with DNA during the shipment process including:</strong></p>
<ul>
<li>Email notifications as the shipment progresses.</li>
<li>Ability to “Request Update” directly from the tracking portal so that the human responsible for the shipment can put eyes on everything and make sure the data is as fresh and accurate as possible.</li>
<li>Ability to “Mark as Hot” causing a shipment to stand out from others on the sheet, making it easier to track shipments in the portal that are high priority.</li>
<li>Ability to show/hide what columns appear on the tracking sheet.</li>
<li>Ability to export the sheet contents to Excel or PDF.</li>
<li>Ability to cause shipments with delays to blink red when a an exception event occurs.</li>
<li>AND MORE.</li>
</ul>
<p><a href="https://sales.dnasam.com/sammie-introduction/" rel="noopener" target="_blank">You can click here to read more about DNA S.A.M.M.I.E and see a real-time demo on the DNA website.</a>
</p>
<p>My team and I developed nearly all S.A.M.M.I.E features and in the process learned a significant amount about how the freight forwarding and logistics space operates. We leveraged a combination of <a href="https://www.php.net/" rel="noopener" target="_blank">PHP</a>
, <a href="https://en.wikipedia.org/wiki/JavaScript" rel="noopener" target="_blank">JavaScript</a>
, and <a href="https://jquery.com/" rel="noopener" target="_blank">jQuery</a>
 to bring S.A.M.M.I.E to life. A designer worked directly for me along with several engineers under my direction throughout the development process. <strong>All of them executed with excellence.</strong> This combination of expertise allowed us to build something truly special in the logistics/freight space. I’m proud of all involved and look forward to build more things like this!</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/dna-s-a-m-m-i-e-freight-visibility-platform/php_hu_2cabb8a2f0d7bcc8.webp" aria-label="View larger image" style="flex-grow: 1.7094017094017093;"><img src="https://joshlambert.xyz/images/posts/dna-s-a-m-m-i-e-freight-visibility-platform/php_hu_6d61aa1c3965184f.webp" width="1000" height="585" alt="Official PHP logo, the lowercase &#39;php&#39; wordmark in white inside an oval slate-blue badge." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/dna-s-a-m-m-i-e-freight-visibility-platform/62a76aadbd73a4af5c5d4fc5_hu_aaa6a06abb2ac968.webp" aria-label="View larger image" style="flex-grow: 1.183431952662722;"><img src="https://joshlambert.xyz/images/posts/dna-s-a-m-m-i-e-freight-visibility-platform/62a76aadbd73a4af5c5d4fc5_hu_7a57565e0de576f3.webp" width="1000" height="845" alt="Official JavaScript logo, the bold black &#39;JS&#39; on a yellow square." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/dna-s-a-m-m-i-e-freight-visibility-platform/image_hu_c4ba694203f92b92.webp" aria-label="View larger image" style="flex-grow: 1;"><img src="https://joshlambert.xyz/images/posts/dna-s-a-m-m-i-e-freight-visibility-platform/image_hu_988a17c3c023369.webp" width="1000" height="1000" alt="Lottie open-source animation library logo, with a teal flowing script that spells &#39;Lottie&#39; on a white background." loading="lazy" decoding="async"></a>
  </div></figure>

<p>Do you operate in the freight/logistics space and need a competent engineering consultant to help you build something like this? <a href="mailto:josh.lambert@centrevilletech.com">I can help! Jump in my email and let’s talk.</a>
</p>
]]></content:encoded></item><item><title>CareAR Assist Interactive Web Demo</title><link>https://joshlambert.xyz/work/carear-assist-interactive-web-demo/</link><guid>https://joshlambert.xyz/work/carear-assist-interactive-web-demo/</guid><pubDate>Sat, 22 Feb 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<p><a href="https://carear.com" rel="noopener" target="_blank">CareAR</a>
, a division of <a href="https://www.xerox.com/" rel="noopener" target="_blank">Xerox</a>
, is an augmented reality software company with the motto to “Make Expertise Accessible”. They do this through their proprietary mobile application which connects field technicians to experts at their home office. Both the technician and remote expert are able to interact together in real-time over live-stream video from the work site where they can collaborate to solve challenges that the technician would struggle to solve independently without assistance.</p>]]></description><content:encoded><![CDATA[<p><a href="https://carear.com" rel="noopener" target="_blank">CareAR</a>
, a division of <a href="https://www.xerox.com/" rel="noopener" target="_blank">Xerox</a>
, is an augmented reality software company with the motto to “Make Expertise Accessible”. They do this through their proprietary mobile application which connects field technicians to experts at their home office. Both the technician and remote expert are able to interact together in real-time over live-stream video from the work site where they can collaborate to solve challenges that the technician would struggle to solve independently without assistance.</p>
<p>I recently worked with the team at CareAR to build an <a href="https://carear.com/ar-remote-assistance/" rel="noopener" target="_blank">interactive demo for their Assist product</a>
 that lives on the Assist landing page. This allows potential customers of CareAR to get an idea of exactly how Assist works and how it could benefit them in a highly interactive and responsive way.</p>
<p><strong>Watch a screen-recording of this interactive tool below:</strong></p>
<p>To implement this, animations were developed using <a href="https://www.adobe.com/products/aftereffects.html" rel="noopener" target="_blank">Adobe After Effects</a>
 that replicated the in-app features of Assist where motion graphics were required. These were embedded in the page using a combination of JavaScript and <a href="https://airbnb.io/lottie/" rel="noopener" target="_blank">Lottie</a>
. Other animations such as the “screen capture” and “screen share” tools were replicated using jQuery animations and HTML5 video embedding.</p>
<p>The end-product was shipped as a WordPress plugin that enabled the web team to embed this demo anywhere they wanted it within the Divi Page Builder utilized for the website. Simply paste the short code within the page, and it would load all graphics and scripts needed for the demo in a clean and fully mobile responsive fashion.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/carear-assist-interactive-web-demo/Screenshot-2025-02-22-at-3.45.45_PM_hu_81d55616ebc4336e.webp" aria-label="View larger image" style="flex-grow: 1.6420361247947455;"><img src="https://joshlambert.xyz/images/posts/carear-assist-interactive-web-demo/Screenshot-2025-02-22-at-3.45.45_PM_hu_a35d6f501e5762aa.webp" width="1000" height="609" alt="Animated splash for the CareAR demo, with bouncing icons and the &#39;CareAR&#39; identity introducing an interactive walkthrough." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/carear-assist-interactive-web-demo/Adobe_After_Effects_CC_icon.svg__hu_831921b41d24fc41.webp" aria-label="View larger image" style="flex-grow: 1.0256410256410255;"><img src="https://joshlambert.xyz/images/posts/carear-assist-interactive-web-demo/Adobe_After_Effects_CC_icon.svg__hu_946e17e6182b82f1.webp" width="1000" height="975" alt="Adobe After Effects CC app icon, the purple &#39;Ae&#39; monogram on a dark navy rounded square." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/carear-assist-interactive-web-demo/image_hu_c4ba694203f92b92.webp" aria-label="View larger image" style="flex-grow: 1;"><img src="https://joshlambert.xyz/images/posts/carear-assist-interactive-web-demo/image_hu_988a17c3c023369.webp" width="1000" height="1000" alt="Lottie open-source animation library logo, with a teal flowing script that spells &#39;Lottie&#39; on a white background." loading="lazy" decoding="async"></a>
  </div></figure>

<p>This interactive demo has served CareAR as a powerful communication tool to convert visitors landing on the page to leads that would be interesting in purchasing Assist for their organization.</p>
<p>Do you need help building an interactive demo for a tool like Assist on your website? I can help! <a href="mailto:josh.lambert@centrevilletech.com">Drop me an email and let’s figure out how to make it happen</a>
.</p>
]]></content:encoded></item><item><title>TUTR Mobile App</title><link>https://joshlambert.xyz/work/tutr-mobile-app/</link><guid>https://joshlambert.xyz/work/tutr-mobile-app/</guid><pubDate>Fri, 21 Feb 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<div class="mediatext mediatext--left"><figure class="mediatext__media"><a class="zoom" href="https://joshlambert.xyz/images/posts/tutr-mobile-app/DefaultIcon_hu_f23f5bd4ea628624.webp" aria-label="View larger image"><img src="https://joshlambert.xyz/images/posts/tutr-mobile-app/DefaultIcon_hu_f23f5bd4ea628624.webp" width="1024" height="1024" alt="TUTR app icon, a white globe latitude/longitude grid with the &#39;TUTR&#39; wordmark stamped over the equator on a sky-blue background." loading="lazy" decoding="async"></a></figure><div class="mediatext__text prose flow">
    <strong>UBER meets tutoring.</strong> That was the idea behind TUTR, a startup based out of Tuscaloosa, Alabama focused on making the tutoring experience smooth and fast – just like hailing a ride from the convenience of your smartphone
  </div>
</div>

<p>For students needing help with an upcoming test or study project – the app was simple to use. Create an account using the TUTR mobile app, sign in via SMS code, link a payment method. Once done, a map view is presented showing online nearby tutors filtered by skillsets the student requested. Pick a tutor and request assistance, and the tutor would respond with their price and terms. Once the student and tutor session started, they could chat in the app, share a white board, or share location to coordinate an in-person tutoring session.</p>]]></description><content:encoded><![CDATA[<div class="mediatext mediatext--left"><figure class="mediatext__media"><a class="zoom" href="https://joshlambert.xyz/images/posts/tutr-mobile-app/DefaultIcon_hu_f23f5bd4ea628624.webp" aria-label="View larger image"><img src="https://joshlambert.xyz/images/posts/tutr-mobile-app/DefaultIcon_hu_f23f5bd4ea628624.webp" width="1024" height="1024" alt="TUTR app icon, a white globe latitude/longitude grid with the &#39;TUTR&#39; wordmark stamped over the equator on a sky-blue background." loading="lazy" decoding="async"></a></figure><div class="mediatext__text prose flow">
    <strong>UBER meets tutoring.</strong> That was the idea behind TUTR, a startup based out of Tuscaloosa, Alabama focused on making the tutoring experience smooth and fast – just like hailing a ride from the convenience of your smartphone
  </div>
</div>

<p>For students needing help with an upcoming test or study project – the app was simple to use. Create an account using the TUTR mobile app, sign in via SMS code, link a payment method. Once done, a map view is presented showing online nearby tutors filtered by skillsets the student requested. Pick a tutor and request assistance, and the tutor would respond with their price and terms. Once the student and tutor session started, they could chat in the app, share a white board, or share location to coordinate an in-person tutoring session.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/tutr-mobile-app/findatutor-571x1024_hu_bd548a2ea6b1c97.webp" aria-label="View larger image" style="flex-grow: 0.5577244841048522;"><img src="https://joshlambert.xyz/images/posts/tutr-mobile-app/findatutor-571x1024_hu_767752f084e7000a.webp" width="1000" height="1793" alt="iPhone screenshot of the TUTR app&#39;s Find a Tutor map showing pins around Centreville, with Sophia Marinova selected three miles away and Report and Text Tutor actions." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/tutr-mobile-app/howdiditgo-571x1024_hu_9e9f331c5bb92c8d.webp" aria-label="View larger image" style="flex-grow: 0.5577244841048522;"><img src="https://joshlambert.xyz/images/posts/tutr-mobile-app/howdiditgo-571x1024_hu_bdc0f0633e58d263.webp" width="1000" height="1793" alt="iPhone screenshot of the TUTR app&#39;s session feedback view: a 3-of-5 star rating for tutor Sophia Marinova, a &#39;How did it go?&#39; comment field, and a &#39;Pay $1&#39; button." loading="lazy" decoding="async"></a>
  </div></figure>

<p>The TUTR platform handled all of the complexity of payment management, vetting tutors, enforcing safety rules, etc, ensuring a safe, secure, and productive experience for all users on the platform.</p>
<h2 id="my-role-on-the-project">My Role On The Project</h2>
<p>I led the mobile development team supervising backend engineers, designers, and QA professionals in development of the TUTR mobile application. I also handled a significant amount of programming inside the mobile app itself. Contributing both leadership and engineering skills, we built from the ground up a cross-platform iOS/Android mobile application with all the features requested during the development process.</p>
<p><strong>We developed features that included:</strong></p>
<ul>
<li>SMS-based sign in flow.</li>
<li>Payment processing via Stripe.</li>
<li>Integration with the <a href="https://about.bramble.io/" rel="noopener" target="_blank">Bramble</a>
 platform to allow users to share a whiteboard and other resources within the TUTR app.</li>
<li>Real-time sharing of location data.</li>
<li>Rich chat functionality with push notifications, typing indicators, etc.</li>
<li>Integration with <a href="https://www.mailgun.com/" rel="noopener" target="_blank">Mailgun</a>
 for sending emails that made it to the inbox for all marketplace related communications such as resetting passwords, payment receipts, etc.</li>
<li>Setup and provisioning of servers on <a href="https://www.linode.com/" rel="noopener" target="_blank">Linode</a>
 to support platform activities.</li>
</ul>
<p>The app was built using the cross-platform <a href="https://titaniumsdk.com" rel="noopener" target="_blank">Titanium mobile framework</a>
 and JavaScript along with the referenced 3rd party services to deliver a rich marketplace experience to our users.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/tutr-mobile-app/Screenshot-2025-01-01-at-9.05.51_PM_hu_1a70735650ad853b.webp" aria-label="View larger image" style="flex-grow: 0.9345794392523364;"><img src="https://joshlambert.xyz/images/posts/tutr-mobile-app/Screenshot-2025-01-01-at-9.05.51_PM_hu_185f2f92857cd783.webp" width="1000" height="1070" alt="Logo of the Titanium SDK on a dark background, with a red interlocking &#39;T&#39; star mark above the wordmark &#39;Titanium SDK.&#39;" loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/tutr-mobile-app/Stripe-wordmark-blurple-large_hu_1a66cee4df22de3d.webp" aria-label="View larger image" style="flex-grow: 1;"><img src="https://joshlambert.xyz/images/posts/tutr-mobile-app/Stripe-wordmark-blurple-large_hu_a75f20a31b0577fa.webp" width="1000" height="1000" alt="Stripe payment logo, the lowercase &#39;stripe&#39; wordmark in vivid Blurple purple on a white background." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/tutr-mobile-app/07a08343-1584376739545_hu_14eb629b29953d3.webp" aria-label="View larger image" style="flex-grow: 1.3333333333333333;"><img src="https://joshlambert.xyz/images/posts/tutr-mobile-app/07a08343-1584376739545_hu_229cbd61bd971854.webp" width="1000" height="750" alt="Bramble math-tutoring logo, a hand-drawn ink wordmark &#39;bramble&#39; next to a stylized blackberry icon." loading="lazy" decoding="async"></a>
  </div></figure>

<p>Does your organization need help building a mobile app like this? I can help! <a href="https://joshlambert.xyz/contact/">Drop me an email and let’s make it happen.</a>
</p>
]]></content:encoded></item><item><title>Haven Today Website Player</title><link>https://joshlambert.xyz/work/haven-today-website-player/</link><guid>https://joshlambert.xyz/work/haven-today-website-player/</guid><pubDate>Fri, 21 Feb 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<p>The Haven of Rest, a Christian radio program started by Paul Myers, has been broadcast across the globe since 1934 delivering listeners a message of encouragement, hope, and redemption.</p>
<p>Now operating under the name “<a href="https://haventoday.org" rel="noopener" target="_blank">Haven Today</a>
” – the program reaches older and newer listeners alike not just on the radio, but also via podcasts, their website, and <a href="https://joshlambert.xyz/work/haven-today-mobile-app/">the mobile app</a>
.</p>
<p>I worked with the team at Haven to rebuild the audio player for there website. The new audio player enables those following their ministry to listen to the daily Haven program directly on the website without needing to install software or download files.</p>]]></description><content:encoded><![CDATA[<p>The Haven of Rest, a Christian radio program started by Paul Myers, has been broadcast across the globe since 1934 delivering listeners a message of encouragement, hope, and redemption.</p>
<p>Now operating under the name “<a href="https://haventoday.org" rel="noopener" target="_blank">Haven Today</a>
” – the program reaches older and newer listeners alike not just on the radio, but also via podcasts, their website, and <a href="https://joshlambert.xyz/work/haven-today-mobile-app/">the mobile app</a>
.</p>
<p>I worked with the team at Haven to rebuild the audio player for there website. The new audio player enables those following their ministry to listen to the daily Haven program directly on the website without needing to install software or download files.</p>
<p>The new player integrated directly with the existing audio library on the WordPress website. This way, when a specific program was opened in the player, the player could also display the related recommend resource that went along with it. This allowed listeners to easily locate and purchase said resource, enriching their experience while also driving more financial support towards the ministry. A win for all involved!</p>
<p>The new player was developed using the <a href="https://wordpress.org" rel="noopener" target="_blank">WordPress</a>
 APIs, <a href="https://github.com/serversideup/amplitudejs" rel="noopener" target="_blank">AmplitudeJS</a>
, and <a href="https://en.wikipedia.org/wiki/JavaScript" rel="noopener" target="_blank">JavaScript</a>
.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/haven-today-website-player/Screenshot-2025-01-01-at-9.06.04_PM_hu_f81a682a92ecf1a9.webp" aria-label="View larger image" style="flex-grow: 2.1459227467811157;"><img src="https://joshlambert.xyz/images/posts/haven-today-website-player/Screenshot-2025-01-01-at-9.06.04_PM_hu_a90fdd18550a989c.webp" width="1000" height="466" alt="Logo of WordPress.org, the white circled W glyph with the WordPress.org wordmark on a dark slate background." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/haven-today-website-player/amplitude_hu_bc8a299b29a7622.webp" aria-label="View larger image" style="flex-grow: 3.0120481927710845;"><img src="https://joshlambert.xyz/images/posts/haven-today-website-player/amplitude_hu_c6e24d43cb6da669.webp" width="1000" height="332" alt="Amplitude product analytics logo, with a circled &#39;A&#39; waveform glyph beside the blue &#39;Amplitude&#39; wordmark." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/haven-today-website-player/image_hu_c4ba694203f92b92.webp" aria-label="View larger image" style="flex-grow: 1;"><img src="https://joshlambert.xyz/images/posts/haven-today-website-player/image_hu_988a17c3c023369.webp" width="1000" height="1000" alt="Lottie open-source animation library logo, with a teal flowing script that spells &#39;Lottie&#39; on a white background." loading="lazy" decoding="async"></a>
  </div></figure>

<p>Does your organization need help building something like this for your website? I can help! <a href="mailto:josh.lambert@centrevilletech.com">Drop me an email and let’s make it happen.</a>
</p>
]]></content:encoded></item><item><title>Choose Healthy Challenge Mobile App</title><link>https://joshlambert.xyz/work/choose-healthy-challenge-mobile-app/</link><guid>https://joshlambert.xyz/work/choose-healthy-challenge-mobile-app/</guid><pubDate>Fri, 21 Feb 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<div class="mediatext mediatext--left"><figure class="mediatext__media"><a class="zoom" href="https://joshlambert.xyz/images/posts/choose-healthy-challenge-mobile-app/ChooseHealthLogo_hu_bf9b87e3e0564535.webp" aria-label="View larger image"><img src="https://joshlambert.xyz/images/posts/choose-healthy-challenge-mobile-app/ChooseHealthLogo_hu_bf9b87e3e0564535.webp" width="748" height="941" alt="Choose Healthy Challenge logo, two blue figures jumping under a red heart inside a shield with the wordmarks ‘Choose,’ ‘Healthy’ (in red script), and ‘Challenge.’" loading="lazy" decoding="async"></a></figure><div class="mediatext__text prose flow">
    The Choose Healthy Challenge was a mobile-app based game designed to encourage healthy living habits, <a href="https://en.wikipedia.org/wiki/Gamification" rel="noopener" target="_blank">putting gamification theory to work</a>
, in a way that makes people happier and healthier.
  </div>
</div>

<p>The concept behind this app was simple: encourage the user to take an action that benefits their physical health, nutritional health, and emotional health, <strong>every single day</strong>.</p>]]></description><content:encoded><![CDATA[<div class="mediatext mediatext--left"><figure class="mediatext__media"><a class="zoom" href="https://joshlambert.xyz/images/posts/choose-healthy-challenge-mobile-app/ChooseHealthLogo_hu_bf9b87e3e0564535.webp" aria-label="View larger image"><img src="https://joshlambert.xyz/images/posts/choose-healthy-challenge-mobile-app/ChooseHealthLogo_hu_bf9b87e3e0564535.webp" width="748" height="941" alt="Choose Healthy Challenge logo, two blue figures jumping under a red heart inside a shield with the wordmarks ‘Choose,’ ‘Healthy’ (in red script), and ‘Challenge.’" loading="lazy" decoding="async"></a></figure><div class="mediatext__text prose flow">
    The Choose Healthy Challenge was a mobile-app based game designed to encourage healthy living habits, <a href="https://en.wikipedia.org/wiki/Gamification" rel="noopener" target="_blank">putting gamification theory to work</a>
, in a way that makes people happier and healthier.
  </div>
</div>

<p>The concept behind this app was simple: encourage the user to take an action that benefits their physical health, nutritional health, and emotional health, <strong>every single day</strong>.</p>
<p>The app made it simple to quickly document these activities. For example, did you go for a walk? Open the app and grab a selfie of yourself making this happen. Every time you documented one of these healthy activities, your health tracker would update and reflect that on your personal dashboard. This would give you that positive reinforcement to build a streak of healthy activities over a multi-day period. Snapchat-style user engagement here, but without the algorithm brain melt.</p>
<p>As you earned points from doing healthy activities, you climbed a leaderboard competing against others in the Birmingham area that were also taking part in the Choose Healthy Challenge. These points counted as “prize entries” making you eligible to win prizes at the end of the Choose Healthy Challenge.</p>
<h2 id="my-role-on-the-project">My Role On The Project</h2>
<p>I led the mobile development effort to bring this app to life writing all of the mobile app code to make this possible. The app was built on the open-source <a href="https://titaniumsdk.com/" rel="noopener" target="_blank">Titanium framework</a>
 leveraging JavaScript and cross-platform technologies. The app was successfully deployed on both the Apple Appstore and Google Play store for the duration of the Choose Healthy Challenge.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/choose-healthy-challenge-mobile-app/Screenshot-2025-01-01-at-9.05.51-PM_hu_1a70735650ad853b.webp" aria-label="View larger image" style="flex-grow: 0.9345794392523364;"><img src="https://joshlambert.xyz/images/posts/choose-healthy-challenge-mobile-app/Screenshot-2025-01-01-at-9.05.51-PM_hu_185f2f92857cd783.webp" width="1000" height="1070" alt="Logo of the Titanium SDK on a dark background, with a red interlocking &#39;T&#39; star mark above the wordmark &#39;Titanium SDK.&#39;" loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/choose-healthy-challenge-mobile-app/JavaScript-logo-1024x1024_hu_cf6b41caa9b2334.webp" aria-label="View larger image" style="flex-grow: 1;"><img src="https://joshlambert.xyz/images/posts/choose-healthy-challenge-mobile-app/JavaScript-logo-1024x1024_hu_f339baaee86b1adc.webp" width="1000" height="1000" alt="Official JavaScript logo, the bold black &#39;JS&#39; on a yellow square." loading="lazy" decoding="async"></a>
  </div></figure>

<p><strong>Do you need help building a mobile app from the ground up? I can help!</strong> Having shipped a number of apps for iOS and Android over the years, I’m intimately familiar with the challenges that come from building one from scratch to scale. <a href="mailto:josh.lambert@centrevilletech.com">Drop me an email and let’s chat. Happy to help bring your app vision to life!</a>
</p>
]]></content:encoded></item><item><title>Automating WooCommerce &amp; Oracle for KATI Sportcap &amp; Bags</title><link>https://joshlambert.xyz/work/automating-woocommerce-oracle-for-kati-sportcap-bags/</link><guid>https://joshlambert.xyz/work/automating-woocommerce-oracle-for-kati-sportcap-bags/</guid><pubDate>Fri, 21 Feb 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<div class="mediatext mediatext--left"><figure class="mediatext__media"><a class="zoom" href="https://joshlambert.xyz/images/posts/automating-woocommerce-oracle-for-kati-sportcap-bags/KatiLogo-1400x560-1-1024x410_hu_870200f38fb5be83.webp" aria-label="View larger image"><img src="https://joshlambert.xyz/images/posts/automating-woocommerce-oracle-for-kati-sportcap-bags/KatiLogo-1400x560-1-1024x410_hu_870200f38fb5be83.webp" width="1024" height="410" alt="KATI Sportcap &amp; Bag wordmark logo, set in a heavy black sans-serif with ‘kati’ on top and ‘SPORTCAP &amp; BAG’ beneath." loading="lazy" decoding="async"></a></figure><div class="mediatext__text prose flow">
    <a href="https://katisportcap.com/" rel="noopener" target="_blank">KATI Sportcap &amp; Bags</a>
 is a wholesale distributor for caps, bags, and accessories. Their website has been a long-term, vital sales channel for retailers looking to source high-quality promotional and decorated apparel products.
  </div>
</div>

<p>While WordPress and WooCommerce provided a solid foundation for their online sales platform, WooCommerce lacked native integration with KATI’s back-office system out of the box. KATI needed seamless, <strong>bi-directional synchronization</strong> between their e-commerce store and their Oracle back-office system.</p>]]></description><content:encoded><![CDATA[<div class="mediatext mediatext--left"><figure class="mediatext__media"><a class="zoom" href="https://joshlambert.xyz/images/posts/automating-woocommerce-oracle-for-kati-sportcap-bags/KatiLogo-1400x560-1-1024x410_hu_870200f38fb5be83.webp" aria-label="View larger image"><img src="https://joshlambert.xyz/images/posts/automating-woocommerce-oracle-for-kati-sportcap-bags/KatiLogo-1400x560-1-1024x410_hu_870200f38fb5be83.webp" width="1024" height="410" alt="KATI Sportcap &amp; Bag wordmark logo, set in a heavy black sans-serif with ‘kati’ on top and ‘SPORTCAP &amp; BAG’ beneath." loading="lazy" decoding="async"></a></figure><div class="mediatext__text prose flow">
    <a href="https://katisportcap.com/" rel="noopener" target="_blank">KATI Sportcap &amp; Bags</a>
 is a wholesale distributor for caps, bags, and accessories. Their website has been a long-term, vital sales channel for retailers looking to source high-quality promotional and decorated apparel products.
  </div>
</div>

<p>While WordPress and WooCommerce provided a solid foundation for their online sales platform, WooCommerce lacked native integration with KATI’s back-office system out of the box. KATI needed seamless, <strong>bi-directional synchronization</strong> between their e-commerce store and their Oracle back-office system.</p>
<h2 id="how-i-helped">How I Helped</h2>
<p>I engineered and programmed a <strong>custom integration bridge</strong> between WooCommerce and their preexisting Oracle back-office using PHP, webhooks, and system CRONs to provide the automation they required.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/automating-woocommerce-oracle-for-kati-sportcap-bags/channels4_profile_hu_3a38fca163ce4d93.webp" aria-label="View larger image" style="flex-grow: 1;"><img src="https://joshlambert.xyz/images/posts/automating-woocommerce-oracle-for-kati-sportcap-bags/channels4_profile_hu_8422fd4c13241716.webp" width="1000" height="1000" alt="Oracle APEX logo, the white ‘ORACLE’ wordmark above ‘APEX’ on a brick-red square background." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/automating-woocommerce-oracle-for-kati-sportcap-bags/php_hu_2cabb8a2f0d7bcc8.webp" aria-label="View larger image" style="flex-grow: 1.7094017094017093;"><img src="https://joshlambert.xyz/images/posts/automating-woocommerce-oracle-for-kati-sportcap-bags/php_hu_6d61aa1c3965184f.webp" width="1000" height="585" alt="Official PHP logo, the lowercase ‘php’ wordmark in white inside an oval slate-blue badge." loading="lazy" decoding="async"></a>
  </div></figure>

<p>This integration made KATI’s online operations seamless within WooCommerce. Working hand in hand with their existing web development team, I eliminated all manual processes and ensured painless synchronization:</p>
<ul>
<li>Product SKUs entered into the Oracle back-office would import automatically into WooCommerce.</li>
<li>Stock levels from the Oracle back-office would synchronize, bi-directionally, with the website.</li>
<li>Orders placed on the website would feed into the Oracle APEX back-office automatically.</li>
<li>Previous customer account order history from the Oracle back-office would display seamlessly within the customer website.</li>
</ul>
<p><strong>Thanks to this integration, KATI could take advantage of a modern e-commerce framework like WooCommerce without having to upend their existing back-office processes and operations.</strong> This means they could stay focused on growth, customer experience, and seamless wholesale distribution, and not on manual processes and headaches.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/automating-woocommerce-oracle-for-kati-sportcap-bags/WooCommerce-Logo-1024x506_hu_fd1d1f65e60c1d03.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/automating-woocommerce-oracle-for-kati-sportcap-bags/WooCommerce-Logo-1024x506_hu_fd1d1f65e60c1d03.webp" width="1024" height="506"
           alt="WooCommerce logo, the white ‘Woo’ inside a purple speech bubble above the bold ‘COMMERCE’ wordmark." loading="lazy" decoding="async">
    </a></figure></p>
<p><strong>Need a custom e-commerce solution that works with your enterprise software?</strong> Let’s build it. <a href="mailto:josh.lambert@centrevilletech.com">Drop me an email and we’ll build something customized to your exact needs.</a>
</p>
]]></content:encoded></item><item><title>Planet Fundraiser Mobile App</title><link>https://joshlambert.xyz/work/planet-fundraiser-mobile-app/</link><guid>https://joshlambert.xyz/work/planet-fundraiser-mobile-app/</guid><pubDate>Thu, 20 Feb 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<div class="mediatext mediatext--left"><figure class="mediatext__media"><a class="zoom" href="https://joshlambert.xyz/images/posts/planet-fundraiser-mobile-app/planet-fundraiser_hu_a316bacf15598b6c.webp" aria-label="View larger image"><img src="https://joshlambert.xyz/images/posts/planet-fundraiser-mobile-app/planet-fundraiser_hu_a316bacf15598b6c.webp" width="364" height="364" alt="Planet Fundraiser app icon, a stylized white planet with a heart at center on a sky-blue background." loading="lazy" decoding="async"></a></figure><div class="mediatext__text prose flow">
    Planet Fundraiser was a mobile app, developed right here in Alabama, designed to make supporting local charities as easy as snapping a photo.
  </div>
</div>

<p><strong>Local businesses were the rock star for this app and made the giving effort possible.</strong> Customers shop like they normally do, take a picture of their receipt, and scan it into the Planet Fundraiser app. Once the receipt is scanned, a customer is then prompted to select a charity to donate a portion of their purchase to. The concept was often described in the marketing as <em>“Shop, Snap, Give!”.</em></p>]]></description><content:encoded><![CDATA[<div class="mediatext mediatext--left"><figure class="mediatext__media"><a class="zoom" href="https://joshlambert.xyz/images/posts/planet-fundraiser-mobile-app/planet-fundraiser_hu_a316bacf15598b6c.webp" aria-label="View larger image"><img src="https://joshlambert.xyz/images/posts/planet-fundraiser-mobile-app/planet-fundraiser_hu_a316bacf15598b6c.webp" width="364" height="364" alt="Planet Fundraiser app icon, a stylized white planet with a heart at center on a sky-blue background." loading="lazy" decoding="async"></a></figure><div class="mediatext__text prose flow">
    Planet Fundraiser was a mobile app, developed right here in Alabama, designed to make supporting local charities as easy as snapping a photo.
  </div>
</div>

<p><strong>Local businesses were the rock star for this app and made the giving effort possible.</strong> Customers shop like they normally do, take a picture of their receipt, and scan it into the Planet Fundraiser app. Once the receipt is scanned, a customer is then prompted to select a charity to donate a portion of their purchase to. The concept was often described in the marketing as <em>“Shop, Snap, Give!”.</em></p>
<p><a href="https://www.youtube.com/watch?v=RuwB6onx1Io" rel="noopener" target="_blank">Local news station CBS42 covered the app concept nicely</a>
. You can also see a walk-through of the app in the video below:</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/RuwB6onx1Io?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<p>Only businesses participating on the Planet Fundraiser platform were eligible for the charity give-back. The idea here was to drive consumer behavior and push them towards shopping at businesses that made the decision to support charity efforts in their operating budgets over other businesses that didn’t.</p>
<h2 id="my-role-on-the-team">My Role On The Team</h2>
<p>As the Lead Mobile Developer for Planet Fundraiser, I managed the mobile engineering team, working closely with designers and developers, as well as shipping code of my own, to build the application from the ground up. The app was developed using the Titanium framework, which allowed cross-platform development from a single unified JavaScript codebase.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/planet-fundraiser-mobile-app/Screenshot-2025-01-01-at-9.05.51-PM_hu_1a70735650ad853b.webp" aria-label="View larger image" style="flex-grow: 0.9345794392523364;"><img src="https://joshlambert.xyz/images/posts/planet-fundraiser-mobile-app/Screenshot-2025-01-01-at-9.05.51-PM_hu_185f2f92857cd783.webp" width="1000" height="1070" alt="Logo of the Titanium SDK on a dark background, with a red interlocking &#39;T&#39; star mark above the wordmark &#39;Titanium SDK.&#39;" loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/planet-fundraiser-mobile-app/JavaScript-logo-1024x1024_hu_cf6b41caa9b2334.webp" aria-label="View larger image" style="flex-grow: 1;"><img src="https://joshlambert.xyz/images/posts/planet-fundraiser-mobile-app/JavaScript-logo-1024x1024_hu_f339baaee86b1adc.webp" width="1000" height="1000" alt="Official JavaScript logo, the bold black &#39;JS&#39; on a yellow square." loading="lazy" decoding="async"></a>
  </div></figure>

<p>My experience with Titanium development on the Planet Fundraiser project would eventually lead to a more significant roll inside the Titanium development ecosystem. I took on a leadership role as chairman of the <a href="https://tidev.io" rel="noopener" target="_blank">TiDev Foundation</a>
, the 501c3 non-profit organization responsible for maintaining the Titanium framework today. <a href="https://www.bibbvoice.com/2022/05/01/titanium-mobile-development-software-finds-a-new-home-in-central-alabama/" rel="noopener" target="_blank">You can learn more about that by clicking here.</a>
</p>
<p><strong>Do you need help building a mobile app from the ground up? I can help!</strong> Having shipped a number of apps for iOS and Android over the years, I’m intimately familiar with the challenges that come from building one from scratch to scale. <a href="mailto:josh.lambert@centrevilletech.com">Drop me an email and let’s chat. Happy to help bring your app vision to life!</a>
</p>
]]></content:encoded></item><item><title>ResultWorx TMS Solution</title><link>https://joshlambert.xyz/work/resultworx-tms-solution/</link><guid>https://joshlambert.xyz/work/resultworx-tms-solution/</guid><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<p>A Transportation Management System (TMS) is a vital component of modern freight logistics. Without this essential software, businesses lack critical visibility into the real-time location of their drivers and cargo. I can’t imagine operating in the freight and logistics industry without it!</p>
<p>In 2011, I collaborated with the team at <a href="https://resultworx.com/" rel="noopener" target="_blank">ResultWorx</a>
, a division of <a href="https://biscomputer.com/" rel="noopener" target="_blank">BIS Computer Solutions</a>
 based in Los Angeles, California, to develop the first proof-of-concept version of the ResultWorx TMS platform, <a href="https://load-logix.com/" rel="noopener" target="_blank"><em>Load-Logix</em></a>
. This project laid the foundation for a powerful solution designed to streamline freight management and improve operational efficiency.</p>]]></description><content:encoded><![CDATA[<p>A Transportation Management System (TMS) is a vital component of modern freight logistics. Without this essential software, businesses lack critical visibility into the real-time location of their drivers and cargo. I can’t imagine operating in the freight and logistics industry without it!</p>
<p>In 2011, I collaborated with the team at <a href="https://resultworx.com/" rel="noopener" target="_blank">ResultWorx</a>
, a division of <a href="https://biscomputer.com/" rel="noopener" target="_blank">BIS Computer Solutions</a>
 based in Los Angeles, California, to develop the first proof-of-concept version of the ResultWorx TMS platform, <a href="https://load-logix.com/" rel="noopener" target="_blank"><em>Load-Logix</em></a>
. This project laid the foundation for a powerful solution designed to streamline freight management and improve operational efficiency.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/resultworx-tms-solution/TruckboardTMS_hu_9c5804689c8c74ba.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/resultworx-tms-solution/TruckboardTMS_hu_c4e54002773c222c.webp" width="1200" height="696"
           alt="Screenshot of the ResultWorx Driver Tracking dashboard, with a North American Google map of available drivers on the right and a recent activity feed below." loading="lazy" decoding="async">
    </a></figure></p>
<p>The first version of this software was designed <strong>completely bespoke around an individual freight broker’s requirements</strong> building out the feature set they required in their day-to-day operations, functions they were previously tracking with Excel and old-fashioned pen-and-paper.</p>
<p><strong>Those features included but were not limited to:</strong></p>
<ul>
<li>Map view of all available and unavailable drivers in the TMS.</li>
<li>Live real-time newsfeed of driver availability as users throughout the organization updated the driver database.</li>
<li>Ability to “cover” a driver to keep another operator from communicating with or updating driver information if a specific back-office operator was already working with the driver. (You can see this in the screenshot, where in the news feed, the record is blocked from updates.)</li>
<li>Integration with GPS and automated calling systems to determine a driver’s location, whether or not they have a smartphone. <strong>This eliminates the need for back-office employees to manually call drivers for location updates.</strong></li>
<li>Rich reporting to drill down based on truck type, location, availability, desired destination, and more.</li>
</ul>
<p>Technologies utilized in development of this initial TMS application included <a href="https://en.wikipedia.org/wiki/JavaScript" rel="noopener" target="_blank">JavaScript</a>
, <a href="https://www.php.net/" rel="noopener" target="_blank">PHP</a>
, and the <a href="https://developers.google.com/maps" rel="noopener" target="_blank">Google Maps API</a>
.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/resultworx-tms-solution/js_hu_4c79f3933f026657.webp" aria-label="View larger image" style="flex-grow: 1;"><img src="https://joshlambert.xyz/images/posts/resultworx-tms-solution/js_hu_3df02219bac82b57.webp" width="1000" height="1000" alt="Official JavaScript logo, the bold black ‘JS’ on a yellow square." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/resultworx-tms-solution/php_hu_2cabb8a2f0d7bcc8.webp" aria-label="View larger image" style="flex-grow: 1.7094017094017093;"><img src="https://joshlambert.xyz/images/posts/resultworx-tms-solution/php_hu_6d61aa1c3965184f.webp" width="1000" height="585" alt="Official PHP logo, the lowercase ‘php’ wordmark in white inside an oval slate-blue badge." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/resultworx-tms-solution/googlemaps_hu_79454d96d8c1e057.webp" aria-label="View larger image" style="flex-grow: 1.2406947890818858;"><img src="https://joshlambert.xyz/images/posts/resultworx-tms-solution/googlemaps_hu_fe914ee9afe6e23.webp" width="1000" height="806" alt="Google Maps logo, a multicolored teardrop pin with a white center above the ‘Google Maps’ wordmark." loading="lazy" decoding="async"></a>
  </div></figure>

<p>The Load-Logix platform would eventually spin off into a standalone SaaS platform after my time at BIS and is now used by multiple customers in the management of their freight and logistics operations.</p>
<p>Does your organization need help building something like this? I can help! <a href="https://joshlambert.xyz/contact/">Drop me a DM and let’s make it happen.</a>
</p>
]]></content:encoded></item><item><title>React Mobile Dispatch Center</title><link>https://joshlambert.xyz/work/react-mobile-hotel-dispatch-center/</link><guid>https://joshlambert.xyz/work/react-mobile-hotel-dispatch-center/</guid><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<p>Keeping hotel employees safe has been a priority in the industry for years now. Starting as far back as at least 2016, regional authorities including the <a href="https://en.wikipedia.org/wiki/Initiative_Measure_124_%28Seattle%29" rel="noopener" target="_blank">City of Seattle began passing laws requiring panic buttons to be furnished to hotel workers</a>
. These buttons provided employees a discrete and fast way to notify security and emergency personnel when critical security situations required their involvement.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/react-mobile-hotel-dispatch-center/React_Device_Photo_2-678x381-1_hu_e1cf789ed3799140.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/react-mobile-hotel-dispatch-center/React_Device_Photo_2-678x381-1_hu_e1cf789ed3799140.webp" width="678" height="381"
           alt="Hotel housekeeping staff member smiling and presenting her React Mobile panic-button keychain, with a hotel guest room behind her." loading="lazy" decoding="async">
    </a></figure></p>]]></description><content:encoded><![CDATA[<p>Keeping hotel employees safe has been a priority in the industry for years now. Starting as far back as at least 2016, regional authorities including the <a href="https://en.wikipedia.org/wiki/Initiative_Measure_124_%28Seattle%29" rel="noopener" target="_blank">City of Seattle began passing laws requiring panic buttons to be furnished to hotel workers</a>
. These buttons provided employees a discrete and fast way to notify security and emergency personnel when critical security situations required their involvement.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/react-mobile-hotel-dispatch-center/React_Device_Photo_2-678x381-1_hu_e1cf789ed3799140.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/react-mobile-hotel-dispatch-center/React_Device_Photo_2-678x381-1_hu_e1cf789ed3799140.webp" width="678" height="381"
           alt="Hotel housekeeping staff member smiling and presenting her React Mobile panic-button keychain, with a hotel guest room behind her." loading="lazy" decoding="async">
    </a></figure></p>
<p>These buttons, when pressed, send emergency alerts to the on-call security team showing them a map view of where the security incident occurred down to the specific hotel room. No need to guess or scramble when seconds matter most.</p>
<p>I worked with the team at React Mobile to develop the first version of the Dispatch Center application. It connected with backend APIs to receive emergency alerts, plot them on to a Google Map, presented information about the specific room where the event occurred, and which employee needed help.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/react-mobile-hotel-dispatch-center/153146890_hu_da8737e259fbd4b0.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/react-mobile-hotel-dispatch-center/153146890_hu_da8737e259fbd4b0.webp" width="562" height="421"
           alt="Render of the React Mobile Dispatch Center desktop view with an active SOS pin on a Seattle Google map, paired with an iPhone running the I’m-Fine companion app and a Bluetooth panic-button puck." loading="lazy" decoding="async">
    </a></figure></p>
<p>The initial version I developed was in the form of a desktop application that ran on Windows, Mac, and Linux from an easy-to-use installer. The application utilized native push notifications to escalate the application to the top of the window stack when an emergency event occurred, making sure an end-user binging YouTube videos wouldn’t lose sight of a critical event. Additionally, support was included to play a loud emergency alert siren that could be configured on and off based on organization preference and requirement.</p>
<p>Technologies utilized in development of this application included <a href="https://getbootstrap.com/" rel="noopener" target="_blank">Bootstrap</a>
, <a href="https://en.wikipedia.org/wiki/JavaScript" rel="noopener" target="_blank">JavaScript</a>
, <a href="https://www.electronjs.org/" rel="noopener" target="_blank">Electron</a>
, and <a href="https://nodejs.org/en" rel="noopener" target="_blank">Node.JS</a>
.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/react-mobile-hotel-dispatch-center/node_hu_feee0ea7f6325be1.webp" aria-label="View larger image" style="flex-grow: 1.6835016835016836;"><img src="https://joshlambert.xyz/images/posts/react-mobile-hotel-dispatch-center/node_hu_aff1300f6bd40d2b.webp" width="1000" height="594" alt="Node.js logo, with the dark ‘node’ wordmark beside a green hexagonal ‘JS’ badge." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/react-mobile-hotel-dispatch-center/electron_hu_589efe038b32bad4.webp" aria-label="View larger image" style="flex-grow: 1.7482517482517483;"><img src="https://joshlambert.xyz/images/posts/react-mobile-hotel-dispatch-center/electron_hu_df5235bbcf46925b.webp" width="1000" height="572" alt="Electron framework logo, a teal atom orbital glyph beside the wordmark ‘Electron’ on a slate background." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/react-mobile-hotel-dispatch-center/bootstrap_hu_37791e01e45d16ce.webp" aria-label="View larger image" style="flex-grow: 1.658374792703151;"><img src="https://joshlambert.xyz/images/posts/react-mobile-hotel-dispatch-center/bootstrap_hu_c8621ce3fde689ea.webp" width="1000" height="603" alt="Bootstrap framework logo, a white capital ‘B’ inside a purple curly-brace badge on a soft blue gradient." loading="lazy" decoding="async"></a>
  </div></figure>

<p>The React Mobile Dispatch Center made national news several times as it was rolled out across major cities:</p>
<ul>
<li><a href="https://www.kcra.com/article/norcal-hotel-working-to-help-workers-with-panic-buttons/23000377" rel="noopener" target="_blank">NorCal hotel working to help workers with panic buttons (KCRA)</a>
</li>
<li><a href="https://www.chicagotribune.com/2018/06/07/chicago-hotels-roll-out-panic-button-systems-to-protect-housekeepers-from-sexual-harassment/" rel="noopener" target="_blank">Chicago hotels roll out panic-button systems to protect housekeepers (Chicago Tribune)</a>
</li>
<li><a href="https://www.wjcl.com/article/in-reversal-hotel-industry-to-back-panic-buttons-for-workers/22995817" rel="noopener" target="_blank">In reversal, hotel industry to back panic buttons for workers (WJCL)</a>
</li>
</ul>
<p>Does your organization need help building something like this? I can help! <a href="https://joshlambert.xyz/contact/">Drop me a DM and let’s make it happen.</a>
</p>
]]></content:encoded></item><item><title>Gate Agent Mobile App</title><link>https://joshlambert.xyz/work/gate-agent-mobile-app/</link><guid>https://joshlambert.xyz/work/gate-agent-mobile-app/</guid><pubDate>Fri, 03 Jan 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<p>High school football games are a classic American experience, bringing communities together to cheer on their local athletes. Who doesn’t love watching these kids develop both their athletic talent and good sportsmanship at the same time?</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/gate-agent-mobile-app/logo_hu_adc737f5cdad362a.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/gate-agent-mobile-app/logo_hu_adc737f5cdad362a.webp" width="1000" height="341"
           alt="TouchdownTix wordmark logo, with “Touchdown” in royal-blue serif italics next to a hand-drawn red “Tix” ticket icon." loading="lazy" decoding="async">
    </a></figure></p>
<p>TouchdownTix, an Alabama company, serves schools in this space through development of a custom ticket sales platform. Their goal is to reduce service fees while also making the ticket purchase experience super stream-lined both for customers, and the school volunteers or staff running the games.</p>]]></description><content:encoded><![CDATA[<p>High school football games are a classic American experience, bringing communities together to cheer on their local athletes. Who doesn’t love watching these kids develop both their athletic talent and good sportsmanship at the same time?</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/gate-agent-mobile-app/logo_hu_adc737f5cdad362a.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/gate-agent-mobile-app/logo_hu_adc737f5cdad362a.webp" width="1000" height="341"
           alt="TouchdownTix wordmark logo, with “Touchdown” in royal-blue serif italics next to a hand-drawn red “Tix” ticket icon." loading="lazy" decoding="async">
    </a></figure></p>
<p>TouchdownTix, an Alabama company, serves schools in this space through development of a custom ticket sales platform. Their goal is to reduce service fees while also making the ticket purchase experience super stream-lined both for customers, and the school volunteers or staff running the games.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/gate-agent-mobile-app/AdobeStock_5592118081-1024x683_hu_c2dd20b8653e5279.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/gate-agent-mobile-app/AdobeStock_5592118081-1024x683_hu_c2dd20b8653e5279.webp" width="1024" height="683"
           alt="Friday-night high school football photo of a wide receiver in black and gold leaping for a one-handed catch as a defender in white and yellow Bruins jerseys closes in." loading="lazy" decoding="async">
    </a></figure></p>
<p>I worked with the team at TouchdownTix to develop a custom mobile app for validating ticket sales at the gate. This app was fairly basic, allowing school staff to sign in with either a username and password or a QR code, then scan tickets to determine if they are valid. If the app determined the ticket was valid, it marked the ticket as used so attendance could be measured after the game is over.</p>
<p>This app was developed using a combination of JavaScript and the <a href="https://titaniumsdk.com" rel="noopener" target="_blank">Titanium SDK</a>
. It runs on both iOS and Android.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/gate-agent-mobile-app/Screenshot-2025-01-01-at-9.05.51-PM_hu_1a70735650ad853b.webp" aria-label="View larger image" style="flex-grow: 0.9345794392523364;"><img src="https://joshlambert.xyz/images/posts/gate-agent-mobile-app/Screenshot-2025-01-01-at-9.05.51-PM_hu_185f2f92857cd783.webp" width="1000" height="1070" alt="Logo of the Titanium SDK on a dark background, with a red interlocking “T” star mark above the wordmark “Titanium SDK.”" loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/gate-agent-mobile-app/JavaScript-logo-1024x1024_hu_cf6b41caa9b2334.webp" aria-label="View larger image" style="flex-grow: 1;"><img src="https://joshlambert.xyz/images/posts/gate-agent-mobile-app/JavaScript-logo-1024x1024_hu_f339baaee86b1adc.webp" width="1000" height="1000" alt="Official JavaScript logo, the bold black “JS” on a yellow square." loading="lazy" decoding="async"></a>
  </div></figure>

<p>Need something like this for your business? I can help you build it! <a href="https://joshlambert.xyz/contact/">Drop me a DM and let’s chat.</a>
</p>
]]></content:encoded></item><item><title>Partners Experience for Command Alkon</title><link>https://joshlambert.xyz/work/partners-experience-for-command-alkon/</link><guid>https://joshlambert.xyz/work/partners-experience-for-command-alkon/</guid><pubDate>Thu, 02 Jan 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<p>I recently wrapped up development of a new custom WordPress plugin for my friends at Command Alkon. This plugin is used to power the <a href="https://partners.commandalkon.com/manufacturer-partners/" rel="noopener" target="_blank">Manufacturer</a>
 and <a href="https://partners.commandalkon.com/industry-partners/" rel="noopener" target="_blank">Industry</a>
 partner pages on their website. This enables leads on the site to search-and-filter Command Alkon partner companies.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/partners-experience-for-command-alkon/Screenshot-2025-01-01-at-6.49.36-PM-1024x736_hu_1157028f9d82f3ff.webp" aria-label="View larger image" style="flex-grow: 1.3908205841446453;"><img src="https://joshlambert.xyz/images/posts/partners-experience-for-command-alkon/Screenshot-2025-01-01-at-6.49.36-PM-1024x736_hu_df735ca4c5e47a28.webp" width="1000" height="719" alt="Screenshot of the Command Alkon Partners directory after searching “Concre,” showing logo cards for Bradley Concrete, CESI, Concrete Equipment Supply, Concrete Machinery Corporation, Concrete Plants Inc, Odisa Concrete, and Southern Concrete Machinery." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/partners-experience-for-command-alkon/Screenshot-2025-01-01-at-6.49.49-PM_hu_112796beacc9da83.webp" aria-label="View larger image" style="flex-grow: 0.8598452278589854;"><img src="https://joshlambert.xyz/images/posts/partners-experience-for-command-alkon/Screenshot-2025-01-01-at-6.49.49-PM_hu_b6282ffa10d797b.webp" width="1000" height="1163" alt="Command Alkon Partners directory filter sidebar with a “Clear All Filters” button and a list of region options including North America, Central America, South America, Australia, and Brazil." loading="lazy" decoding="async"></a>
  </div></figure>

<p>JavaScript was used for the filter and search functionality as opposed to server-side logic allowing user interactions to be zippy and fast. Results load in milliseconds and allow potential customers to quickly identify partner companies they utilize in their course of business that would have connections to the Command Alkon software suite. Custom styling was used to deliver a sleek experience on desktop, tablet, and smartphone devices.</p>]]></description><content:encoded><![CDATA[<p>I recently wrapped up development of a new custom WordPress plugin for my friends at Command Alkon. This plugin is used to power the <a href="https://partners.commandalkon.com/manufacturer-partners/" rel="noopener" target="_blank">Manufacturer</a>
 and <a href="https://partners.commandalkon.com/industry-partners/" rel="noopener" target="_blank">Industry</a>
 partner pages on their website. This enables leads on the site to search-and-filter Command Alkon partner companies.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/partners-experience-for-command-alkon/Screenshot-2025-01-01-at-6.49.36-PM-1024x736_hu_1157028f9d82f3ff.webp" aria-label="View larger image" style="flex-grow: 1.3908205841446453;"><img src="https://joshlambert.xyz/images/posts/partners-experience-for-command-alkon/Screenshot-2025-01-01-at-6.49.36-PM-1024x736_hu_df735ca4c5e47a28.webp" width="1000" height="719" alt="Screenshot of the Command Alkon Partners directory after searching “Concre,” showing logo cards for Bradley Concrete, CESI, Concrete Equipment Supply, Concrete Machinery Corporation, Concrete Plants Inc, Odisa Concrete, and Southern Concrete Machinery." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/partners-experience-for-command-alkon/Screenshot-2025-01-01-at-6.49.49-PM_hu_112796beacc9da83.webp" aria-label="View larger image" style="flex-grow: 0.8598452278589854;"><img src="https://joshlambert.xyz/images/posts/partners-experience-for-command-alkon/Screenshot-2025-01-01-at-6.49.49-PM_hu_b6282ffa10d797b.webp" width="1000" height="1163" alt="Command Alkon Partners directory filter sidebar with a “Clear All Filters” button and a list of region options including North America, Central America, South America, Australia, and Brazil." loading="lazy" decoding="async"></a>
  </div></figure>

<p>JavaScript was used for the filter and search functionality as opposed to server-side logic allowing user interactions to be zippy and fast. Results load in milliseconds and allow potential customers to quickly identify partner companies they utilize in their course of business that would have connections to the Command Alkon software suite. Custom styling was used to deliver a sleek experience on desktop, tablet, and smartphone devices.</p>
<p>I anticipate that Command Alkon and their partner businesses will see significant value from marketing how they help each other, pushing new sales and opportunities towards all those involved in the partner program. <strong>A win for everybody!</strong></p>
<p>Need something like this for your business? <a href="https://joshlambert.xyz/contact/">Drop me a line.</a>
</p>
]]></content:encoded></item><item><title>Haven Today Mobile App</title><link>https://joshlambert.xyz/work/haven-today-mobile-app/</link><guid>https://joshlambert.xyz/work/haven-today-mobile-app/</guid><pubDate>Thu, 02 Jan 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<p>The Haven of Rest, a Christian radio program by Paul Myers, has been broadcast across the globe since 1934, delivering listeners a message of encouragement, hope, and redemption.</p>
<p>Now operating under the name “<a href="https://haventoday.org" rel="noopener" target="_blank">Haven Today</a>
,” the program reaches older and newer listeners alike, not just on the radio, but also through podcasts, their website, and the mobile app.</p>
<p>I worked with the team at Haven to build them a cross-platform mobile app for iOS and Android, replacing a previous version that had bugs and other usability issues. My responsibilities included taking designs from their in-house designer in Adobe XD and converting them into a fully functional mobile application.</p>]]></description><content:encoded><![CDATA[<p>The Haven of Rest, a Christian radio program by Paul Myers, has been broadcast across the globe since 1934, delivering listeners a message of encouragement, hope, and redemption.</p>
<p>Now operating under the name “<a href="https://haventoday.org" rel="noopener" target="_blank">Haven Today</a>
,” the program reaches older and newer listeners alike, not just on the radio, but also through podcasts, their website, and the mobile app.</p>
<p>I worked with the team at Haven to build them a cross-platform mobile app for iOS and Android, replacing a previous version that had bugs and other usability issues. My responsibilities included taking designs from their in-house designer in Adobe XD and converting them into a fully functional mobile application.</p>
<p>The backend for the app was built on top of their existing WordPress website and used the WordPress API and a custom plugin to expose all of the data that makes the Haven app tick to the mobile app.</p>
<p>The app itself was built using the open-source Titanium framework. With Titanium, you’re able to build apps for both iOS and Android from a single unified codebase. This helped keep the development costs under control and made it possible to build a bespoke app from the ground up, customized for their unique demographic and business requirements.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/haven-today-mobile-app/Screenshot-2025-01-01-at-9.05.51-PM_hu_1a70735650ad853b.webp" aria-label="View larger image" style="flex-grow: 0.9345794392523364;"><img src="https://joshlambert.xyz/images/posts/haven-today-mobile-app/Screenshot-2025-01-01-at-9.05.51-PM_hu_185f2f92857cd783.webp" width="1000" height="1070" alt="Logo of the Titanium SDK on a dark background, with a red interlocking ‘T’ star mark above the wordmark ‘Titanium SDK.’" loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/haven-today-mobile-app/Screenshot-2025-01-01-at-9.06.04-PM_hu_f81a682a92ecf1a9.webp" aria-label="View larger image" style="flex-grow: 2.1459227467811157;"><img src="https://joshlambert.xyz/images/posts/haven-today-mobile-app/Screenshot-2025-01-01-at-9.06.04-PM_hu_a90fdd18550a989c.webp" width="1000" height="466" alt="Logo of WordPress.org, the white circled W glyph with the WordPress.org wordmark on a dark slate background." loading="lazy" decoding="async"></a>
  </div></figure>

<p>Need an app like this for your business or non-profit? I can help! <a href="https://joshlambert.xyz/contact/">Drop me a line and let’s chat.</a>
</p>
]]></content:encoded></item><item><title>Carbon Calculator for CareAR</title><link>https://joshlambert.xyz/work/carbon-calculator-for-carear/</link><guid>https://joshlambert.xyz/work/carbon-calculator-for-carear/</guid><pubDate>Thu, 02 Jan 2025 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description><![CDATA[<p><a href="https://carear.com" rel="noopener" target="_blank">CareAR</a>
, a division of <a href="https://www.xerox.com/" rel="noopener" target="_blank">Xerox</a>
, is an augmented reality software company with the motto to “Make Expertise Accessible”. They do this through their proprietary mobile application which connects field technicians to experts at their home office. Both the technician and remote expert are able to interact together in real-time over live-stream video from the work site where they can collaborate to solve challenges that the technician would struggle with independently without assistance.</p>]]></description><content:encoded><![CDATA[<p><a href="https://carear.com" rel="noopener" target="_blank">CareAR</a>
, a division of <a href="https://www.xerox.com/" rel="noopener" target="_blank">Xerox</a>
, is an augmented reality software company with the motto to “Make Expertise Accessible”. They do this through their proprietary mobile application which connects field technicians to experts at their home office. Both the technician and remote expert are able to interact together in real-time over live-stream video from the work site where they can collaborate to solve challenges that the technician would struggle with independently without assistance.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/carbon-calculator-for-carear/Telecom-Assist22-modem-float-cropped.jpg_hu_b851f4899a0cbfc5.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/carbon-calculator-for-carear/Telecom-Assist22-modem-float-cropped.jpg_hu_b851f4899a0cbfc5.webp" width="900" height="552"
           alt="CareAR remote-assistance demo: a hand holding a phone with the AR overlay “Unplug this coax cable” pointing at a cable modem on a wooden table." loading="lazy" decoding="async">
    </a></figure></p>
<p>This technology has provided tremendous value in the manufacturing, telecom, IT service, and healthcare industries saving thousands of man hours and truck-rolls from needing to happen.</p>
<p>In addition to the cost saving measures CareAR has delivered to their customers, there’s also a <a href="https://carear.com/sustainability/" rel="noopener" target="_blank">significant cut in carbon emissions</a>
 for organizations that deploy this technology.</p>
<p>I worked with the team at CareAR to develop an embedded carbon calculator for their website. This tool allows visitors to model how CareAR can help their organization cut carbon emissions and save money at the same time based on their truck roles, job site distance, and fuel used in dispatch.</p>
<p>The calculator was developed as a custom <a href="https://wordpress.org" rel="noopener" target="_blank">WordPress</a>
 plugin that was built to support the Divi theme on the website. Form values were connected to their <a href="https://business.adobe.com/products/marketo.html" rel="noopener" target="_blank">Adobe Marketo</a>
 platform making it easy for CareAR staff to connect with visitors interested in the CareAR service offering.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/carbon-calculator-for-carear/marketo-an-adobe-company-vector-logo_hu_e32413cdf0b2dd9e.webp" aria-label="View larger image" style="flex-grow: 1.7985611510791366;"><img src="https://joshlambert.xyz/images/posts/carbon-calculator-for-carear/marketo-an-adobe-company-vector-logo_hu_22910d64534d0e6.webp" width="1000" height="556" alt="Marketo logo, with a stack of three purple bars next to the dark navy “Marketo” wordmark and the tagline “An Adobe Company.”" loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/carbon-calculator-for-carear/Screenshot-2025-01-01-at-9.32.46-PM_hu_cca139995af64f76.webp" aria-label="View larger image" style="flex-grow: 1.663893510815308;"><img src="https://joshlambert.xyz/images/posts/carbon-calculator-for-carear/Screenshot-2025-01-01-at-9.32.46-PM_hu_d9f0720666a0b685.webp" width="1000" height="601" alt="Elegant Themes logo, the lowercase “elegant” wordmark in dark gray with a magenta starburst above the “g,” and the word “themes” beneath in light gray." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/carbon-calculator-for-carear/Screenshot-2025-01-01-at-9.06.04-PM_hu_f81a682a92ecf1a9.webp" aria-label="View larger image" style="flex-grow: 2.1459227467811157;"><img src="https://joshlambert.xyz/images/posts/carbon-calculator-for-carear/Screenshot-2025-01-01-at-9.06.04-PM_hu_a90fdd18550a989c.webp" width="1000" height="466" alt="Logo of WordPress.org, the white circled W glyph with the WordPress.org wordmark on a dark slate background." loading="lazy" decoding="async"></a>
  </div></figure>

<p>Does your marketing team need something like this on your website? I can help! <a href="https://joshlambert.xyz/contact/">Drop me a DM and let’s make it happen.</a>
</p>
]]></content:encoded></item><item><title>A Holler for Your Dollar</title><link>https://joshlambert.xyz/work/a-holler-for-your-dollar/</link><guid>https://joshlambert.xyz/work/a-holler-for-your-dollar/</guid><pubDate>Wed, 26 Jul 2023 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description>&lt;p>It’s a fast-paced world for online content creators. Alas, one thing remains a constant: uncertainty. The preferences of a creator’s fanbase can change with the wind, and the demands of content platforms hosting creators is always evolving. It’s an ever-changing area where content creators must be agile in order to stay relevant and financially sustainable.&lt;/p>
&lt;p>A new tool has emerged forging another way for content creators to monetize their work. With Holler, fans can directly support their favorite content creators through purchase of a shout-out, up to 10 words, on their podcast or live-stream. Proceeds from sales of these shout-outs will appear swiftly in a creators’ linked bank account with minimal friction or delay.&lt;/p></description><content:encoded><![CDATA[<p>It’s a fast-paced world for online content creators. Alas, one thing remains a constant: uncertainty. The preferences of a creator’s fanbase can change with the wind, and the demands of content platforms hosting creators is always evolving. It’s an ever-changing area where content creators must be agile in order to stay relevant and financially sustainable.</p>
<p>A new tool has emerged forging another way for content creators to monetize their work. With Holler, fans can directly support their favorite content creators through purchase of a shout-out, up to 10 words, on their podcast or live-stream. Proceeds from sales of these shout-outs will appear swiftly in a creators’ linked bank account with minimal friction or delay.</p>
<p>On-boarding for a creator to join the Holler platform is quick and easy. Within just 10 minutes of registration and linking a bank account, a creator can start harnessing the potential of Holler to fund their creative endeavors. Each creator receives a unique, customizable URL like <strong><a href="https://holler.baby/josh" rel="noopener" target="_blank">holler.baby/josh</a>
</strong>, ready to be shared across their various social channels and streams for shout-out-sales.</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/a-holler-for-your-dollar/Holler_Screenshot2-1024x499_hu_bb9ee8562fded8be.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/a-holler-for-your-dollar/Holler_Screenshot2-1024x499_hu_bb9ee8562fded8be.webp" width="1024" height="499"
           alt="Screenshot of Josh Lambert’s Holler.tv creator profile, advertising a 10-word podcast shoutout for $150 with a “Book Now” button under his Twitter handle." loading="lazy" decoding="async">
    </a></figure></p>
<p>With Holler, creators remain in full control of their content. The platform includes an easy-to-use management tool for incoming shout-out purchases, allowing a creator to approve or reject a Holler request at their discretion. This allows a creator to ensure the integrity of their content while also directly engaging with their fan base.</p>
<p>My friend, Chris Macho, envisioned and founded Holler, leading all of the business and design decisions for the platform. Andrei Zobnin, one of my associates at <a href="https://centrevilletech.com" rel="noopener" target="_blank">Centreville Tech</a>
, handled the code and development roles for this project building everything from the ground up in order to match the design specifications from Chris. Leonard Smith, a friend of mine over at Acorn Web Consultants, handled the work necessary to get Holler into a containerized environment (Docker!) so we’re setup to scale as the platform grows. I handled the technology architecture, planning, and project management responsibilities. Everybody mentioned here was a dream team, and it was a pleasure working with them to see this through to a shipped working product.</p>
<figure class="gallery">
  <div class="gallery__row"><a class="zoom" href="https://joshlambert.xyz/images/posts/a-holler-for-your-dollar/1524759598340_hu_634c7d7edb059644.webp" aria-label="View larger image" style="flex-grow: 1;"><img src="https://joshlambert.xyz/images/posts/a-holler-for-your-dollar/1524759598340_hu_486fb76bf6c1fb57.webp" width="1000" height="1000" alt="Black-and-white profile photo of Chris Macho, a bearded, bald creator in sunglasses and a black t-shirt against a textured concrete wall." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/a-holler-for-your-dollar/CUZuzvgD_400x400-1_hu_1ec65e7904063c0f.webp" aria-label="View larger image" style="flex-grow: 1;"><img src="https://joshlambert.xyz/images/posts/a-holler-for-your-dollar/CUZuzvgD_400x400-1_hu_6ba11591fdbc2f42.webp" width="1000" height="1000" alt="Black-and-white headshot of Josh Lambert, a young man with long blonde hair smiling in a button-up plaid shirt and blazer against a white brick wall." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/a-holler-for-your-dollar/andrei_hu_b0c90f9243aa04fb.webp" aria-label="View larger image" style="flex-grow: 1;"><img src="https://joshlambert.xyz/images/posts/a-holler-for-your-dollar/andrei_hu_d81687c1dd606c75.webp" width="1000" height="1000" alt="Black-and-white window-light photo of Andrei Zobnin, a bearded young creator in glasses, looking off-frame from a balcony with a hillside village beyond." loading="lazy" decoding="async"></a><a class="zoom" href="https://joshlambert.xyz/images/posts/a-holler-for-your-dollar/T02DWBLPG-U03FEJS7J-d84e62f8037a-512_hu_5ed13ae403bce512.webp" aria-label="View larger image" style="flex-grow: 1;"><img src="https://joshlambert.xyz/images/posts/a-holler-for-your-dollar/T02DWBLPG-U03FEJS7J-d84e62f8037a-512_hu_cba10344ac06f85a.webp" width="1000" height="1000" alt="Black-and-white photo of Leonard Smith, an older bearded man with glasses smiling against a softly blurred outdoor background." loading="lazy" decoding="async"></a>
  </div></figure>

<p>I’m thrilled to announce that content creators will begin listing themselves on the platform starting this week. We’re excited to ship Holler and believe it will have a positive influence for the shows and content we all consume.</p>
<p>Should you have a question about Holler or are needing assistance developing your own software project, I can help! Send me a note to <a href="mailto:josh@lambertmail.xyz">josh@lambertmail.xyz</a>
. I’m always thrilled to make a new friend.</p>
<p>Are you a creator looking for a new way to support your content? You should join Holler! <a href="https://holler.baby/sign-up" rel="noopener" target="_blank">You can sign-up by clicking here</a>
.</p>
]]></content:encoded></item><item><title>It’s a Twister! It’s a Twister!</title><link>https://joshlambert.xyz/work/its-a-twister-its-a-twister/</link><guid>https://joshlambert.xyz/work/its-a-twister-its-a-twister/</guid><pubDate>Tue, 13 Jun 2023 00:00:00 +0000</pubDate><author>josh@lambertmail.xyz (Josh Lambert)</author><description>&lt;p>The 1939 Metro-Goldwyn-Mayer film “The Wizard Of Oz” embedded unforgettable images of tornadoes and their dangers into my childhood memory. This cinematic portrayal highlights the power of visual representation in understanding severe weather conditions.&lt;/p>
&lt;p>Meteorologists across the nation have realized the effectiveness of visualizing weather events. Seeing is believing, a live camera view of active danger in a community can be exactly what it takes to have a tornado warning taken seriously.&lt;/p></description><content:encoded><![CDATA[<p>The 1939 Metro-Goldwyn-Mayer film “The Wizard Of Oz” embedded unforgettable images of tornadoes and their dangers into my childhood memory. This cinematic portrayal highlights the power of visual representation in understanding severe weather conditions.</p>
<p>Meteorologists across the nation have realized the effectiveness of visualizing weather events. Seeing is believing, a live camera view of active danger in a community can be exactly what it takes to have a tornado warning taken seriously.</p>
<h3 id="rise-of-the-weather-cameras">Rise of the Weather Cameras</h3>
<p>As internet access has become more widespread, there’s been a significant increase in the installation of permanent weather cameras. These new views provide those covering severe weather a powerful communication tool for getting warnings out and having them taken seriously. WBRC, a television station covering the Birmingham/Tuscaloosa/Anniston area, operates 22 of these at the time this article was written based on the views available from their website. You can <a href="https://www.wbrc.com/weather/cams/" rel="noopener" target="_blank">click here</a>
 to see pictures from the different camera views they have right now.</p>
<p>Recently I had the opportunity to work with WBRC’s Chief Meteorologist Wes Wyatt on the installation of two new severe weather cameras for their SkyVision network. One of these cameras is situated on the 911 dispatch tower on our town square. The other is located at Adair Tire in Gardendale, Alabama. Check out the gorgeous view from the camera operating here in Centreville:</p>
<p><figure>
    <a class="zoom" href="https://joshlambert.xyz/images/posts/its-a-twister-its-a-twister/CentrevilleCamera-1024x576_hu_ec59347623834c1b.webp" aria-label="View larger image">
      <img src="https://joshlambert.xyz/images/posts/its-a-twister-its-a-twister/CentrevilleCamera-1024x576_hu_ec59347623834c1b.webp" width="1024" height="576"
           alt="Lightwave LINK webcam still labeled ‘Dispatch Tower / Centreville,’ showing a calm afternoon panorama over the wooded Bibb County, Alabama hills." loading="lazy" decoding="async">
    </a></figure></p>
<p>My responsibilities for this job were identifying the equipment necessary to mount and cable these cameras. Additionally, I handled securing internet access at these two locations and making the cameras accessible via a closed internet tunnel to the WBRC studio.</p>
<p>Since getting the Centreville camera online, we’ve had a number of close calls with tornadoes. Each time a tornado has threatened my town, the surreal experience of seeing the danger on live TV stirred awe, some fear, fascination, but mostly a profound appreciation for weather camera technology available today. Wes and his staff at WBRC display these views and show the public what is concerning and what isn’t. They can show when there’s evidence of a funnel trying to drop, or perhaps how close lightning is and the importance of getting indoors away from it.</p>
<h3 id="what-does-it-take-to-get-a-weather-camera-online">What does it take to get a weather camera online?</h3>
<p>The ingredients for a camera site like this aren’t particularly complex. You need a good quality camera, we used the <a href="https://store.icrealtime.com/ICIP-2501HD-IR" rel="noopener" target="_blank">ICIP-2501HD-IR</a>
. You’ll also need the necessary mounting hardware to attach this to something like a pole or tower leg.</p>
<p>As far as cabling goes, I used <a href="https://store.ui.com/us/en/collections/uisp-accessories-cabling/products/uisp-cable-carrier" rel="noopener" target="_blank">Ubiquiti’s Carrier Class</a>
 outdoor cable terminated with <a href="https://store.ui.com/us/en/collections/uisp-accessory-tech-poe-surge-protection/products/uisp-connector-shd" rel="noopener" target="_blank">Ubiquiti Tough Connectors</a>
. Surge protection was added to this link for lightning and ESD events using Ubiquiti’s <a href="https://store.ui.com/us/en/collections/uisp-accessory-tech-poe-surge-protection/products/ethernet-surge-protector" rel="noopener" target="_blank">ETH-SP-G2</a>
. The camera itself was powered using a <a href="https://store.ui.com/us/en/collections/unifi-switching-utility-hi-power-poe/products/us-8-150w" rel="noopener" target="_blank">Unifi POE switch</a>
.</p>
<p>Good internet access and the parts listed above represent the essentials needed to host a weather camera. Of course there’s also the logistics of getting tower climbers and the necessary insurance and certifications on hand to get one of these installed. Depending on the proposed location for a camera, you might also have to navigate securing a lease for a tower site. But this isn’t required if instead you’re mounting on something like a rooftop.</p>
<h3 id="what-about-making-a-camera-view-available-from-the-public-internet">What about making a camera view available from the public internet?</h3>
<p>If you have access to a server, you can use a tool such as FFMPEG to convert the camera’s video stream into a format that will enable playback in the browser. For the view above, I setup a Debian Linux server and installed FFMPEG into it. Once FFMPEG was installed, the following command was used to login to the camera, capture the stream data, then convert it to a browser format that can be played back on any device without plugins or special software. Or without even needing to login!</p>
<pre tabindex="0"><code>ffmpeg -rtsp_transport tcp -max_delay 5000000 -v info -i rtsp://SECRETUSERNAME:SECRETPASSWORD@XX.XX.XX.XX:554 -c:v libx264 -b:v 1000k -vf scale=-1:720 -r 24 -crf 23 -c:a copy -bufsize 1835k -pix_fmt yuv420p -flags -global_header -hls_time 4 -hls_list_size 10 -hls_flags delete_segments -start_number 1 /var/www/html/video.m3u8^C
</code></pre><p>With this in place, you can create a basic HTML page with a video player to stream this in any browser. The HTML source code I use for mine is on a <a href="https://gist.github.com/joshualambert/2f08154d508fe3bf5a4e7a1d13f5dc6a" rel="noopener" target="_blank">Github Gist</a>
 here if you’re interested.</p>
<h3 id="should-you-help-bring-a-weather-webcam-to-your-own-community">Should you help bring a weather webcam to your own community?</h3>
<p>From where I sit, the advantage of having a local weather camera is clear. With the continued progress of technology, it’s never been easier to pull the logistics together necessary to get a weather camera online. The hardware costs are also reasonable and in reach for most businesses and governments. If you’re a local business owner or government representative with access to a high point in your town, consider the significant benefits of bringing a weather camera to your community. I’m <a href="mailto:josh@lambertmail.xyz">available for hire</a>
 to guide you through this process if you need assistance.</p>
]]></content:encoded></item></channel></rss>