Web Development Consultancy

Innovative

Web industry moves fast, but not everyone can keep up with this pace. Some companies lag behind and become "frozen" in their technology stack, exercising inefficiency and lack of plans for the future.

Our solutions are innovative and forward-thinking, helping you anticipate the unknown better.

Appropriate

Oftentimes, projects start as students' or pseudo-experts' playgrounds and after a while, they become core business products for many companies. New developers join and more technical debt incurs, without even questioning the whole idea.

We can reevaluate the current situation you are in, and present you the adequate, industry-standard solution. We always craft it with care, honesty and meticulousness.

Personalised

If you ever came across phrases like "It depends..." or "This is the latest trend, so...", you may feel insecure or embittered. We would be too, since the language is unclear, bringing uncertainty and casting doubts.

We always carry out a solid study of your current situation, which makes our solutions accurate and tailored to your particular needs.

what we strive for

Mission

Software Development is a craft, so Developers should be artists and write code that reads like a well-written prose.

In reality, though, many developers behave like monkeys, coding blindly and rarely questioning given decisions or solutions. This oftentimes leads to shortcuts, incurs technical debt and causes the codebase to rotten. But why is that? Are they careless? Or unqualified? Or afraid to speak up? Or maybe they used to believe in Clean Code, but they are actually forced by executives or product owner to ignore the code smells and obvious threats. Or maybe it is our industry and never-sleeping competition, that make us rush with absurdity for new features.

Our mission is to change the way how people think and create the Software.

At the end, not Managers or Product Owners, but Developers will write the code. Thus, shouldn't they feel empowered and proud of what they are doing? Shouldn't they be listened and treated as partners, and not like some sort of blue-collar coding force?
Absolutely! Writing a Clean Code is a brain-intensive activity that is hard to master. It requires a lot of focus, creativity, and positive energy, thus not always strict 9 to 17 hours or locked in the office approach will work.
We encourage you to invest in your Developers. Try to understand their needs, give them more flexibility, empower them, and by all means, treat them as equals. If they are happy and motivated, they will make your customers happy.

“Great spirits have always encountered violent opposition from mediocre minds.”

— Albert Einstein

We can help you

Services

Technical Strategy

Does your CTO need some help? Or maybe you lost one? We can verify the current situation and walk you through the shaky times. We can draw the roadmap or improvements plan for your company.

Bespoke Software

Your software is rotting, you have no tests and the code base feels like a big ball of mud? We can help you with refactoring the most critical parts or even rewrite the whole system.

Team Improvements

Do you have a feeling that your team is doing less and less? People declare sick days or come demotivated to work? We can breathe some life into your team, empower your people and restore the positive attitude and performance.

Deployment Strategy

Do you still copy files over FTP or SFTP? Or maybe you've heard about Continues Integration and Delivery, but none of your developers can set it up? We can help you to get out of the dark ages and set up the modern DevOps stack.

macbook

DDD - Avoid big ball of mud

TDD - Red-green-refactor cycle

BDD - User behavior captured

CC - Code that reads well

we love what we do

Portfolio

January, 2018
visymo

Visymo delivers high-performant and robust search platforms, which are used by more than 290 million users monthly.

The objective of this assignment was to rebuild an existing, internal portal for data processing and visualization. Furthermore, the existing integration with Google AdWords/AdSense, Microsoft Bing and Yahoo APIs must have been improved and optimized.

In order to deliver the most flexible and long-lasting solution, Hexagonal architecture with Domain Driven Design was chosen. PHP 7.2 (strict typing) with Symfony 3.4 (auto-wiring and auto-configuration) was used in conjunction with Doctrine ORM and Doctrine Migrations. Millions of data have to be processed every day, thus a combination of RabbitMQ message queue, Redis key-value data store and Supervisor became a center of heavy and time-consuming processes. On the front side, a simple Search box was powered by a robust farm of Solr servers, Cassandra database and Redis, managing massive amounts of data.

Our consultant, Adam, had the role of Senior Symfony Developer and joined the Agile Team of 11 Developers. The pace of development was fast, but tools like Jenkins, JIRA, Bitbucket, and Sentry were at their disposal, making this big endeavor possible. Adam was responsible for improving their Domain Driven Design and Hexagonal architecture, focusing on Command Buses and Consumer/Producer implementations. Furthermore, he introduced Codeception for writing functional and acceptance tests and paved the way for modern Javascript stack (such as ES6, ESNext), by setting up Webpack/Encore and sunsetting Assetic. Besides, he was assisting his co-workers during the migration from MySQL 5.6 to MariaDB 10.2, improving their Ansible provisioning scripts, Vagrant configuration as well as corresponding Doctrine ORM/DBAL libraries.

September, 2017
capgemini

Capgemini is a global leader in consulting, technology services and digital transformation, employing around 200,000 team members in over 40 countries.

The objective of this assignment was to help their client, Dienstverleningsorganisatie OM, in building a brand new, internal platform for criminals. The peculiarity of this project was that it looked like a typical CMS, yet it didn't use any database. It didn't store any data either, since everything, including authentication and forms content was coming from an external REST API.

