Skip to content

Latest commit

 

History

History
271 lines (201 loc) · 20.1 KB

README.md

File metadata and controls

271 lines (201 loc) · 20.1 KB

Open Code Static Badge

GitHub language count GitHub top language Minimum PHP Version

GitHub contributors GitHub commit activity GitHub issues

GitHub Org's stars GitHub watchers

Spryker logo

Why Spryker is great for developers

GitHub last commit

Here we're crafting an overview of why Spryker is a great platform for developers to learn 🧑‍🎓, to enjoy 🤩 and to make a good career out of 💰. And if you're just like me, you don't want empty claims: you want proof.

So here we go. And feel free to send in your PRs!

Table of contents


Reason 1: Basic characteristics of Spryker Development

Let's start off with some development principles that Spryker is based on, an why you might like working with it.

  • Spryker`s entire architecture is built upon the best practices and well-known design principles SOLID, DRY, KISS, YAGNI, Facade & Factory method;
  • Spryker has multiple levels of code reviews that are integrated into the development process:
    • Developer code review
    • Technical lead code review
    • Application architect code review
  • Besides the above human reviews, Spryker uses various tools for monitoring the quality of the codebase and performance of the product in general: PHPStan, PHPMD, Psalm, Codeception;
  • We like to say that we are positive perfectionists, and work only with clean and high-quality code. But you don't need to take that from us: Check our incredible code quality rating on Scrutinizer Scrutinizer Code Quality.
  • Our code is open and accessible for everyone to see. Our code is not released under an open source license, but all code is available on GitHub, there are no parts hidden or encoded. Also when using our PaaS version, the individual features remain open code and can be used, modified or removed at will.

Technology

Application

Here's an overview of the technology used in the Spryker core product:

Backend

Apache Angular.js AWS Bootstrap ElasticSearch MariaDB MySQL Nginx PHP Postgres RabbitMQ Redis Symfony Vue.js

*(AWS: S3, EC2, CloudFront, SQS)

Other
Frontend
  • Javascript
  • Webpack
  • NPM

If you want to take a deep dive into the technology, check out the Architecture Guide or enroll in the free Spryker Architecture Overview course.

DevOps

Here's an overview of the main technology used to work with Spryker:

GitHub Docker Jenkins

Other
  • Amazon CloudWatch
  • AWS Elastic Load
  • AWS CodePipeline
  • Buddy
  • Codeception
  • Composer
  • New Relic
  • Scrutinizer
  • PHPMD
  • PHPStan
  • Psalm
  • Vagrant

Also see the Spryker page on StackShare.io and check out the Spryker Development Environment Overview course.

Reason 2: Programming language: PHP

Nearly 80% of websites use PHP (source), PHP has been one of the top 5 programming languages since the year 2000 (source), and it's the foundation of the most popular framework Laravell (source).

PHPs flexibility and low barrier of entry is both a blessing and a curse. The curse being that, for some developers, PHP has gotten a bad reputation because of its perceived inconsistencies, security matters, sloppy syntax and simply because it is everywhere. If something is very popular, it's almost inevitable that there will be a lot of people messing it up.

But this is not inherent to PHP: if you follow proper design principles like we do at Spryker,

Highly proficient PHP developers are sought after, so if you can master it, you have the potential to earn lots of money. That popularity means there are plenty of career opportunities out there. Another good reason to learn PHP: it pairs great with other skills and languages.

Relative ease to find new developers

Finding good developers is never easy, but because of PHPs popularity, it's easy to find developers with PHP experience that can be trained to use Spryker. We also have good experience onboarding Java developers, because of their experience with Object Oriented Programming which is very similar to what Spryker is doing with PHP.

🚧 [TODO]

Reason 3: No need for a big team to build or run a Spryker project

🚧 [TODO]

No Spaghetti code, but a State Machine

One of the biggest challenges in e-commerce is the mapping and implementation of business processes in the IT infrastructure. What can still be easily implemented with a simple B2C business model becomes a real challenge with more complex business processes in the B2B area.

As an example of this, we can imagine the processing of an order. The order must be processed separately depending on the products ordered, the desired delivery time, the stock level and the type of payment.

Depending on the complexity of the process, this often leads to complex "if-then-else" constructs (spaghetti code) when implementing with some other platforms, which after a short time seems difficult to understand and after a long time almost unmaintainable.

Spryker provides a solution to this problem with the so-called state machine. Processes can be easily modeled and visualized based on states, transitions and events. This solution gives both the developer and the shop operator a transparent and easy-to-maintain opportunity to implement and expand complex processes.

Import and Export has been taken care of

Every e-commerce project needs a way to communicate with the outside world: Products and inventories, orders and customer data, etc. must all be able to be exchanged and compared with other systems. Each software product goes its own way and offers the data in a variety of different formats and forms.

Unfortunately, many older systems only offer limited solutions to data, often illustrated by the overwhelming number of third-party modules dedicated to this problem.

Spryker, on the other hand, already provides a framework to be able to implement imports and exports quickly and cleanly. The developer is left with the task of bringing the data into the correct format. The actual process of importing and exporting is then accomplished with the tools provided by Spryker.

Reason 4: Killer SDK

🚧 [TODO]

Reason 5: Long term maintainability

🚧 [TODO]

Reason 6: Job security

Some factors that indicate that Spryker is on the rise:

Customer satisfaction

Analyst recognition

Like it or not, large Enterprises look at analyst firms for advice when they're buying new software. A good (and growing) score in analyst reports is therefore a good indication for upcoming Enterprise projects.

Spryker scored highest for overall growth of any vendor in the 2022 Gartner Magic Quadrant, with both customer and revenue growth nearing 100%. Customer growth was paralleled by an increasing number of larger service provider partnerships being cemented.

See spryker.com/analyst-recognition-commerce for more details and recognition by other analyst firms like Forrester, IDC, MCFADYEN and Paradigm B2B.

Best product for Composable Commerce

Spryker is a modular cloud native platform conforming to broader definitions of microservices, but most closely to Gartner’s packaged business capability (PBC) paradigm.

Spryker was recognized in all four Gartner®️ Critical Capabilities Use Cases for Digital Commerce, and a Visionary in the Gartner®️ Magic Quadrant™️ for Digital Commerce for the second consecutive year.

Eighteen-vendors-are-ranked-according-to-how-well-they-meet-the-needs-of-composable-commerce-in-the-digital-commerce-market-as-of-June-2022-target png

Reason 7: Spryker allows you to service different business models

Spryker supports a wide range of industries and business models like retail, manufacturing, wholesale, distribution, services and more B2B, B2C and Unified Commerce. All of these capabilities out of just one platform.

Our technology stack keeps you flexible

Because we use many modern, popular tools in our Technology stack, it's relatively easy to transition into Spryker and any learned skills can be very useful at any projects that come after.

Background experience

What experience makes for an easy start into the Sprykerverse?

  • Experience with PHP development
  • Experience with Java development
  • Experience as a Solution Architect
  • ... 🚧 [TODO]

Spryker Job profiles

These are the things we see often pop-up in job profiles when companies hire Spryker developers.

  • Senior-level expertise in coding with PHP
  • Knowledge about professional software engineering e.g. SOLID principles, Clean Code, Separation of Concerns
  • Working experience with standard frameworks like Zend, Symfony, Laravel, or others
  • E-Commerce experience with shop systems like Magento, Hybris, or similar.
  • Experience building and consuming REST APIs
  • Proficiency in developing, deploying, and debugging cloud-based applications using AWS, especially working with message queues
  • Good understanding of automated testing and experience writing tests
  • ... 🚧 [TODO]

Spryker jobs

Upwork

Reason 8: Everything is in place to to turn you into a Spryker Superstar

Follow courses, get certified

The Spryker Academy offers several learning plans and courses to get your started and improve your skills

Spryker developer Quotes

The ability to customize a decent amount of the codebases's functionality without overwriting it will probably be my favorite aspect of Spryker once it comes time to upgrade major versions. For the day-to-day side of things, the built-in code style, functionality, and structure tests are helpful in maintaining the current standards when adding new code. The built-in code generators are also a significant help, speeding up the overall pace of development. Spryker's technical support reps are also competent and responsive. The customizability and flexibility of the Spryker system (as well as the wealth of additional add-ons) meant that it was easy to pair Spryker with our current systems.

  • 100% customizable processes with the state machine
  • Clean architecture
  • Nothing is impossible
  • With PaaS+, many helpful tools are given, which help reduce project maintenance and keep the code clean.
  • Helpful community!

We use Spryker as our e-commerce solution and customer frontend. We have very extensive product data (3 million SKUs, 8 million images, 60 million technical attributes, etc.) and a use lot of APIs. What I like best:

  • Code Quality
  • Modularity
  • APIs
  • Customer Success
  • Scalability

Next steps

Did the above peak your interest? Here are your next steps:

  1. Follow our free developer e-learning courses, sign up for the Developer Instructor-led Courses and get certified;
  2. Use our Quick Installation Guides to get familiar with the product;
  3. Join our Community: CommerceQuest;
  4. Sign-up for the Spryker User Group and join our monthly meetups!

Where to find Spryker on the web

GitHub Stack Overflow LinkedIn Instagram Twitter YouTube Meetup Reddit Discord Mastodon


Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.