Allegro engineers at PyWaw meetup
At Allegro, we always try to pick the right tool for the job. As a result, despite focusing on JVM for implementing our services, we do use Python extensively for infrastructure automation and management.
At Allegro, we always try to pick the right tool for the job. As a result, despite focusing on JVM for implementing our services, we do use Python extensively for infrastructure automation and management.
Introduction of Swift programming language during WWDC 2014 was big news in developers’ world. The community warmly welcomed the language created by Apple and many developers started learning and using it immediately. This article explains what Swift is and its basic concepts. If you are an iOS (or OS X) developer it means that you probably already know all the things described below, but if you haven’t started your iOS development adventure yet (but you want to), this article could be a good introduction for you.
Two weeks ago we attended AWS re:invent conference in Las Vegas. Our company was represented by Wojciech Lesicki (Product Owner of our cloud infrastructure), Sebastian Pietrowski (Head of Architecture and Operations) and Mateusz Gajewski (Solutions Architect). This post summarises new product announcements made during the keynotes, our impressions on breakout sessions, bootcamps and conference itself.
REST (Representational State Transfer) has become very popular over the course of the past few years. It has happened so not only because of growing popularity of lightweight Web frameworks (like Angular.js) but also due to the new Microservice Architecture hype (thank you Netlifx). Frameworks like Spring add new REST-related functionalities with each new release and more and more companies decide to give them a try… But how do you test them - REST services and their clients?
We live in a mobile-oriented world so it’s crucial to provide the best usability experience possible. In this post we show how you can preserve user’s context when installing a mobile application from a website.
There are two parts of this article. In first we define what is Capacity (maximum load) and Resilience (fault tolerance) of a typical e-commerce site.
This year’s edition of Strata Hadoop World held in New York was humongous, 16 workshops, over 20 keynotes, over 130 talks and most importantly over 5000 attendees! This massive crowd wouldn’t fit in Hilton hotel where the previous edition was held. That is why organizers had to move the conference to Javits Conference Center - an enormous building in which Big Data believers occupied just one sector. The fact that the European edition of Hadoop Summit experienced exactly the same transition (the third edition is going to be held in a bigger location in Brussels) gives pleasant assurance that Big Data technologies are still a hot topic and that Big Data Community grows at a stable pace.
One of new features introduced by JAX-RS 2.0 is asynchronous processing in Server and Client APIs. We use these APIs together with CompletableFuture and Java 8 lambda expressions to show how to create scalable and well performing REST services in a more functional way.
Main purpose of this article is to describe what kind of techniques may be used to build valuable and reliable products with limited time. It is based on the experiences we had, during our work on new logistics platform.
JDD conference is behind us. We had a great time doing a github dev contest (Chief Troublemaker Officer) for conference attendees. Some guys complained that the contest was too hard, good to hear! It was out intention not to make it too trivial.
If you are going to be in Kraków for JDD conference, October, 13-14th, don’t miss a perfect opportunity to meet our Allegro engineers!
CPU time and memory are the two primary resources every performance-sensitive application needs to use wisely. Java is now the language of choice for many such systems. While most developers have at least basic understanding of computational complexity, I believe that few, especially among those who primarily use Virtual-Machine based languages such as Java, understand well how their applications manage memory. This is not only a very interesting topic in itself, but can also help in improving performance of Java applications or in understanding better the behavior of common Java-based databases such as Apache Cassandra.
Introduction This article is addressed mainly to people who are not very experienced in the area of unit / integration testing although basic knowledge of JUnit is required. I am going to provide you with a quick recap of the most commonly used Java testing tools, starting with JUnit (together with three nice complementary libraries: JUnitParams, catch-exception) and Mockito. Then I will show you how to perform assertions in a much nicer and cleaner way using AssertJ so that you never have to use Hamcrest again.
In the good old days of Maven releasing projects was straightforward. Everyone knew and used maven-release-plugin, a plugin that behind simple facade did huge amounts of work. In Gradle times things started to get complicated. In exchange for greater flexibility we gave up good old, maybe a bit rusty tools that were part of our developer kits for years. Now we try to find new ones. Most of teams in Allegro have decided to migrate their projects from Maven to Gradle and we, too, are searching for perfect tools to do our job (and builds).
What is Apache Cassandra? Apache Cassandra is an open source, distributed, high performance, cloud-friendly NoSQL database offering high availability with its masterless and no single-point-of-failure architecture. If you are new to Apache Cassandra and NoSQL, I highly recommend reading these great introductions:
This is a third j.Piknik, perfect occassion to meet Allegro Engineers in relaxed enviroment. Event will be held at La Playa Music Bar on Saturday 20th September, Warsaw.