Web development has afforded me the opportunity to work on some interesting projectsfrom “I am 32 and I’m going to be happy” by Me
I wrote that and into that post because I really do believe that some of the projects I’ve worked on have been interesting and also at times challenging. Below are two examples, one from the past and one from 2018.
One of my favorite projects I worked on was way back in 2008, when Flash was still a big thing that was everywhere. I got to learn ActionScript 3 and do my first Flash project that wasn’t a slideshow. While working for a company that won’t be named I was involved in animating animals in environments, building educational games, and interactive books with coloring areas that could be printed.
There was a Brown Bear, Arctic Fox, African Elephant, Snow Leopard, Hippo, and Blue Whale that all had to be animated for movement within their environment as well as items in their environments moving. The games included a photo matching game and a quiz game. I was very proud of that work because I started off with zero AS3 experience, it challenged me to learn things quickly, and it turned out really well.
I’ve been working on projects for one company for almost two years now and the first project was a very challenging one. I admit I underestimated how complicated it was going to be. The company has a product configurator powered by Infor.
Infor has an “API” for this product that allows it to be accessed via outside sources so you can run the software in house and configure items for customers and also securely allow it to be used on your website for end users to customize products. Well, that’s all and good until you discover it’s .NET based and the web service is a bit… convoluted. You have to basically go step by step to configure a product, which is fine if you have something like a T-shirt that only has size, color, and maybe pattern options. When you have something with a lot of options/configurable parts, and you want everything to be on one page instead of progressing step by step it’s very different.
It took months to get this working correctly at a reasonable speed because whenever you make a change it has to send the data to the Infor program, wait for it to process it, then I have code that has to loop through and format the response before finally outputting it. Their website is run on WordPress and Infor only has Java or .NET web services so to solve communicating between the two I went with Azure Functions as a bridge between the two. These functions are always on and do the heavy lifting of communicating with Infor and processing the response before returning it to the configurator on the website which is built on Vue.js as a WordPress plugin.
I had not touched anything .NET since I worked at the place that the past project mentioned above was done, and all of that was done under protest (we could sell .NET projects even though they didn’t have a .NET programmer but god forbid I even mention Rails).
C# is an object oriented programming language so it’s not hard to grasp if you know other languages and things came back to me quickly, but having to define variables as specific types and figuring out specific things like JSON encoding and the whole Infor web service was different than my normal.
Dependencies for Infor were a whole separate hassle. They wanted specific versions and I had many issues where Infor would throw an error that didn’t tell me anything meaningful . The biggest problem I had with this project is I had no reference material on the Infor web service for the first three months other than the existing configurator they had someone in house start that I was rewriting. When I eventually got the reference material and had a contact at Infor I was able to finally get things working as needed. The end result is something I’m really proud of though I won’t take on another project with Infor involved any time soon.
The good thing about that project besides being challenged is that I learned Vue.js, learned more about Microsoft Azure and it’s Functions product (which I find easier to use than AWS Lambda), and I actually don’t hate .NET any more. C# is actually a pretty fun language and you can do some cool things with it. In fact I’ve used C# in the current website project I’m working on for this client to handle some downloadable file sections so they only have to upload the file to Azure storage and it automatically ends up linked on the website. I’m very grateful that I got to work on that project.