Android Remove .idea Folder from Git

There are many examples of .gitignore files for Android Studio projects, some of them have .idea files in them and others don’t. Let’s figure this out.

What’s the .idea folder?

When using IntelliJ IDE (or another IntelliJ based IDE like Android Studio), the .idea directory contains a set of configuration data. Project settings are stored with each specific project as a set of xml files.

It contains many files and configuration values, it includes assets information, caches, code styles, dictionaries, project type information, workspace settings among many other data.

For more information take a look at this article: Deep dive into .idea folder in Android Studio.

Should the .idea folder be kept under version control?

This is the debate area, this official article states that all files under the .idea directory in the project root except the workspace.xml, usage.statistics.xml and tasks.xml files which store user specific settings should be under version control.

This may be helpful if you are working in a team that needs to be synchronized in terms of IDE configuration or want to share project configuration contained in these files, however, I personally do not like to make my repos IDE-dependent so I prefer not to include the .idea folder in my repos and ignore it from my initial commit, instead I use maven or gradle files to make configuration and dependencies available to everyone.

How to remove the .idea folder from your repo?

So if you have already committed your .idea folder to your repo you can remove it pretty easily.

  1. Add the .idea folder to your .gitignore file in your master branch (You can do this by adding .idea to a new line in your .gitignore file) and commit the change.
    git commit -m "Add .idea folder to .gitignore"
  2. In your current branch, check this file out from master to get the updated file. Skip this step if you’re working in your master branch.
    git checkout master -- .gitignore
  3. Remove the .idea folder from the git tree.
    git rm --cached -r .idea
  4. Commit this change.
    git commit -m "Remove .idea folder from repo"

Your project is now free from the IDE chains.

mel gibson freedom GIF

Posted in Dev

Astrophysics for People in a Hurry

We are stardust brought to life, then empowered by the universe to figure itself out – and we have only just begun.

I’ve been always deeply fascinated with everything that extends beyond our beloved earth out to the universe.

I must say that I had to re read several parts of this book, I forced my little mind in order to grasp some of the magnificent concepts that are presented in this book. It is an introductory book into astrophysics and yet all the chapters are so mind blowing, it’s really hard for your mind to even take a tiny look into the grandiosity of the universe.

I read this review in Goodreads before I bought this book, I found it really funny and I’m agree with it:

Imagine you are standing with your face up and your mouth wide open underneath a waterfall of Skittles.At first, a few Skittles get into your mouth and you can taste them. Awesome, you think. I love Skittles. Then, the Skittles become overwhelming, as more and more try to force themselves in, and millions and millions puddle around your feet, piling up past your knees.

rainbow-puke

If I were not a software Engineer I would have loved to be an astrophysicist, what I’m left is to continue to be amazed by books like this that present us the immensity of the universe and the tininess of us.

Top Code Challenges Websites

Code challenges are great, whether you know nothing about code and want to get started or you are a developer with many years of experience, code challenges are a fun and easy way to keep your skills sharp, get into new technologies and learn from a huge community.

Personally, I think there are many reasons why developers should take code challenges and quizzes on a constant basis, among them:

  • They help you to continuously improve your code skills.
  • Learn new languages and skills.
  • Learn from other developers multiple solutions to a problem.
  • Enable creativity.
  • Great companies love code challenges. Be prepared for your dream job interview.
  • They’re fun!

So, with that said, here are my personal top code challenges websites:

Coderbyte

Coderbyte gives you access to a great collection of challenges that you can solve directly in your browser with more than 10 programming languages. Another great feature is that you can compare thousands of user solutions with your own, it is crazy how many approaches there are to a single challenge.

Coderbyte also has something called tracks, which are a collection of tutorials, and challenges designed to prepare you for technical interviews of different companies, which I think is fantastic.

Codewars

Codewars brings you thousands of challenges in many languages for you to solve as well. The cool thing about Codewars is its dojo thematic where developers become warriors training their skills and get ranked among its community.

A challenge is named Kata and they are the main activity of the site, the Kata can also be created by members of the community and complemented with more languages. You get Ranks that indicate progression and difficulty as you start completing Kata and also you have Honor, which represents the level of respect earned from the community by staying active and contributing.

CodinGame

Same as the two above, these platforms bring you thousands of challenges, but it adds a fun turn, it turns challenges into games, it brings some cool graphics and missions that make the challenges a lot more fun and also you are able to compete in multiplayer challenges with developers all around the world.

