5 great resources to boost your IT skills this #StayHome April

5 great resources to boost your IT skills this #StayHome April

Most of the world is told to stay at home. Many IT companies are working remotely and are introducing changes / reduction in working agreements and hours. If anything, this has freed-up extra time for a lot of people. What better use of it than to sharpen your skills, catch-up on great learning materials and prepare for the rainbow coming after this storm virus? Here are some of the resources I can’t wait to indulge in this #StayHome April.
read more

How to review pull requests effectively

I’m a firm believer in the practice of code reviews. When done correctly it can significantly improve the quality of software and is among the most effective knowledge-sharing tools in a team. In the previous article I shared a few tips how to create a great pull request. Following them as a team will make everyone’s life easier, so keep them in mind at all times. In this article, I’ll focus on effectively reviewing PRs.

TL;DR — Be nice! Your attitude and approach will be mirrored by your peers when they are reviewing your pull requests! Remember the common goal of your team – to achieve business value while writing great code you will be proud of.

read more

How to create a great pull request

Great things are usually built by teams, not by lone wolves. The myth about the 10x developer sitting alone in the basement is often exaggerated. In practice we’re usually working in a team, building (hopefully) great things together. Aside from the code we write, how we collaborate with others, our work ethic and ways of working have big impact on the success of a project.

The code review practice is widely adopted for increasing overall code quality and decreasing number of bugs that reach the QA team / end user. On top of these, I believe reviewing and discussing code written by your peers is the best way to share knowledge within the team, to onboard new members faster and to quickly adopt new patterns as a group.

Below are my top tips for being a great team-player, making your pull requests easier to read and understand so they can get approved as fast as possible.
read more

Can’t Hurt Me – a remarkable story of willpower and grit

With New Year’s Eve just hours away, what better time to talk about goals, motivation and personal development.

I’ve read countless books on these topics over the years. Not necessary for the “action steps” they give to better your life immediately, but for the reflection questions they often pose. Without a doubt Can’t Hurt Me by David Goggins is my new favorite. It’s a great blend between reflection, adversity, challenges, motivation, gratefulness.
read more

5 ways to make the most of your side project

Having a side project (often called a “pet project” or “side hussle”) is a great way for every software engineer to improve existing skills or learn new technologies altogether. It provides a safe environment where you can experiment freely and iterate faster. You’re not bound by other people’s requirements so you can try this new cool-looking library still in “alpha” stage. Of course no one (except you) will be upset if things go wrong and everything breaks.

Following are a few tips to make the most of your side project and learn as fast as possible. If you don’t have a pet project yet these will serve as a guideline how to start one.
read more

40 RxJava interview questions (and answers)

RxJava has been gaining popularity in the past couple of years and today is widely adopted in the Android community. So much in fact that I can’t recall an Android developer interview in the past 3 years that doesn’t mention RxJava.

Here is a short list of the most common interview questions I have asked candidates (or been asked as an interviewee). Answers to all questions can be found further down.
read more

How to setup Jacoco for Android project with Java, Kotlin and multiple flavours

Jacoco is a widely used library to measure test code-coverage in JVM-based projects. Setting it up for Android applications has a few quirks and having multiple flavours, using Kotlin and writing (some) tests in Robolectric makes it even tricker. There are already great tutorials in how to set it up, like THIS and THIS one. In this post however I’ll not only give you a ready solution, but share all details how I got to it – this way you’ll be able to adapt it in the best way for your project.
read more

Exploring the Android build process: Caching

One of my last tasks @ASOS was to investigate the slow build speeds of the Android application. This post is part of a short series about how we approached the problem, what we tried and what we found out. To be clear, don’t expect miracles and 🦄 here, but you’ll get a better understanding of what you can do to optimise your builds.
read more

Use custom Hamcrest Matchers to level-up your tests

Ideally automated tests should be predictable, isolated and precise, allowing you to find an issue quickly. If these conditions are met, you’ll never have to change a test unless to accommodate a changed requirement. This sounds great on paper, but in practice we often forget the isolated bit and start testing multiple things in a single test. If abused, we’ll end up with tests that need updating all the time, causing developer frustration and wasting time.

One tool that can help with isolation of tests is using matchers. As the name suggests, matchers allow you to match an object agains certain conditions.
read more