However long you might have worked in a single industry, there will always be something new to learn, whether that’s fresh technologies, different sectors, specific customer requirements, and so on. As a Developer Advocate, I’m experiencing that first hand, a few months into a new role, and I thought it might be interesting to share some of my learnings with you as I take my first steps into the world of e-commerce.
I’ve used Java (and spoken about it at length) for most of my career, but I’ve never really worked in the e-commerce sphere before. With the popularity of online shopping ever on the rise though, this part of our industry is growing fast, and will continue to do so.
My new company, Loqate, is one of the world’s biggest providers of address (and phone, email and bank account) verification technology. If you’ve ever typed the start of your address into a website and seen it provide suggestions as you’re typing, there’s a good chance this is us working in the background. We serve many different industries and use cases but as you can imagine, e-commerce is one of our biggest.
The DevRel Role
My goal as a Developer Advocate is to help build a community around Loqate tech; to gather feedback from our users, improve our technical content assets and build brand awareness in the developer community.
As with starting any new role, the first few months have been taken up in large part by starting to understand what the landscape is like:
- What platforms are we using?
- What are the most common languages and tools used in this space?
- What do our competitors look like?
- What problems are our users trying to solve with our technologies?
While we don’t use Java much for front-end stuff here at Loqate, it’s heavily used in the back-end of many websites so I remain hopeful that I can continue to use Java combined with some front-end languages to build some samples for our documentation.
Interestingly though, that lead me to my next question:
What open-source solutions exist for e-commerce and are there any Java projects I could use?
To answer that question, let’s start by looking at the general landscape of e-commerce today.
The e-commerce Landscape
Compared with 10 years, ago, the e-commerce landscape now is really quite different. Back then, most businesses created their own websites from nothing, with only the bigger retailers and tech companies having the resources to create feature-rich sites offering user-friendly experiences.
That is still true today for big retailers and tech companies, and many of our larger customers here at Loqate use our APIs to access our services. Many small and medium sized enterprises, however, are opting to use e-commerce platforms instead of building their own sites. Crucially, these platforms take away the need for a whole development team to run a feature rich e-commerce site.
Coming from the open-source Java world, I was pleased to find that some of the biggest players in the e-commerce platform game are open-source: such as Adobe Commerce (formally Magento) and WooCommerce, with nearly 2 million customers between them.
There are, however, loads of proprietary alternatives too, as small to medium sized businesses aren’t generally focused on things being open-source, and may not have development skills in house to take advantage of their strengths. This is where platforms like Shopify, Jimdo and Oracle Commerce come into play, with impressive numbers of customers taking advantage of their ease of use (this article on 6sense.com gives a great overview of the market share of these platforms).
Integrations
Most modern technology platforms include pre-built integrations, and this is certainly true for e-commerce platforms. These provide seamless connectivity between platforms and technologies, for example with payments, address verification, map data for store locations and so on, allowing organisations to integrate something like our Shopify plugin without needing any coding skills whatsoever.
Back in the early 2000s, integrating an online payment system for example would have required considerable development work, the associated cost of which have deterred small businesses from trading online. Nowadays if you look on the Shopify app store, about every type of payment system you can imagine is available as an integration, and most are very easy to integrate.
I recently attended a meetup for Shopify partners and most people in attendance had businesses that exclusively traded via the Shopify marketplace so these integrations can become big businesses on their own. As the popularity of e-commerce platforms keeps growing with businesses, we’re continuing to work on developing powerful, easy to use integrations!
Most-used Languages for e-commerce
It is hard to tell what programming languages most e-commerce sites use. In my experience, larger companies normally use a combination of different languages known as polyglot. It makes sense to use different languages together when you have varied website requirements, as each language will have their own strengths. A combination of HTML, JavaScript and PHP will often be the front-end languages of choice, while back-end systems might be a combination of Java, Python, C#, .Net etc.
Java and e-commerce
While Java is used heavily as a back-end language for many web-based systems, you don’t see much of it in open-source e-commerce projects. Many of these projects seem to favour using the same language throughout, and given that Java perhaps isn’t the best front-end language this is probably why it’s not used that much.
I did find one open-source Java project: Shopizer. I managed to get this working, however the documentation could do with updating, and likewise the Node & Angular libraries (it uses Node & Angular in the front-end for their sample store – although you could use whatever language you want). The Java back-end is built with Maven and uses the Spring framework that most Java devs are familiar with. While I’ve used this to integrate Loqate’s address, email and phone verification products (with the intention of integrating other products like Store Finder in the future), one of my goals for this year is to contribute to this Java project. Hopefully I can make some useful updates to help make it a little quicker and easier to get up and running while being more secure. The reason for this is to use it as a sample to aid in our documentation and give developers a real-life sample of how to implement our technology.
My thoughts
For small businesses with little in-house development resources, pre-built platforms clearly make the most sense. They’re highly customizable, with loads of integrations to other technologies that make starting your online selling journey easy.
If your company has reached a certain size however, with multiple requirements for your web presence, having in-house developers and owning your own site starts to make more sense. You’ll want to be able to add new functionality without having to wait for a platform to do it; open-source projects are a good way in if you want to begin owning your site, as you don’t have to start from nothing and they generally will have a community of developer willing to help.
The e-commerce world favours languages such as JavaScript and PHP, with a few Ruby and Python projects kicking around. While Java isn’t heavily used in these open-source e-commerce projects, I do know that it’s used as a back-end language for many of the world’s biggest tech companies. Web servers like Open Liberty and Quarkus will make sure it continues to be used for many years to come – they have made Java application severs very performant in this new cloud world, with sub one-second startup times for microservices allowing scaling to help save money on our cloud bill.
My goal is to update you all in 6 months on anything new I have learned since writing this and if anyone has anything to add that could be of interest then please get in contact with myself and I will consider adding it into my next article.
I’ve only scratched the surface of the e-commerce space here, but this should hopefully help anyone who – like me – is new to this realm get started quickly in understanding the landscape and technologies used in this industry.
Author: Jamie Coleman
Jamie is a Senior Developer Advocate for Loqate formally at IBM & Sonatype, based in the UK. He talks about the importance of security in software, improving developer productivity, data quality, AI and raising awareness about energy consumption of technology.
Passionate about discovering ways to help reduce developers carbon footprint, he is also a subject matter expert in containerised solutions and build technologies. He fell in love with Java at University and has gone on to talk at many conferences about using Java with microservices and related technologies. He has worked on a wide variety of projects such as modernising IBM CICS mainframe testing infrastructure, creating, and automating the creation of Docker images for IBM’s products and contributing to a DevOps pipeline offering.