Many achievements can be earned and definitely all this game-like functionality makes the challenges and the competition great to learn about many programming concepts and mathematics puzzles. You are also able to contribute with your own puzzles to the platform.


Of course, there are many more code challenges platforms, so, share your favorites with me and start solving challenges.

Posted in Dev

Matchmaking for Beginners: A Novel

Whatever happens, love that.

I’d never read a love story until now. I came across this book and thought: Why not? It has good reviews and I’m open to new experiences. 🙂

Honestly, I liked it a lot, it’s an enjoyable book, about the magic that surround us, not the Harry Potter kind of magic, instead the ordinary magic that we experience every day and that often goes unnoticed by many of us. This book focuses especially about the magic of love.

Call me a romantic but I do believe in love just as this book puts it:

It’s everything, love is. It runs the whole universe.

This book made me smile, laugh, surprised me and almost made me cry.

A Developer Job Search

On March 31, 2018, I started a search to find a new job, I’ve learned and grew through this process and it has come to an end recently. I want to document it here.

A few months ago I saw a great image of the 7 phases of a Job Lifecycle:

  1. The honeymoon
  2. Reality sets in
  3. Learning the ropes
  4. Mastering the job and achieving solid results
  5. The first question marks
  6. Demotivation
  7. Burnout

My job search started by the start of 2018 when I was at phase 5, almost 6 of this lifecycle and I started to ask myself if I was really enjoying and growing in my current work, this led me to make the decision to start looking for new opportunities.

Throughout my short 4 years of professional career, I’ve been creating this idea of my dream job and it goes sort of like this:

A mission I feel passionate about, a place where I’m working with awesome people pursuing a common goal which actually makes this world a better place impacting peoples lives in a positive way. And why not? With cool perks like open vacation policy, a competitive pay, remote first, education. What Japanese would call Ikigai, true balance between passion, mission, vocation, and profession.

1_qNNzYd3SE1Z09d_IaJOdGA

As you can imagine, this is not a particularly easy job to find but it’s not a unicorn either.

NoRedInk

So, I started looking for this Ikigai job and sending some applications on March 31, 2018, and after a take-home challenge, I landed my first interview with NoRedInk. Great experience, they were really nice guys and I really enjoyed the process even though it finished with a rejection email. I was aware that most probably I was going to find rejection, however, it’s always hard.

We’ve decided not to move your application to the next step of the interview process.

Doist

Then I applied to Doist, I was very excited about this company, great mission, inclusion, a balance between work and life and values I deeply Identify with. I did my research about the company and found out that they like good cover letters, so I spent many hours writing a cover letter I felt proud of and send it on it’s way.

We regret to inform you that it has not been selected for further consideration.

YNAB

Another awesome company with a great mission I feel identified with. I know the positive impact that their solution is bringing to their users’ lives.

We hate to be the bearer of bad news.

Stop, Breathe & Think

Recently I’ve been very into meditation and mindfulness and I was very excited to think that I could stand a chance in a company like SBT when I found they were looking for an Android developer.

We don’t have any Android positions open at the moment.

All these were some of the steps of the journey, among others, more rejections and some options where I decided not to continue with the process, and finally…

TTEC

I had an interview with them and get identified with their mission and the company values, met part of the team I’d be working with and they were great.

Got really excited about the idea of helping a huge team create customer experiences that really assist and help an even more massive number of people all around the world in a human and meaningful way. That’s impact.

In the end, I got an offer from TTEC and I said yes without thinking about it twice.

The Wrap Up

So it took many applications, challenges, interviews, people I met, rejections, learning, preparations but at the end the result was great and that was the path I need to go through in order to get to the end. Here are some tips from what I learned through this process.

  • You will find rejection. Don’t worry too much about it, learn from it and move on, remember it’s a step closer to the end of your job search.
  • Do your homework. Before applying to any job do a good research about the company, their mission, their values. If it’s really what you’re looking for, then become what they’re looking for.
  • Prepare for code challenges. There are plenty of sites where you can take challenges for pretty much any skill or programming language. By solving these exercises you will be more comfortable finding quick solutions and most likely you’ll find some of the questions or quizzes in your interviews.
  • Expose your work. You surely need a nice CV, but I’ve learned is much more important to have a good exposition of your work, public code repos, your personal blog, blog posts on dev sites, StackOverflow, you name it.
  • Open source. Start doing open source contributions, it’s a huge opportunity for people to see your great work and get a very clear idea of your motivations, creativity and besides, you’ll learn hugely.