Slides and Demo for Building Progressive Web Apps using CFML

Thanks everyone for coming to my talk at cf.Objective() 2017! If you missed my talk, or just want to learn more about Progressive Web Apps, feel free to browse the links below.

Browse the slides at http://slides.com/awayken/2017cfobjective

Find the code at https://github.com/awayken/pwa-marketing-site

Building AVR, Part 4: CSS Architecture

Once AIM was built, we needed a product to display the inventory that had been managed. The AutoConX Vertical (Responsive), or AVR, is a white-label product that allows publishers (newspaper or magazine) list inventory from sellers in their area. It’s a digital classified system that offers a lot of customization and flexibility.

This project was trickier than AIM because AIM was a brand new product. AVR, however, had to be a modern and responsive site that met all the publishers’ expectations from the legacy product. Publishers wouldn’t switch unless they saw real value in the new system. We had to build a product that we would put our own products on.

This is the story of the CSS architecture for AVR.

Continue reading “Building AVR, Part 4: CSS Architecture”

Building AVR, Part 3: JavaScript Architecture

Once AIM was built, we needed a product to display the inventory that had been managed. The AutoConX Vertical (Responsive), or AVR, is a white-label product that allows publishers (newspaper or magazine) list inventory from sellers in their area. It’s a digital classified system that offers a lot of customization and flexibility.

This project was trickier than AIM because AIM was a brand new product. AVR, however, had to be a modern and responsive site that met all the publishers’ expectations from the legacy product. Publishers wouldn’t switch unless they saw real value in the new system. We had to build a product that we would put our own products on.

This is the story of the JavaScript architecture for AVR.

Continue reading “Building AVR, Part 3: JavaScript Architecture”

Building AVR, Part 2: CFML Architecture

Once AIM was built, we needed a product to display the inventory that had been managed. The AutoConX Vertical (Responsive), or AVR, is a white-label product that allows publishers (newspaper or magazine) list inventory from sellers in their area. It’s a digital classified system that offers a lot of customization and flexibility.

This project was trickier than AIM because AIM was a brand new product. AVR, however, had to be a modern and responsive site that met all the publishers’ expectations from the legacy product. Publishers wouldn’t switch unless they saw real value in the new system. We had to build a product that we would put our own products on.

This is the story of the CFML architecture for AVR.

Continue reading “Building AVR, Part 2: CFML Architecture”

Building AVR, Part 1: Project Architecture

Once AIM was built, we needed a product to display the inventory that had been managed. The AutoConX Vertical (Responsive), or AVR, is a white-label product that allows publishers (newspaper or magazine) list inventory from sellers in their area. It’s a digital classified system that offers a lot of customization and flexibility.

This project was trickier than AIM because AIM was a brand new product. AVR, however, had to be a modern and responsive site that met all the publishers’ expectations from the legacy product. Publishers wouldn’t switch unless they saw real value in the new system. We had to build a product that we would put our own products on.

This is the story of the project architecture for AVR.

Continue reading “Building AVR, Part 1: Project Architecture”

Building AIM, Part 4: CSS Architecture

We needed to build an inventory system, one that was free from the restrictions of our legacy system. We wanted to build a system that could describe any piece of inventory: from cars to carpets, from houses to job listings. We needed an interface for our sellers to actually manage that inventory. That interface is the AutoConX Inventory Manager, which we call AIM.

This is the story of the CSS architecture for AIM.

Continue reading “Building AIM, Part 4: CSS Architecture”

Building AIM, Part 3: JavaScript Architecture

We needed to build an inventory system, one that was free from the restrictions of our legacy system. We wanted to build a system that could describe any piece of inventory: from cars to carpets, from houses to job listings. We needed an interface for our sellers to actually manage that inventory. That interface is the AutoConX Inventory Manager, which we call AIM.

This is the story of the JavaScript architecture for AIM.

Continue reading “Building AIM, Part 3: JavaScript Architecture”

Building AIM, Part 2: CFML Architecture

We needed to build an inventory system, one that was free from the restrictions of our legacy system. We wanted to build a system that could describe any piece of inventory: from cars to carpets, from houses to job listings. We needed an interface for our sellers to actually manage that inventory. That interface is the AutoConX Inventory Manager, which we call AIM.

This is the story of the CFML architecture for AIM.

Continue reading “Building AIM, Part 2: CFML Architecture”

Building AIM, Part 1: Project Architecture

We needed to build an inventory system, one that was free from the restrictions of our legacy system which could only describe automotive, agricultural and recreational inventory for dealerships across the United States. We wanted to build a system that could describe any piece of inventory: from cars to carpets, from houses to job listings. The process started with our database structure and maintenance areas. Then came a REST API to give us a nice separation of concerns. Once that was in place, we needed an interface for our sellers to actually manage that inventory. That interface is the AutoConX Inventory Manager, which we call AIM.

This is the story of the project architecture for AIM.

