Make your system more predictable by using idempotent interfaces
Let's analyze how a toggle button that turns activity on and off, can be designed and implemented, on the server-side.
Can a 17-year-old work as a software developer?
I'd like to share with you my experience of working while still studying in High School.
How to introduce yourself to a new team
When you join a new team, you usually want to show that you’re a valuable person to work with. Here you'll find some personal opinion based on our developer's experience.
What’s the best solution for your app: “No code” or traditional development?
Should you give “no code” a try or rather stick to traditional development methods in terms of developing your new app or a product?
How atom keys with JSON in Ecto can break your system
If you use the map type in your Ecto schema, you definitely should read this article. It'll help you to avoid possible system failures.
5 tips for software engineers transitioning to the team leader role
The demand for software is growing continuously. Newly created teams need strong leadership and leaders are often chosen among software engineers. What to expect and how to prepare?
How to become Junior Elixir Developer with no Elixir knowledge?
In this article, we’ll go through a tale of how I landed in my current role, Junior Elixir Developer, having marginal Elixir knowledge - from application to present days.
Ecto.Query.preload/3 vs. Ecto.Repo.preload/3
Which is better Ecto.Query.preload/3 or Ecto.Repo.preload/3? Read and find out what are the main differences.
Renaming column and table in database migrations with Elixir and PostgreSQL
Step by step tutorial on what to do to guarantee zero downtime deployment, while deploying a new version of our application on more than one node.
5 reasons why you should consider building a mobile app
The purpose of this article is to show you the benefits and help you decide on building a mobile app. Mobile isn’t going anywhere and businesses need to adapt.
Decomposing domain models based on lifecycles
There is no one golden solution to decomposing. As it is one of the hardest things to do, it is essential to know the various approaches. That is exactly what you'll find in this article.
Junior Dev's first days. From writing to releasing your first commercial code
Hubert, our developer, uncovers some of the rules and steps that we, as AppUnite, focus on while building products for our clients and teaching new team members good practices.
Modular software design - 10 common mistakes
Modular software design is all about dividing functionalities into independent pieces - modules. Learn what are the most common mistakes to avoid.
Is Code Review harmful?
How does code review affect your team? Can it be harmful? This article lists some issues that can be related to code review and some ideas for improvement.
Concurrency and parallelism with Elixir and BEAM
Patryk from our Backend team explains the differences between concurrency and parallelism, based on Elixir and BEAM.
Handling failures in background workers with Elixir and supervisors
Elixir allows us to write systems that can run practically forever. Does that mean that we don't have to do anything to make our systems reliable?
Become a pi-shaped developer
T-shaped skills are a compromise between being a specialist and a generalist. It's considered a great way to grow. But is it the best way?
Mastering development process
When it comes to being a professional, it's not only about coding skills. It's about mastering the development process. Learn, how to do it!
Why shouldn't you use Elixir code in database migrations?
Elixir code used in migrations can cause troubles when we decide to start up our system with an empty database. But we'll help you to deal with that!
RxJava Backpressure in practice
The majority of us know of its existence, but only a few worked with it. It's time to get to know one of RxJava features more, Backpressure.
How to migrate live production data
Even simple migrations can be dangerous and when executed incorrectly can lead to errors and downtimes. Avoid these problems with our dev team tips.
Enabling constraints in software development
You can govern or enable constraints. Here, we'd like to describe a concept of enabling constraints and how to use them in development.
Should you use database transactions for data consistency?
In our systems, most business actions require changes across multiple contexts. How can we keep these contexts consistent?
Top 5 advantages of Native App Development
Let’s take a look at what true native mobile application development has to offer according to experts in mobile apps development.
Combine Framework with UIKit
A view of our iOS developer, Fatih on matter of combine framework with UIKit.
Defaults, not rules. Should you use Scrum in your team?
Some use a well-known framework while others complain that following any specific process stands in opposition to being truly agile. Who is right?
The story of iOS CI at AppUnite (Part 2)
A continuation of our story about the Continuous Integration system that we are using at AppUnite to test and deploy our software every day.
How I changed the default structure of Elixir project to suit my preferences more
Reasonable defaults can make your life easier but what reasonable means? How many benefits can the personalized default structure of Elixir project bring?
The story of iOS CI at AppUnite (Part 1)
Our little story about CI infrastructure that we've been working on and which is used for building iOS applications.
Things that you should know while localizing your iOS app
In this article, Lukasz from our iOS team, shares his experience, best practices and what can go wrong with supporting multiple languages in your iOS app.
Agile Project Management: The AppUnite Approach
Maciej, our PM, explains approach to Agile at AppUnite. Check this article and compare your approach to agile project management with ours.
How to test iOS apps with Combine, ReactiveSwift and RxSwift
In this article Szymon from our iOS team, presents ideas for testing in three different frameworks - Combine, ReactiveSwift and RxSwift.
How we spent 500 hours for writing tests and proved this to be a business value
Is implementation of the automated tests worth the time and most of all, what value for business does it generate? Look for the answers in this article!
Beyond Ruby on Rails
We reveal behind the scenes details of one of the most important decisions we faced in AppUnite and why it turned out as a huge win!
Don't tell me how to test my software
Why do you write tests? Get to know the most important reasons and change your approach with an eye-opening article from AppUnite team member.
How to keep dependencies up to date
AppUnite team resolves the problem of updating dependencies with a simple script running automatically. Easy solution for software development teams.
How your business can benefit from using Elixir and Phoenix
Discover how Elixir can influence your company and improve the products you offer.
Events and different kinds of coupling
Piece of meaningful advice for developers on when and why you should or shouldn't use events.
How to Write a Project Brief for a Software Development Company
In this short article, Andrzej our Business Development Manager, shares his thoughts on how to write a great digital product brief.
Absence bot - a solution for managing absences at your company
AppUnite’s R&D department share an innovative and time-saving solution to managing absences.
How can your product benefit from the latest WWDC announcements?
Developer’s perspective on Apple’s conference and upcoming opportunities for digital products.
The life of a Fragment in a ViewPager - pro tip for Android developers
Make your android app development easier with this pro tip from one of our Android development experts!
Android Quiz #2
Welcome to the second part of the Android Quiz - the quiz for those who are interested in android software development 🎉
Don't Shoot the Developer!
The moment when a developer touches the keyboard is actually the last part of his job, and probably the easiest one.
Android Quiz #1
Marcin from our Android team prepared a form with a couple of questions about Android, Kotlin and Java to test your knowledge!
The Decalogue of a Pro Media App
Marcin, our Android dev, reveals 10 ancient commandments that will help you create a pro media application.
Welcome Aboard Flutter!
Learn why we chose to add Flutter, a cross platform from Google, to our Tech Stack.
Our First Journey with Flutter
Pawel, our Android developer, shares his experience with Flutter - an open source cross-platform SDK from Google that allows to create apps for iOS and Android with single codebase.
IOS Open Source Hell
In this article Szymon, our iOS developer, takes a look at open source problems of modern iOS applications and tries to find a simple rules of thumb for each of them.
MVVM - You're Doing it Wrong
In this article, I write about a slightly different approach to MVVM, one that overcomes classic implementation problems.
Open sourcing Imager - yet another image processing service
Release announcement of Imager - our brand new image processing proxy service. Written in Elixir, it provides easy solution to thumbnailing problem by using URL query string.
The Big Ideas
If you look at the history of Computer Science, you can see that there are few big ideas that keep emerging. Is there a lesson that we may learn from this?
Building Dependencies on iOS with Carthage
In this article I want to share my experience with building dependencies by using Carthage.
Kotlin Delegates in Android - Real Life Examples
Real life example of using Kotlin delegate in Android. A tricky way to overcome final class inheritance.
Migrate from legacy FCM to FCM HTTP v1
In this article, I will show you how easy is to migrate from Legacy Firebase Cloud Messaging to new FCM HTTP v1 service.
How to test User Interface on iOS and Android
In AppUnite we put emphasis not only on quality of code, but on quality of the product as well.
ConstraintLayout 1.1.2 performance test
Speculations about ContraintLayout have been coming back all the time since it saw the light of the day. The view group, praised by creators (Google), which quickly gained a lot of interest among software developers is described as “working one” and one of the most efficient layouts. But is it true?
Quick look at new :gen_server handle_continue callback
Erlang OTP 21.0 has been released today and I’m going to describe how new :gen_server handle_continue callback works.
Thoughts on how to start up and build a virtual product
In this text I will share my thoughts on starting your business and building mobile/web product.