In order to deliver a suitable solution within a short timeframe, a Layered architecture was chosen. Project was using PHP 7.0 with Symfony 3.3, heavily relying on Security and Form components. The whole CMS was dependant on Oracle REST Services, therefore on Guzzle 6.3 library was chosen. When it comes to frontend, recommended by Symfony Webpack/Encore was adopted, utilizing popular jQuery and Bootstrap libraries.

Our consultant, Adam, played the role of Lead Symfony Developer, where he was managing a team of 6 junior to senior developers. Additionally, he was an integration persona, traveling to the Client offices on regular basis, making sure that Oracle REST Services and PHP worked flawlessly together.

March, 2017
response concepts

Response Concepts specializes in all aspects of lead generation and permission marketing. Being active in Europe and Asia, they generate the best quality data through their premium channels and data-collection concepts.

The objective of this assignment was to completely rebuild their existing Lead Delivery Engine, set up a scalable and fault-tolerant Infrastructure as well as building from ground up an accompanying Content Management System.

In order to improve their current situation, AWS Infrastructure via Terraform 1.12 was introduced. Furthermore, provisioning scripts with Ansible 2.2, AWS CodeDeploy deployments and Laravel Envoyer were brought in. To control the heavy ingestion of Leads, an API Gateway with AWS Lambda were created via Serverless framework. To deliver Leads to their Clients, the Lead Delivery Engine was put together. This engine worked as a distributed set of workers, each one built with Lumen 5.5 micro-framework and monitored by Supervisor. For the data management part (i.e. creating clients, defining delivery rules), a custom CMS on top on Laravel 5.4 was assembled. Its frontend part was constructed with jQuery and Handelbars, using Laravel Mix as an asset bundler.

Our consultant, Adam, had the role of Software Architect / Senior Laravel Developer, where he joined team of 4 to help building a robust systems and future-proof architecture. He was responsible for extendable Terraform configuration and multi-environment Ansible provisioning scripts. Additionally, he set up the whole deployment pipeline with AWS CodeDeploy and Laravel Envoyer. Moreover, he laid the foundation of custom Laravel 5.4 CMS and was actively participating in its further development, including tiny REST API creation with Fractal and Swagger.

January, 2017
imin

I’M IN is a popular curated event calendar in Europe, delivering a diverse selection of events and event-related content. Its native iOS and Android apps allow people to buy and win tickets, receive gifts and get discounts as well as finding information and plan ahead.

The objective of this assignment was to speed up the development of REST API and its accompanying Content Management System. API was about to be consumed by iOS and Android native applications, while CMS was about to be used internally for event management.

In this case, technologies and architecture were already in place and the time was ticking. Project was using PHP 7.0 with Symfony 3.2, heavily relying on FOSRestBundle, FOSOAuthServerBundle and JMSSerializerBundle. Custom CMS was built with Symfony Forms and harvested heavily Twig templates, leaving only interactive parts to Bootstrap, jQuery, Typeahead, Cropit, X-editable and other frontend libraries. All assets were controlled and bundled together via Assetic.

Our consultant, Adam, had the role of Senior Full-Stack Developer and was helping another developer building a custom CMS and polishing the REST API. He was responsible for building a custom administration panel, where he integrated with AWS S3 via Gaufrette virtual file system and introduced Entity Translations. Additionally, he sharpened API's functional tests with BrowserKit and optimised all places where Doctrine queries were misused and produced hundreds of unnecessary queries.

what others say

Testimonials

We specialize in

Technologies

Tailored solutions crafted with care by our specialists

Adam Gegotek

Adam Gegotek

PHP and Symfony expert, DDD evangelist

Years of experience

We have always supported and grown alongside PHP and Symfony communities. We began when PHP and Symfony were at version 5.1 and 1.2, respectively, thus our decade of hands-on experience is at your disposal.

Products built

We have built: Content Management Systems (CMS), Customer Relationship Management (CRM) systems, Enterprise Resource Planner (ERP), E-Commerce platforms, custom B2B and B2C systems, SOAP and REST APIs.

Developers collaborated with

Software is written by people. We worked with more than 100 developers from different companies, helping them grow and sharpen their software development practices.

We share and educate

Featured posts

irresistible apis

In-depth review of Irresistible APIs: Designing web APIs that developers will love

Irresistible APIs provides information about planning, designing, and managing the development of web REST APIs, from business value through developer support. This book’s audience varies a lot. If you are a developer, technical lead, product manager, or even an executive, this book should be a good fit for you.

php 7.2 object typehint

PHP 7.2 and Object Typehint

PHP 7.2 is around the corner. On the 26th of October 2017, the 5th version of PHP Release Candidate has been announced, which was preceded by 3 alpha, 3 beta and 4 RC versions. First alpha version was announced on the 8th of June 2017 and the final version is about to be released by the end of November 2017.

modern javascript

How to start using modern Javascript syntax within minutes

Everyone, including browsers, got used to the JavaScript syntax from 90-ties. But time passes by and JavaScript becomes more and more popular, so ECMA, the committee behind the changes in JavaScript, woke up and started to release new features. The most recent major update to the specification was approved on 17th of June 2015 and is called by many names: ECMAScript 6, ES6, ES2015, and ES6Harmony.