Continue reading “Building AIM, Part 1: Project Architecture”

PostCSS: A Dumb Name For an Awesome Thing

Bolstered by my reception at the South Dakota Code Camp, I updated and presented my PostCSS talk at dev.Objective() 2016, one of the best web development and CFML conferences in the states. I think it went well, despite my quickly expiring laptop.

You can view the slides on Slides.com.

You can browse the demo repository on GitHub.com.

You can learn more about my postcss-placehold plugin on GitHub.com.

Thanks to everyone who came!

The Final Miles at Lawrence & Schiller

On August 24th, I started working for a company called Security Labs. I’ll still be doing ColdFusion development but more product-based. Leaving L&S was difficult, and I departed on good terms (but only after we had lunch at HuHot).

TL;DR

On August 24th, I concluded my employment at Lawrence & Schiller and started working for a company called Security Labs. I’ll still be doing ColdFusion development but without the marketing focus. This will be more product-based. Leaving L&S was difficult, and I departed on good terms (but only after we had lunch at HuHot).

A Growing Unhappiness

What do you do when you suddenly realize that you haven’t been happy? In my case, the realization came in a flash, although the unhappiness was a slowly growing thing. I looked back on the past year or two, and I tried to identify exactly what had changed. There had been some personnel shifts, some reassignments. Client relationships had changed. The air conditioning had actually gotten colder. But, what was the root of my problem?

All of those are temporary changes. They’re things that can be fixed. I could request a different personnel shift. I could help change a client relationship for the better. I could wear a sweater and a coat. Yet, contemplating those changes didn’t lift the feeling. As I considered what an ideal job for me would look like, I noticed it was missing something key to my time at L&S. I realized my interest in marketing and advertising had waned.

This was something significant. For one, Lawrence & Schiller is a marketing and advertising agency. It’s what they do. So, if I’m unhappy with marketing, I was surrounded by it there. That also meant I wouldn’t be happy at any other marketing or advertising agency, which limited my options quite a bit. Ultimately, though, it meant that L&S couldn’t fix my problem and make me happy. It meant my time there was limited.

A Modest Search

I looked mostly at telecommute opportunities, given the small number of non-marketing development jobs in the area. I also explored frontend positions (HTML, CSS, and JavaScript) along with ColdFusion positions. Some of the leads were promising, but I had my doubts about telecommuting. I think it takes a strange kind of discipline to work that lifestyle, and I didn’t know if I was up for it. My search seemed at an impasse.

Then, the miraculous happened. A job listing appeared on a popular ColdFusion blogger‘s job board: it was a ColdFusion job listed in Sioux Falls, SD. Really? What are the chances! I sent an email to a guy named Adam who worked for a company called Security Labs, and I waited to see what would happen.

After some interviewing, an offer was made. I discussed it with Eric Cross, my discipline coach, and I explained the position I was in. He reacted as all good bosses should, torn between wanting me to be happy and wanting to keep me on the team. If I remember right, he broke down in tears, sobbing, “You’re a much more 1337 hacker than me. Please don’t leave. I’m nothing without you!” It was obvious to both of us how this would play out.

It was a difficult two weeks. Coincidentally, I announced to my team that I was leaving on the same day another developer was having his going away lunch. Talk about a downer. (Also, it was another opportunity to upstage Bob.) Things didn’t really get better from there. I was as torn up with leaving as everyone else was. I had not been wronged, or passed over for promotion, or slighted by my peers; there was none of the bad blood that would have made things easier. Instead it was all legitimate, sincere sadness.

When you work at a place for almost five years, it gets in your bloodstream. I’m very thankful that I made my decision to leave based on logic. Had I stopped to consider the emotional toll it would take, I don’t know that I could have gone through with it. With the magic of Facebook, Twitter, Linked-in, and IM it’s kinda like I never left – they just asked that I start working on other clients from another building with other people.

Security Labs

Security Labs is a tiny Sioux Falls company of four people that does ColdFusion development. Their primary product is a classifieds engine. It specializes in automotive, although it’s been adapted to agricultural and real estate listings as well. A good example of their handiwork is Car Truck Trader.

My role will be as the second ColdFusion developer. It looks like I’ll be doing much the same type of programming as at L&S. Based on the status meeting we had today, there are some very interesting projects coming up that I’ll get to partake in. I think it’ll be a good opportunity to learn and grow my development skills with an agile, focused team.

Conclusion

My time at L&S was priceless. I learned so much from so many people, and I got to teach a lot to a lot of people. I’ve never met so many energetic, intelligent, creative people in one building. I miss them already, but I’m looking forward to my new adventure. And, who knows? Maybe I’m not done going the extra mile just yet.

Save it for L8R

L&S and the SD Dept. of Public Safety put together this chilling PSA against texting while driving. Knowing the ending doesn’t take away from the impact of the video. Work like me this makes me very proud to call Lawrence & Schiller my employer.