This is the third blog post explaining how to tackle dynamic programming. Part 1 deals with the recursive solution. Part 2 uses memoization to decrease the time complexity. This final part will use tabulation to make the code cleaner and even faster. Continue reading
Conquer Dynamic Programming in 3 easy steps – Part 2
This is the second blog post that explains how to tackle dynamic programming. Part 1 explains how to derive a recursive solution. Now it’s time to optimize it. Continue reading
Conquer Dynamic Programming in 3 easy steps – Part 1
In today’s blog post I will break down dynamic programming, a fundamental CS topic that throws off many programmers at first. Continue reading
Facebook interview: How I got an offer
During my employment at Amazon, Facebook contacted me for interviewing for a software engineering position in London. Many months later I received an offer. In this blog post, I share my interviewing experience and give tips for the preparation for the software engineering interview. Continue reading
Clean Architecture by Uncle Bob: Summary and review
Clean architecture is the latest book by Uncle Bob. It defines architectural patterns to make software easy to change. In this blog post, I will go through the book summarizing the main concepts and giving my opinion on it. Continue reading
Bash script: Change your MAC address
Handy script to change your MAC address. Useful for testing. Or bypassing time-limited WiFi’s in coffee shops. Continue reading
Zalando: How to pass the interview
Interviewing tips for software engineers applying to Zalando. Before Amazon, I worked for Zalando for over 2 years. During that time I interviewed countless developers, from junior to tech leads, mostly in the Android space. In this post, I share what I was looking for and how to best prepare for the software engineer interviews. Continue reading
AWS Certified Solutions Architect: How I got certified
Finally, I became AWS Certified Solutions Architect Associate on January 8 with an overall score of 87%. In this post, I will go through the exam experience and give final tips for preparation. Continue reading
AWS Certification: Half-way update
Tips, tricks and study tips learned going half-way through the study guide to become an AWS Certified Solution Architect. Continue reading
AWS Certified Solutions Architect: A study Log
In this post, I want to explain my motivations to get the ‘AWS Certified Solutions Architect’ certification and the value it provides. I also want to start a study log to help future students in the preparation. Continue reading
Amazon UK: How I passed the interview
This post is the second in my mini-series about software engineering interviews. The first post was about Booking.com, the third one will be about Google, and this one is going to be about Amazon UK. I received an offer and ended up joining a backend team in Amazon Video.
Continue reading
Booking.com: How I passed the interview
Recently I accepted an offer as Software Development Engineer from Amazon UK. In the process, I also received an offer from Booking.com and interviewed with Google. In this brief series, I will tell about my experiences and the best way to prepare for software developer interviews. The first post is about Booking.com. Continue reading
Toptal: How I passed the interview
In this blog post, I will share my experience on the Toptal interview and how you can prepare to pass it. Continue reading
Pro Tip: Android Studio shortcuts for unit tests
Testing is an important part of the development process. Today we will leverage Android Studio shortcuts to create and run unit tests faster and without using the mouse. Continue reading
A library that draws transparent text in a TextView
Today we will make TextView render its text as transparent so that we can see underneath the TextView, for example the activity background. This technique uses the Porter’s and Duff’s transfer modes. A ready-to-use library along with its source code can be found here. Continue reading
Loading DEX code over the network
Today we are going to see how code can be downloaded and executed over the network. This technique is useful if you want to update parts of an app without rolling out a complete update. In the code sample, we will fetch two dex files, load them dynamically, and then execute their code. Along the way, we will explain how class loading works under the hood. Continue reading
Retrofit 2: Code walkthrough
Retrofit is an open source library by Square that turns annotated java interfaces into REST clients. The library is currently in its second beta and changed quite a bit from its first version to better support the Ok stack. In this post we will go through its code, explaining its main techniques and inner workings. This post assumes some knowledge of the library as a user of it. Continue reading
Hidden activities are not destroyed under memory pressure
Many developers after reading the official documentation believe that the system will reap the hidden activities of a task when running out of memory. In this post we will see this is not the case and how to solve the problem. Continue reading
Git: Committed on master instead of forking a branch
Git Logo by Jason Long is licensed under the Creative Commons Attribution 3.0 Unported License.
Sometimes we start working on a feature but mistakenly commit on the master branch. We realize the mistake too late and would like to “move” this commit or commits to a new feature branch. In this post I explain the fastest way to do this, if the commits have not been pushed to upstream yet.
Git: Getting back an amended commit
Today we are going to see how to recover a commit that was accidentally amended. Continue reading