<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: José Martins</title>
    <description>The latest articles on DEV Community by José Martins (@pabloportugues).</description>
    <link>https://dev.to/pabloportugues</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F31591%2Fbd22c5cb-c8df-429f-9c83-5d63a510aa60.jpg</url>
      <title>DEV Community: José Martins</title>
      <link>https://dev.to/pabloportugues</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pabloportugues"/>
    <language>en</language>
    <item>
      <title>How to meeting</title>
      <dc:creator>José Martins</dc:creator>
      <pubDate>Tue, 05 Jun 2018 09:10:59 +0000</pubDate>
      <link>https://dev.to/pabloportugues/how-to-meeting-3onn</link>
      <guid>https://dev.to/pabloportugues/how-to-meeting-3onn</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on my blog: &lt;a href="https://bytemybits.gitlab.io/post/2018-06-05-how-to-meeting/"&gt;How to meeting&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We all have meetings, some more than others, but there's an usual common feeling that people share, which is that excessive and unclear/unnecessary meetings lead to frustration and a lack of productivity. They can break, or even prevent you from starting, your thought process, because you know you're gonna have a meeting soon.&lt;/p&gt;

&lt;p&gt;Given that a meeting-less scenario could never be a reality (you can try though), myself with the aid of some team members, decided to create a guide to prevent (or at least mitigate) the biggest impacts.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scheduling a meeting&lt;/li&gt;
&lt;li&gt;Attending a meeting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; These are guidelines and like life, shouldn't be taken to the letter. Experiment and iterate until find what best suits you.&lt;/p&gt;




&lt;h3&gt;
  
  
  Scheduling a meeting
&lt;/h3&gt;

&lt;p&gt;When you're scheduling a meeting you should always have the following into consideration:&lt;/p&gt;

&lt;h4&gt;
  
  
  Before
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Do I need a meeting?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Is it something that you could clarify or decide via Slack/email with a group of people? Then probably you don't need a meeting. Is it something that will trigger heavy discussions and is very intensive? A meeting would be a good call for this one.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is the objective?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A meeting without a specific objective(s) turns into a conversation in which you usually don't get anywhere. Therefore meeting should have an agenda, a clear goal of it's purpose. Ask yourself, what do I want to get out of this? What needs to be decided?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who should attend?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Have you ever been in a meeting where you thought: why am I here? is this real life? Put yourself on the attendees shoes and think if it makes sense for you to be there. Also the greater the number of people in the meeting, the harder it is to conduct it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How much time should I allocate?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As less as possible. This doesn't mean you can't do 1 hour meetings, it means that you should aim to be as efficient as possible so it takes the shortest amount of time. You can do 10min, 15min, even 7min, it depends on what the meeting is about. Remember, if you have an 1 hour meeting with 8 people, it represents 8 hours of which people weren't doing something else, plus the individual focus time to switch back to what you were doing.&lt;/p&gt;

&lt;h4&gt;
  
  
  During
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Who should lead the meeting?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Usually it tends to be the person who scheduled it, however it may not be always the case. In that scenario, prior to the meeting, a moderator should be appointed to lead the meeting towards achieving it's objective(s).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Some time has passed not all people have yet joined, do we continue to wait?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When someone's late it's not just a 5/10 minute loss, it's that times everyone attending, minus the time you won't have for the actual meeting because it was spent waiting. So the recommendation is: If the &lt;strong&gt;meeting is &amp;lt; 30min&lt;/strong&gt; wait up to &lt;strong&gt;3 minutes&lt;/strong&gt;, if &lt;strong&gt;more than &amp;gt; 30mi&lt;/strong&gt; wait up to &lt;strong&gt;5 minutes&lt;/strong&gt;. After that if you have the necessary people to conduct it, then start, if not then drop it and reschedule if necessary.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How should I begin?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's up to the moderator, but we recommend doing a quick recap of what the meeting is about, what we know, what we're trying to do and kick off discussion on how we can do it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What if everyone decides to bring their laptops and nobody is paying attention and just nodding their heads?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unless it's a remote-only meeting or there is a specific reason for people bringing their laptop (read: for the purpose of the meeting), nobody should be typing away or looking at their screen. If you've done the prior work of setting it all up and are putting the effort to be as efficient as possible, it's a sign of disrespect to not be paying attention. The same applies to the use of cellphones. However, usually when that happens it means that person hasn't been participative for a while, so it might be that the meeting is taking to long or they weren't necessary in the first place.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We're now discussing the meaning of life and people seem committed to it, but it has nothing to do with it's objective, how do we circle back around?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sometimes, even if you have a very specific focus, things can get off-track. Main thing here is to guarantee the conversation gets brought back on track. Anyone can do this, but the moderator should chip in and readjust the discussion so it's aligned with the meeting's objectives.&lt;br&gt;
&lt;br&gt;&lt;br&gt;
This is not to say every off-topic is unimportant, because they might be, but in that case it should be part of a different discussion with that as its objective.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I'm usually the moderator but I struggle to keep record of what's important without affecting the meeting pace, what can I do?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The moderator isn't necessarily the one who should keep record of what's important, in fact, there is usually a scribe for that. In this case you should appoint a scribe that will do all the recording of what's important.&lt;/p&gt;

&lt;h4&gt;
  
  
  After
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;What to do after a meeting is done?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now it's time to share. Create a draft (or something that works as a summary of the meeting) and share it with all who attended, plus any other person to whom the meeting purpose is relevant. If you had a scribe appointed, that should be the person to share this.&lt;/p&gt;

&lt;h5&gt;
  
  
  After all this preparation, how was the meeting?
&lt;/h5&gt;

&lt;p&gt;This is something you could try to answer yourself, or go the extra mile and ask the participants about it. Do one-on-one quick conversations about the ups and downs or just send out a survey. Main point here is to gather useful feedback and get better at it.&lt;/p&gt;




&lt;h3&gt;
  
  
  Attending a meeting
&lt;/h3&gt;

&lt;p&gt;When you're attending a meeting you should always have the following into consideration:&lt;/p&gt;

&lt;h4&gt;
  
  
  Before
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;What is the objective?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Make sure it's clear to you what the objective(s) is(are) prior to attending the meeting. Ask the organizer, in case you have doubts so they can be clarified. This is very important so that you are on the same page as everyone else and can prepare beforehand.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why have I even been invited?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's a good question, maybe you shouldn't even be there and should reject it, but maybe you're missing important information about it's purpose and the role you play in it. Reach out to whoever's organizing so that you can understand why.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An 1 hour meeting to discuss labels, really?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Indeed, we'd probably have time to discuss the weather, or would we? It might happen that the allocated time is overkill, but you'll only know that when you talk with the organizer. In the end you might end up agreeing to it or it might just get chopped in half. Ask away!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I won't be able to make it, they'll be fine without me, right?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Maybe, maybe not, depends on how important is your participation. Regardless you should always notify the other attendees (or at least the organizer) that you won't be coming. Either they will proceed and know that you aren't coming or the meeting will be rescheduled if you really need to be present. If case is the latter, then propose time slots in which you are available so it's easier to reschedule.&lt;/p&gt;

&lt;h4&gt;
  
  
  During
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Can I take my laptop? It's just for quick replies if anybody needs me.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You're going to a meeting that someone put in the effort to prepare so it's as short and as productive as possible, if you bring your laptop when it's not clearly stated as needed, then you'd be disrespecting and harming the flow of the meeting as you'd not be fully attentive and focused on what's being discussed. Remember, for meetings to be quick and focused it just depends on whoever's in them, yourself included.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now they're actually talking about the weather, am I just wasting my time?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you feel like things are getting off-track, step in and readjust the conversation direction. Although this is usually done by the moderator, it's not exclusive, so do help out.&lt;/p&gt;

&lt;h4&gt;
  
  
  After
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;What to do after a meeting is done?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the output of the meeting had any action items assigned to you, then follow up on those, if not, grab some coffee/look at cat pictures on the internet.&lt;/p&gt;

&lt;h5&gt;
  
  
  After all this, how was the meeting?
&lt;/h5&gt;

&lt;p&gt;Be proactive and share, constructively, what you liked and what you think could be improved. Remember that a lot of work goes into creating and executing a meeting, so it's always good to appreciate it, especially when it was useful.&lt;/p&gt;




&lt;p&gt;We actually did a meeting to discuss how we should do meetings.&lt;/p&gt;

</description>
      <category>work</category>
      <category>productivity</category>
      <category>communication</category>
    </item>
    <item>
      <title>The four types of remote work</title>
      <dc:creator>José Martins</dc:creator>
      <pubDate>Sat, 02 Jun 2018 09:50:36 +0000</pubDate>
      <link>https://dev.to/pabloportugues/the-four-types-of-remote-work-4jan</link>
      <guid>https://dev.to/pabloportugues/the-four-types-of-remote-work-4jan</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on my blog: &lt;a href="https://bytemybits.gitlab.io/post/2018-05-29-the-four-types-of-remote-work/"&gt;The four types of remote work&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Remote work interests me very much, and I've been very keen on getting to know more, especially because of communication. You need to (almost) relearn the way you communicate since the the person is not there, like physically in front of you, but on the other hand it unlocks a whole new set of possibilities and also helps a lot with existing communication issues that even non-remote companies have.&lt;/p&gt;

&lt;p&gt;With that said, from my experience, I put remote work into four categories:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;No remote&lt;/li&gt;
&lt;li&gt;Remote friendly&lt;/li&gt;
&lt;li&gt;Remote first&lt;/li&gt;
&lt;li&gt;Remote only&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You're probably wondering why &lt;em&gt;No remote&lt;/em&gt; is even there. Well, it is a reality for the higher majority of workers and if we aim for a proper comparison, it should be here as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  No remote
&lt;/h3&gt;

&lt;p&gt;No remote is the reality for most of us. For you to work you need be at a specific place, everyday, for a determined amount of time. People expect to find you (and everybody else) there. If I want to talk to you I can drop by your seat because I know you'll be present.&lt;/p&gt;

&lt;h4&gt;
  
  
  Pros
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;You have the chance to connect with everyone in person&lt;/li&gt;
&lt;li&gt;Everybody is on the same timezone&lt;/li&gt;
&lt;li&gt;It's usually easier to do meetings because everyone is right there and on that meeting&lt;/li&gt;
&lt;li&gt;Free snacks and coffee (if that's something your company provides)&lt;/li&gt;
&lt;li&gt;Communication is easier because you're just talking directly to people&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Cons
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;You commute. E-v-e-r-y-d-a-y.&lt;/li&gt;
&lt;li&gt;You're limited to the office conditions you're given (probably an open space with lots of people and noise)&lt;/li&gt;
&lt;li&gt;You have fixed working hours (it could not be the case)&lt;/li&gt;
&lt;li&gt;Information usually gets lost in water cooler conversations because it's not written down&lt;/li&gt;
&lt;li&gt;People you meet are usually from around the area. If you're hiring you're limited to whom is already there or wants to relocate&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Remote friendly
&lt;/h3&gt;

&lt;p&gt;This is when most of the company works in office, but it's alright if you want to work remotely. It helps tremendously in situations like when your kid is sick, or when you have doctor's appointments and you live far from the office, or just when you're so tired that the 3 hours a day you spend commuting will be better spent resting.&lt;/p&gt;

&lt;h4&gt;
  
  
  Pros
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;You can do a better balance of your personal and work life, i.e., kid's sick, you got appointments, you could just work from where it's best for you&lt;/li&gt;
&lt;li&gt;No commute for the days you're remote&lt;/li&gt;
&lt;li&gt;You still go to the office so you can connect with everyone in person&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Cons
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Sometimes you're treated like a second-class citizen (work wise that is)&lt;/li&gt;
&lt;li&gt;Meetings can be very hard if people are not aware. You might end up connected to one laptop in a room with several people, talking at the same time, making it very hard for you to hear and to participate. They may also point the webcam to the wall for you to see what's being drawn in the board or the post its&lt;/li&gt;
&lt;li&gt;You miss out on important information because it happened on a discussion with people in the office and nobody remembered you weren't there, or maybe because it was very quick and setting up the whole thing was time consuming and not worth it. People also didn't write it down, because it all happened so naturally&lt;/li&gt;
&lt;li&gt;You choose your remote days carefully as to not collide with important meetings that people don't know how to do remote, like groomings, retros and that discussion about how cats rule the internet&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Remote first
&lt;/h3&gt;

&lt;p&gt;When you have offices and people are allowed to manage their time and workplace as they see fit, you have the room to be remote first. If everybody's in the office, you can just do it all offline, but if a single person is remote, then all proceedings are remote first. This means having proper support for remote meetings (audio and video) if you do them mixed (people in meeting room, people remote), or just do them remote by default, i.e., each person is connected to an online meeting. All key decisions have to reach everyone, they need to be accessible, so writing them down is key!&lt;/p&gt;

&lt;h4&gt;
  
  
  Pros
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;You pick where you want to work: office, home or outer space (just remember to take your hotspot).&lt;/li&gt;
&lt;li&gt;No commute if you're not going to the office&lt;/li&gt;
&lt;li&gt;There's an office, so you could still go there and connect in person&lt;/li&gt;
&lt;li&gt;You feel included and not left out of important information or conversations just because you were not in the office&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Cons
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;If you remote from a different country (far away place) you lose direct interaction with other people that get a chance to go into the office&lt;/li&gt;
&lt;li&gt;In mixed meetings you might still feel a little bit left out, because it's always different from being present&lt;/li&gt;
&lt;li&gt;Creating relationships with your teammates is harder. You're not there to go and grab a beer&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Remote only
&lt;/h3&gt;

&lt;p&gt;There are &lt;strong&gt;no&lt;/strong&gt; offices (just a mailbox, perhaps, with a sticker). Everybody you work with is in the same situation you are, but you choose where you want to be, as does everybody else. (Canada, here I come!)&lt;/p&gt;

&lt;h4&gt;
  
  
  Pros
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;No (or shorter) commute - whether at home, co-working, coffee place or bunny island, you chose where you want to work&lt;/li&gt;
&lt;li&gt;Because everybody is in the same scenario, there is more awareness and concern towards information and interactions, so you don't feel left out&lt;/li&gt;
&lt;li&gt;You'll probably work with and meet people from many different countries and locations&lt;/li&gt;
&lt;li&gt;You can hire from anywhere in the world 🌍 (local financial laws will probably apply)&lt;/li&gt;
&lt;li&gt;Usually, once a year, you go to a cool new place for a get together with those nerds you talk to every day, so that you can nerd awkwardly with each other&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Cons
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;You might miss interacting with people (yes, that can happen)&lt;/li&gt;
&lt;li&gt;Timezones can be a bitch&lt;/li&gt;
&lt;li&gt;You need to learn new ways of communicating that are not synchronous (if you've never worked this way before)&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;I remote. Do you remote?&lt;/p&gt;

</description>
      <category>work</category>
      <category>remote</category>
      <category>communication</category>
    </item>
    <item>
      <title>How to Android without Google [hard way]</title>
      <dc:creator>José Martins</dc:creator>
      <pubDate>Sat, 02 Jun 2018 09:47:24 +0000</pubDate>
      <link>https://dev.to/pabloportugues/how-to-android-without-google-hard-way-1ib</link>
      <guid>https://dev.to/pabloportugues/how-to-android-without-google-hard-way-1ib</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on my blog: &lt;a href="https://bytemybits.gitlab.io/post/2018-05-23-how-to-android-without-google-hard-way/"&gt;How to Android without Google [hard way]&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This guide shows how to install LineageOS without GApps with the help of &lt;strong&gt;signature spoofing&lt;/strong&gt; and &lt;strong&gt;microG&lt;/strong&gt;, so that you can have &lt;strong&gt;Push Notifications, Location Services and the like&lt;/strong&gt;, without needing to have Google Play Services installed. (Without Google-anything for that matter)&lt;/p&gt;

&lt;p&gt;It was made possible by the hard work of creators, maintainers and community around &lt;a href="https://lineageos.org/"&gt;LineageOS&lt;/a&gt;, &lt;a href="https://microg.org/"&gt;microG&lt;/a&gt;, &lt;a href="http://repo.xposed.info/"&gt;XPosedFramework&lt;/a&gt;, &lt;a href="https://f-droid.org/"&gt;F-Droid&lt;/a&gt;, &lt;a href="https://github.com/yeriomin/YalpStore"&gt;Yalp Store&lt;/a&gt; and many others.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;NOTE 1:&lt;/strong&gt; every &lt;code&gt;adb&lt;/code&gt; and &lt;code&gt;fastboot&lt;/code&gt; commands I describe here assume the path you're in is the path with the specified files. If it's not, either move there or point to it from where you are.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NOTE 2:&lt;/strong&gt; During the whole process I'm assuming the device is connected to your computer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NOTE 3:&lt;/strong&gt; This tutorial has references to the OnePlus One device, but it should apply to any other phone that's supported by LineageOS. Where you see &lt;code&gt;bacon&lt;/code&gt; (OPO codename) that means you should search that content's link for your own phone. You can find the codename for your phone here: &lt;a href="https://wiki.lineageos.org/devices/"&gt;https://wiki.lineageos.org/devices/&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;DISCLAIMER:&lt;/strong&gt; Following the steps here might brick your phone or cause other types of problems. Follow it at your own risk and make sure you understand what you're doing.&lt;/p&gt;

&lt;p&gt;Now, there are at least two ways of achieving this - the &lt;em&gt;step-by-step/hard way&lt;/em&gt; (this guide) or the &lt;a href="https://bytemybits.gitlab.io/post/2018-05-23-how-to-android-without-google-hard-way/"&gt;&lt;em&gt;straightforward/easy way&lt;/em&gt;&lt;/a&gt;. Choose the one it best fits your needs.&lt;/p&gt;




&lt;h3&gt;
  
  
  Setting up the playground
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Backup your phone (apps, settings, files, images, etc)&lt;/li&gt;
&lt;li&gt;Install &lt;code&gt;adb&lt;/code&gt; and &lt;code&gt;fastboot&lt;/code&gt; on your device - follow instructions &lt;a href="https://wiki.lineageos.org/adb_fastboot_guide.html"&gt;here&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  A little context
&lt;/h4&gt;

&lt;p&gt;This approach consists in flashing a custom version of LineageOS and manually installing Xposed Framework alongside all microG components. The reason for it to be the hard way will make itself clear with the next steps, as you have full granularity of the components you're installing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So let's get to it then.&lt;/strong&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Download the following files:
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;Your LineageOS rom - &lt;a href="https://download.lineageos.org/"&gt;https://download.lineageos.org/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The SU package (check your phone's CPU architecture for arm/arm64/x86) - &lt;a href="https://download.lineageos.org/extras"&gt;https://download.lineageos.org/extras&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;(Optional) Weather provider(s) - &lt;a href="https://download.lineageos.org/extras"&gt;https://download.lineageos.org/extras&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The Xposed Framework installer - &lt;a href="https://forum.xda-developers.com/attachment.php?attachmentid=4319220&amp;amp;d=1509453299"&gt;https://forum.xda-developers.com/attachment.php?attachmentid=4319220&amp;amp;d=1509453299&lt;/a&gt; (more info here: &lt;a href="https://forum.xda-developers.com/showthread.php?t=3034811"&gt;https://forum.xda-developers.com/showthread.php?t=3034811&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;The F-Droid store apk - &lt;a href="https://f-droid.org/packages/org.fdroid.fdroid/"&gt;https://f-droid.org/packages/org.fdroid.fdroid/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The FakeGapps Xposed module (this works with microG GmsCore to allow for Push Notifications, Locations Services and so on) - &lt;a href="http://repo.xposed.info/module/com.thermatk.android.xf.fakegapps"&gt;http://repo.xposed.info/module/com.thermatk.android.xf.fakegapps&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h5&gt;
  
  
  Unlock the Bootloader and flash recovery
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;Unlock the bootloader instructions here: &lt;a href="https://wiki.lineageos.org/devices/bacon/install"&gt;https://wiki.lineageos.org/devices/bacon/install&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Boot into the bootloader: &lt;code&gt;adb reboot bootloader&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Install customer recovery with fastboot (&lt;a href="https://wiki.lineageos.org/devices/bacon/install"&gt;https://wiki.lineageos.org/devices/bacon/install&lt;/a&gt;) (&lt;a href="https://dl.twrp.me/bacon/"&gt;https://dl.twrp.me/bacon/&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fastboot flash recovery &amp;lt;path-to&amp;gt;/&amp;lt;recovery-name-and-version&amp;gt;.img&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Boot into recovery (volume down + power button) - depends on phone&lt;/li&gt;
&lt;li&gt;Go to Wipe → Factory Reset (this will be enough for the majority of cases. Advanced Wipe and Format Data will give you complementary choices if needed - like if you're changing ROMs - CM to LineageOS - and have signing problems. In that case there may a possibility you have to delete everything. If you do that, remember &lt;code&gt;Mount&lt;/code&gt; otherwise the file system won't work)&lt;/li&gt;
&lt;/ol&gt;

&lt;h5&gt;
  
  
  Let's copy the necessary data to our device
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;adb push &amp;lt;path-to&amp;gt;/lineage-14.1-20180516-nightly-bacon-signed.zip /sdcard/&lt;/code&gt; - no need to copy this one if you're planning on installing it via &lt;code&gt;adb sideload&lt;/code&gt; (Advanced → ADB Sideload then &lt;code&gt;adb sideload &amp;lt;path-to&amp;gt;/lineage-14.1-20180516-nightly-bacon-signed.zip&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb push &amp;lt;path-to&amp;gt;/addonsu-14.1-arm-signed.zip /sdcard/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb push &amp;lt;path-to&amp;gt;/XposedInstaller_3.1.4.apk /sdcard/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb push &amp;lt;path-to&amp;gt;/com.thermatk.android.xf.fakegapps_v3_bfc686.apk /sdcard/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adb push &amp;lt;path-to&amp;gt;/org.fdroid.fdroid_1001000.apk /sdcard/&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h5&gt;
  
  
  Installing the ROM
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;Go to Install, select the file of your custom ROM and install&lt;/li&gt;
&lt;li&gt;Since we're here, let's also install the SU package (&lt;code&gt;addonsu-14.1-arm-signed.zip&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Reboot&lt;/li&gt;
&lt;li&gt;First time booting will take a little longer given that it's doing it for the first time. After that you should be prompted with the usual Android initial config screens.&lt;/li&gt;
&lt;/ol&gt;

&lt;h5&gt;
  
  
  Signature spoofing and F-Droid
&lt;/h5&gt;

&lt;p&gt;What we have now is your ROM in it's simplest format. This means no Google Apps, no PlayStore, no Push Notifications, no Locations Services, etc... Living without the last two is rather difficult, kind of beats the purpose of having an Android, so we'll focused on fixing that.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Let's start by unlocking developer mode so we can unlock SU access. Go to Settings → About Phone → Tap Build Number 7 times&lt;/li&gt;
&lt;li&gt;Go back and enter the new menu &lt;em&gt;Developer Options&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;In Root Access select &lt;em&gt;Apps Only&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Turn on Android Debugging (if you're connected to your computer a prompt will show to authorize, do that as well so you can use adb)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Since every app we're gonna install doesn't come from the Play store, we need to enable installments from "Uknonwn Sources"&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to Settings → Security and toggle &lt;em&gt;Uknown Sources&lt;/em&gt; on&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now it's time to install stuff. Go to your file system and install the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Xposed installer&lt;/li&gt;
&lt;li&gt;FakeGApps module&lt;/li&gt;
&lt;li&gt;F-Droid (we'll come back to this one in a second)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Time to configure Xposed. Opening the app we'll see that Xposed framework isn't installed, so let's do that.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click &lt;em&gt;Install/Update&lt;/em&gt; and choose one of the two forms&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Install&lt;/em&gt; will require you to have root access&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Install via recovery&lt;/em&gt; is done the same way we installed the ROM (no need for root here)&lt;/li&gt;
&lt;li&gt;Finish by going onto &lt;em&gt;Modules&lt;/em&gt; and enabling &lt;em&gt;FakeGApps&lt;/em&gt; as well as &lt;em&gt;XposedUnifiedNlp&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Reboot&lt;/li&gt;
&lt;/ol&gt;

&lt;h5&gt;
  
  
  Installing microG
&lt;/h5&gt;

&lt;p&gt;Now let's get on with installing what will replace Google Play Services. Applications and libraries for microG are available through F-Droid, so we'll add that to our F-Droid repositories.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Settings → Repositories → New Repository - &lt;a href="https://microg.org/fdroid/repo"&gt;https://microg.org/fdroid/repo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; In Settings, enable &lt;em&gt;Expert Mode&lt;/em&gt; and &lt;em&gt;Unstable Updates&lt;/em&gt; - we need this for the microG packages, because the ones working aren't stable yet&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let's install it's dependencies. Through F-Droid install:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;microG Services Core (make sure you're installing version 0.2.4-10-xxx or newer) - this is microG main app and the core of what's replacing google services&lt;/li&gt;
&lt;li&gt;microG Services Framework Proxy - this is needed for some older clients to work with Google Cloud Messaging&lt;/li&gt;
&lt;li&gt;microG DroidGuard Helper - runs DroidGuard in an isolated environment&lt;/li&gt;
&lt;li&gt;FakeStore - mocks the existence of Play Store to the Play Services clients&lt;/li&gt;
&lt;/ol&gt;

&lt;h5&gt;
  
  
  Location Services
&lt;/h5&gt;

&lt;p&gt;Since we're already here, let's install some location providers (choose from here: &lt;a href="https://f-droid.org/packages/com.google.android.gms/"&gt;https://f-droid.org/packages/com.google.android.gms/&lt;/a&gt;):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;MozillaNlpBackend (or any other you prefer really)&lt;/li&gt;
&lt;li&gt;NominatimNlpBackend&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; I'm using F-Droid because I use it everyday, however you're not obligated to. Just go and get each on this packages individually.&lt;/p&gt;

&lt;p&gt;Now, you'll also need to install the &lt;em&gt;NetworkLocation.apk&lt;/em&gt; if you find here: &lt;a href="https://github.com/microg/android_packages_apps_UnifiedNlp/releases"&gt;https://github.com/microg/android_packages_apps_UnifiedNlp/releases&lt;/a&gt;&lt;br&gt;
If, like me, you can't install it (it says it's corrupted, it's a ROM issue and we'll need to manually put it where it belongs. If that's the case (more info here: &lt;a href="https://github.com/microg/android_packages_apps_UnifiedNlp):"&gt;https://github.com/microg/android_packages_apps_UnifiedNlp):&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to Settings → Developer Options and in Root Access select &lt;em&gt;Apps and ADB&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Download the &lt;em&gt;NetworkLocation.apk&lt;/em&gt; and mount the &lt;em&gt;/system&lt;/em&gt; directory by running &lt;code&gt;adb root &amp;amp;&amp;amp; adb remount&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Now move the apk to it's rightful place &lt;code&gt;adb push NetworkLocation.apk /system/priv-app/NetworkLocation.apk&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h5&gt;
  
  
  Back to microG
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;Start by allowing access to what it asks, it's really needed&lt;/li&gt;
&lt;li&gt;Enable &lt;em&gt;Google device registration&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Enable &lt;em&gt;Google Cloud Messaging&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Go to &lt;em&gt;UnifiedNlp Settings&lt;/em&gt; and set both location providers you've just installed&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Next we need to turn battery optimization off for microG, otherwise it won't work as the system will likely shut it down. (Google Play Services aren't battery optimized as well, at least here you have a choice).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to Settings → Battery → More Options → Battery Optimization → All Apps → microG Services Core → Don't use optimization&lt;/li&gt;
&lt;li&gt;Reboot (so that the location services work properly)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Last thing is testing location services and push notifications&lt;/p&gt;

&lt;h3&gt;
  
  
  Testing location services and push notifications
&lt;/h3&gt;

&lt;p&gt;Now that we have everything setup, time to actually test if it's working as expected.&lt;/p&gt;

&lt;h4&gt;
  
  
  Location Services
&lt;/h4&gt;

&lt;p&gt;This one is easy. First enable the device's location by going into &lt;em&gt;Settings → Location → Mode&lt;/em&gt; and set to &lt;em&gt;High accuracy&lt;/em&gt; (notice that it won't work with &lt;em&gt;Device only&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Head on over to the Browser app and open OpenStreetMaps (or whatever maps/location service you want), allow it to access the devices location, and click to show your location.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--glTbJUjX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://bytemybits.gitlab.io/post-content/2018-05-23/test-locations.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--glTbJUjX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://bytemybits.gitlab.io/post-content/2018-05-23/test-locations.png" alt="Test Locations"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Push notifications
&lt;/h4&gt;

&lt;p&gt;We're just missing Push Notifications so let's test that. Easiest way is to use an app - &lt;a href="https://play.google.com/store/apps/details?id=com.firstrowria.pushnotificationtester"&gt;Push Notification Tester&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To install apps from Play Store without Play Store app, check the &lt;strong&gt;Where to get apps that are not on F-Droid section&lt;/strong&gt;. Proceed to install &lt;em&gt;Push Notification Tester&lt;/em&gt; through &lt;em&gt;Yalp Store&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Running it should get you all green tick boxes and a push notification in the end.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cmMC47l4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://bytemybits.gitlab.io/post-content/2018-05-23/push-notification-test.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cmMC47l4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://bytemybits.gitlab.io/post-content/2018-05-23/push-notification-test.png" alt="Push Notifications Test"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that's it, you're officially setup with a fully functional device &lt;strong&gt;running Android&lt;/strong&gt; with &lt;strong&gt;no Google&lt;/strong&gt; whatsoever!&lt;/p&gt;

&lt;h3&gt;
  
  
  Where to get apps that are not on F-Droid
&lt;/h3&gt;

&lt;p&gt;Thanks to a project called &lt;a href="https://github.com/yeriomin/YalpStore"&gt;Yalp Store&lt;/a&gt; you can download apps and keep them updated from the Play Store. I've used mirrors in the past, but this is by far the safest solution for me, as well as the easiest to use. You can download the &lt;a href="https://f-droid.org/en/packages/com.github.yeriomin.yalpstore/"&gt;app on F-Droid&lt;/a&gt; and check how it works on &lt;a href="https://github.com/yeriomin/YalpStore"&gt;their page&lt;/a&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Thoughts and motivations
&lt;/h3&gt;

&lt;p&gt;The main reason why I went forward and did this was to actually get rid of all that's Google on my phone. This doesn't mean that I won't install some GApp, because I have, in the past, but because I have full control over it as I have with any other application. What bothered the most is exactly that, Android is free and open-source, but somehow it doesn't seem that straightforward to have what you need, without something Google in there.&lt;/p&gt;

&lt;p&gt;The funny thing is that there isn't really a way not to deal with Google. If you read the purpose of microG you'll understand it mainly serves as a proxy, something that still communicates with Google servers. The fact is, there is no way around that. The whole Android ecosystem is dependent of Google, either because of Google Play services or Play Store (every other store is officially unrecommended - they know what it's best for you - &lt;em&gt;Apple dejá vú much?&lt;/em&gt;). The former means that every app on Play Store registers push notifications through Google servers, so if you don't have something that connects to those servers, you're pretty much screwed and won't get push notifications (K-9 mail does this differently though). Albeit Android being free and open-source, each day it seems less and less so. Just look at this tutorial on how to run an Android version without Google.&lt;/p&gt;

&lt;p&gt;If you think about it, you have an open platform with an ecosystem around that is tightly dependent on a single company. Personally, that is not the purpose of Android, and in the long run, we're just losing because of that. Also, if you want to develop an app you need to comply with Google Play Store policy, whether you like it or not, and if you make yearnings out of it, 30% of that goes to Google.&lt;/p&gt;

&lt;p&gt;Take a moment in the memory lane to the time Microsoft ruled the web with Internet Explorer. If you could gather all the hate that browser has, you could probably build a couple of atomic bombs. Fast forward to now and Chrome rules the web, and if your attentive enough, you'll notice the messages like "Works best on Google Chrome" or "Sorry, only works with Google Chrome, download it here" are getting more and more frequent. The concept of open web is getting way different that what it used to be.&lt;/p&gt;

&lt;p&gt;And don't get me wrong, I've absolutely no problem with Play Store or Play Services, I just think there needs to be space for an alternative that doesn't entirely depend on Google and doesn't involve you becoming a tech ninja.&lt;/p&gt;




&lt;p&gt;Here's a challenge: try doing this ↑ on iOS!&lt;/p&gt;

</description>
      <category>android</category>
      <category>google</category>
      <category>lineageos</category>
      <category>microg</category>
    </item>
    <item>
      <title>How to Android without Google [easy way]</title>
      <dc:creator>José Martins</dc:creator>
      <pubDate>Thu, 24 May 2018 17:10:00 +0000</pubDate>
      <link>https://dev.to/bytemybits/how-to-android-without-google-55i</link>
      <guid>https://dev.to/bytemybits/how-to-android-without-google-55i</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on my blog: &lt;a href="https://bytemybits.gitlab.io/post/2018-05-23-how-to-android-without-google-easy-way/" rel="noopener noreferrer"&gt;How to Android without Google [easy way]&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This guide shows how to install LineageOS without GApps with the help of &lt;strong&gt;signature spoofing&lt;/strong&gt; and &lt;strong&gt;microG&lt;/strong&gt;, so that you can have &lt;strong&gt;Push Notifications, Location Services and the like&lt;/strong&gt;, without needing to have Google Play Services installed. (Without Google-anything for that matter)&lt;/p&gt;

&lt;p&gt;It was made possible by the hard work of creators, maintainers and community around &lt;a href="https://lineageos.org/" rel="noopener noreferrer"&gt;LineageOS&lt;/a&gt;, &lt;a href="https://microg.org/" rel="noopener noreferrer"&gt;microG&lt;/a&gt;, &lt;a href="http://repo.xposed.info/" rel="noopener noreferrer"&gt;XPosedFramework&lt;/a&gt;, &lt;a href="https://f-droid.org/" rel="noopener noreferrer"&gt;F-Droid&lt;/a&gt;, &lt;a href="https://github.com/yeriomin/YalpStore" rel="noopener noreferrer"&gt;Yalp Store&lt;/a&gt; and many others.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;NOTE 1:&lt;/strong&gt; every &lt;code&gt;adb&lt;/code&gt; and &lt;code&gt;fastboot&lt;/code&gt; commands I describe here assume the path you're in is the path with the specified files. If it's not, either move there or point to it from where you are.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NOTE 2:&lt;/strong&gt; During the whole process I'm assuming the device is connected to your computer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NOTE 3:&lt;/strong&gt; This tutorial has references to the OnePlus One device, but it should apply to any other phone that's supported by LineageOS. Where you see &lt;code&gt;bacon&lt;/code&gt; (OPO codename) that means you should search that content's link for your own phone. You can find the codename for your phone here: &lt;a href="https://wiki.lineageos.org/devices/" rel="noopener noreferrer"&gt;https://wiki.lineageos.org/devices/&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;DISCLAIMER:&lt;/strong&gt; Following the steps here might brick your phone or cause other types of problems. Follow it at your own risk and make sure you understand what you're doing.&lt;/p&gt;

&lt;p&gt;There are at least two ways of achieving this - the &lt;em&gt;straightforward/easy way&lt;/em&gt; (this guide) or the &lt;a href="https://bytemybits.gitlab.io/post/2018-05-23-how-to-android-without-google-hard-way/" rel="noopener noreferrer"&gt;&lt;em&gt;step-by-step/hard way&lt;/em&gt;&lt;/a&gt;. Choose the one it best fits your needs.&lt;/p&gt;




&lt;h3&gt;
  
  
  Setting up the playground
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Backup your phone (apps, settings, files, images, etc)&lt;/li&gt;
&lt;li&gt;Install &lt;code&gt;adb&lt;/code&gt; and &lt;code&gt;fastboot&lt;/code&gt; on your device - follow instructions &lt;a href="https://wiki.lineageos.org/adb_fastboot_guide.html" rel="noopener noreferrer"&gt;here&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  A little context
&lt;/h4&gt;

&lt;p&gt;This approach consists in flashing a custom version of LineageOS with all of microG components. The reason why migroG isn't a part of LineageOS itself, is because it's maintainers have rejected the signature spoofing capability to be part of Lineage, arguing security problems, despite several attempts from the microG team to prove them it wouldn't bring any extra risk to it (more on that &lt;a href="https://lineage.microg.org/#faq6" rel="noopener noreferrer"&gt;here&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;So what microG team did was patch in their components on top of Lineage and create new releases, so any person that would want Lineage w/ microG to avoid anything Google, could have a solution almost out of the box (the step-by-step way shows why the process can become a bit complicated). They release their version in a very quick fashion and to &lt;a href="https://download.lineage.microg.org/" rel="noopener noreferrer"&gt;all devices supported by Lineage&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I personally would go for this guide, because you can set everything up without having to root your phone, which is not the case for step-by-step way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So let's get to it then.&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Installation
&lt;/h4&gt;

&lt;h5&gt;
  
  
  Download the following files:
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://download.lineage.microg.org/" rel="noopener noreferrer"&gt;Your LineageOS w/ microG ROM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dl.twrp.me/bacon/" rel="noopener noreferrer"&gt;The TWRP recovery&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h5&gt;
  
  
  Unlock the bootloader - instructions &lt;a href="https://wiki.lineageos.org/devices/bacon/install" rel="noopener noreferrer"&gt;here&lt;/a&gt;
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;Boot into the bootloader - &lt;code&gt;adb reboot bootloader&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://wiki.lineageos.org/devices/bacon/install" rel="noopener noreferrer"&gt;Install the customer recovery with fastboot&lt;/a&gt; - &lt;code&gt;fastboot flash recovery &amp;lt;path-to&amp;gt;/twrp-x.x.x-x-bacon.img&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Boot into recovery (volume down + power button - varies by phone)&lt;/li&gt;
&lt;li&gt;Go to: &lt;code&gt;Wipe → Factory Reset&lt;/code&gt; - this will be enough for the majority of cases. &lt;strong&gt;Advanced Wipe&lt;/strong&gt; and &lt;strong&gt;Format Data&lt;/strong&gt; will give you complementary choices if needed - like if you're changing ROMs (CM to LineageOS) and have signing problems. In that case there may a possibility you have to delete everything. If you do that, you may need to &lt;code&gt;Mount&lt;/code&gt; otherwise the file system won't work&lt;/li&gt;
&lt;/ol&gt;

&lt;h5&gt;
  
  
  Installing the ROM (while in recovery)
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;adb push &amp;lt;path-to&amp;gt;/lineage-14.1-20180516-nightly-bacon-signed.zip /sdcard/&lt;/code&gt; - no need to copy this one if you're planning on installing it via &lt;code&gt;adb sideload&lt;/code&gt; (&lt;em&gt;Advanced → ADB Sideload&lt;/em&gt; then &lt;code&gt;adb sideload &amp;lt;path-to&amp;gt;/lineage-14.1-20180516-nightly-bacon-signed.zip&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Go to Install, select the file of your custom ROM and install&lt;/li&gt;
&lt;li&gt;Reboot&lt;/li&gt;
&lt;/ol&gt;

&lt;h5&gt;
  
  
  After everything loads up and you've setup the device, head over to the microG app.
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;Start by allowing access to what it asks (it really is needed)&lt;/li&gt;
&lt;li&gt;Enable &lt;em&gt;Google device registration&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Enable &lt;em&gt;Google Cloud Messaging&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Turn battery optimization &lt;strong&gt;off&lt;/strong&gt; for microG, otherwise it won't work as the system will likely shut it down. (Google Play Services aren't battery optimized as well, at least here you have a choice)&lt;/li&gt;
&lt;li&gt;Go to &lt;em&gt;Settings → Battery → More Options → Battery Optimization → All Apps → microG Services Core → Don't use optimization&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Head on back to microG and open the &lt;em&gt;self-check&lt;/em&gt;. All boxes should now be ticked. Some boxes in UnifiedIP section may not be ticked, however it doesn't mean location services aren't working. For more info check the &lt;em&gt;Post Install&lt;/em&gt; section &lt;a href="https://lineage.microg.org/#faq" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Lastly we just need to check if our location services and push notifications are working.&lt;/p&gt;

&lt;h3&gt;
  
  
  Testing location services and push notifications
&lt;/h3&gt;

&lt;p&gt;Now that we have everything setup, time to actually test if it's working as expected.&lt;/p&gt;

&lt;h4&gt;
  
  
  Location Services
&lt;/h4&gt;

&lt;p&gt;This one is easy. First enable the device's location by going into &lt;em&gt;Settings → Location → Mode&lt;/em&gt; and set to &lt;em&gt;High accuracy&lt;/em&gt; (notice that it won't work with &lt;em&gt;Device only&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Head on over to the Browser app and open OpenStreetMaps (or whatever maps/location service you want), allow it to access the devices location, and click to show your location.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbytemybits.gitlab.io%2Fpost-content%2F2018-05-23%2Ftest-locations.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbytemybits.gitlab.io%2Fpost-content%2F2018-05-23%2Ftest-locations.png" alt="Test Locations"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Push notifications
&lt;/h4&gt;

&lt;p&gt;We're just missing Push Notifications so let's test that. Easiest way is to use an app - &lt;a href="https://play.google.com/store/apps/details?id=com.firstrowria.pushnotificationtester" rel="noopener noreferrer"&gt;Push Notification Tester&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To install apps from Play Store without Play Store app, check the &lt;strong&gt;Where to get apps that are not on F-Droid section&lt;/strong&gt;. Proceed to install &lt;em&gt;Push Notification Tester&lt;/em&gt; through &lt;em&gt;Yalp Store&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Running it should get you all green tick boxes and a push notification in the end.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbytemybits.gitlab.io%2Fpost-content%2F2018-05-23%2Fpush-notification-test.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbytemybits.gitlab.io%2Fpost-content%2F2018-05-23%2Fpush-notification-test.png" alt="Push Notifications Test"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that's it, you're officially setup with a fully functional device &lt;strong&gt;running Android&lt;/strong&gt; with &lt;strong&gt;no Google&lt;/strong&gt; whatsoever!&lt;/p&gt;

&lt;h3&gt;
  
  
  Where to get apps that are not on F-Droid
&lt;/h3&gt;

&lt;p&gt;Thanks to a project called &lt;a href="https://github.com/yeriomin/YalpStore" rel="noopener noreferrer"&gt;Yalp Store&lt;/a&gt; you can download apps and keep them updated from the Play Store. I've used mirrors in the past, but this is by far the safest solution for me, as well as the easiest to use. You can download the &lt;a href="https://f-droid.org/en/packages/com.github.yeriomin.yalpstore/" rel="noopener noreferrer"&gt;app on F-Droid&lt;/a&gt; and check how it works on &lt;a href="https://github.com/yeriomin/YalpStore" rel="noopener noreferrer"&gt;their page&lt;/a&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Thoughts and motivations
&lt;/h3&gt;

&lt;p&gt;The main reason why I went forward and did this was to actually get rid of all that's Google on my phone. This doesn't mean that I won't install some GApp, because I have, in the past, but because I have full control over it as I have with any other application. What bothered the most is exactly that, Android is free and open-source, but somehow it doesn't seem that straightforward to have what you need, without something Google in there.&lt;/p&gt;

&lt;p&gt;The funny thing is that there isn't really a way not to deal with Google. If you read the purpose of microG you'll understand it mainly serves as a proxy, something that still communicates with Google servers. The fact is, there is no way around that. The whole Android ecosystem is dependent of Google, either because of Google Play services or Play Store (every other store is officially unrecommended - they know what it's best for you - &lt;em&gt;Apple dejá vú much?&lt;/em&gt;). The former means that every app on Play Store registers push notifications through Google servers, so if you don't have something that connects to those servers, you're pretty much screwed and won't get push notifications (K-9 mail does this differently though). Albeit Android being free and open-source, each day it seems less and less so. Just look at this tutorial on how to run an Android version without Google.&lt;/p&gt;

&lt;p&gt;If you think about it, you have an open platform with an ecosystem around that is tightly dependent on a single company. Personally, that is not the purpose of Android, and in the long run, we're just losing because of that. Also, if you want to develop an app you need to comply with Google Play Store policy, whether you like it or not, and if you make yearnings out of it, 30% of that goes to Google.&lt;/p&gt;

&lt;p&gt;Take a moment in the memory lane to the time Microsoft ruled the web with Internet Explorer. If you could gather all the hate that browser has, you could probably build a couple of atomic bombs. Fast forward to now and Chrome rules the web, and if your attentive enough, you'll notice the messages like "Works best on Google Chrome" or "Sorry, only works with Google Chrome, download it here" are getting more and more frequent. The concept of open web is getting way different that what it used to be.&lt;/p&gt;

&lt;p&gt;And don't get me wrong, I've absolutely no problem with Play Store or Play Services, I just think there needs to be space for an alternative that doesn't entirely depend on Google and doesn't involve you becoming a tech ninja.&lt;/p&gt;




&lt;p&gt;This is one of the cases that just because you can, it means you should!&lt;/p&gt;

</description>
      <category>android</category>
      <category>google</category>
      <category>lineageos</category>
      <category>microg</category>
    </item>
    <item>
      <title>Confluence is where information goes to die</title>
      <dc:creator>José Martins</dc:creator>
      <pubDate>Wed, 25 Oct 2017 11:34:39 +0000</pubDate>
      <link>https://dev.to/pabloportugues/confluence-is-where-information-goes-to-die-25n</link>
      <guid>https://dev.to/pabloportugues/confluence-is-where-information-goes-to-die-25n</guid>
      <description>&lt;p&gt;If, like me, you've ever worked with Atlassian's tools, namely JIRA and Confluence, you probably had issues with the latter.&lt;/p&gt;

&lt;p&gt;Of all the projects I've used it, I always saw the two same problems, that are what bother me the most:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Structure/organization of information: I never know where to find what I'm looking for, and I never now where I should put something new.&lt;/li&gt;
&lt;li&gt;Outdated information: who hasn't run an 'How-to' that breaks something because it's outdated?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I know the tool is not the problem here - because it's one hell of a tool - but we end up always using it wrong, which makes me question what should change.&lt;/p&gt;

&lt;p&gt;Have you ever had these struggles? What do you do to fight them, or to even eradicate them? Some other tool? A Confluence manager?&lt;/p&gt;

&lt;p&gt;Please share your thoughts. :)&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>wiki</category>
      <category>confluence</category>
    </item>
    <item>
      <title>“Amazing job offer [heart not found]</title>
      <dc:creator>José Martins</dc:creator>
      <pubDate>Tue, 26 Sep 2017 08:09:15 +0000</pubDate>
      <link>https://dev.to/pabloportugues/amazing-job-offer-heart-not-found-ap8</link>
      <guid>https://dev.to/pabloportugues/amazing-job-offer-heart-not-found-ap8</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on my blog: &lt;a href="https://bytemybits.gitlab.io/post/2017-09-25-amazing-job-offer/"&gt;“Amazing job offer [heart not found]&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Have you ever opened your email or LinkedIn inbox only to find the following message:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Greatest career opportunity ever!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dear &lt;code&gt;&amp;lt;insert-name-here&amp;gt;&lt;/code&gt;,&lt;/p&gt;

&lt;p&gt;Company &lt;code&gt;&amp;lt;insert-awesome-company-title-here&amp;gt;&lt;/code&gt; is currently looking for &lt;code&gt;&amp;lt;insert-job-title-here&amp;gt;&lt;/code&gt;.&lt;br&gt;
&lt;code&gt;&amp;lt;insert-awesome-company-title-here&amp;gt;&lt;/code&gt; is a very big and huge company, maybe the biggest there is, probably. It has like a bunch of offices spread across the globe, like virtually everywhere, except Iceland, it's too cold there. Also, it has more employees than a Metallica concert and last year it had supertrillions worth of revenue (yeah, that much). Oh, and it won like 47 Olympic gold medals for it's work. And something you'll not believe, it's certified by Chuck Norris himself.&lt;/p&gt;

&lt;p&gt;If you're interested send us that thing that reduces you to a number with some special properties, you know Cornicopius Vitale.&lt;/p&gt;

&lt;p&gt;Kindheartedly and the utmost respect for one such as yourself,&lt;br&gt;
Sergeant Dick&lt;br&gt;
Bot Person | Cold Hearten Specialist&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then, like me, you've felt like a number. Just another candidate in a sea of people, where only the crap you put on your CV or LinkedIn page matter and defines you as an individual. I mean, I sure as hell would feel motivated to work in a company who treats me like a number on a spreadsheet, who wouldn't right?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If a personal assistant like Cortana or Siri feels more human than a person, then we as humans have really fucked up!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I know that at the end of the day works needs to get done, and the company needs to make a profit, so that ideally you and everyone involved can benefit. I understand that. However, most of us work and interact, (almost) every day, with other people. Maybe in the future that won't be the case (I actually doubt that but I'll concede), however this is the reality we currently live in.&lt;/p&gt;

&lt;p&gt;So, as humans, who talk and interact with other humans, we should try to make an effort to work on that. I know it isn't always easy, for a whole variety of reasons, like the fact that you hate talking to Carl because he's a dick, or because you have to send out job offers to &amp;gt;9000 job candidates before lunch, but at the end of the day, we end up losing more than we gain.&lt;/p&gt;

&lt;p&gt;If I send out the stupid amount of job offers, my success rate of candidates that'll go on the next phase will probably be very low. As a candidate myself, if I'm in an even okay position at a company, I sure as hell will dismiss every job offer that looks as sterile as &lt;a href="https://www.kickstarter.com/projects/charlielyne/make-the-censors-watch-paint-drying"&gt;watching hours of a paint drying film&lt;/a&gt;. The people that will likely reply are those who are really keen on getting the fuck out of where they're currently at. Moreover, this is first point of contact, so you're killing more viable candidates than bad guys in the Uncharted series (seriously, it's almost the population of a small country! Very &lt;em&gt;bloody-esq&lt;/em&gt; for an Indiana-Jones-like story).&lt;/p&gt;

&lt;p&gt;The best thing about this for me, is that it isn't really that hard to do. Personally I value the type of communication that's most direct, with the information that really matters and is comprehensible by a toddler. Fancy or complicated speech only complicates things and bugs the message. If you can be as straightforward as what I'm writing here, I'd say your comprehension rate will be pretty good.&lt;/p&gt;

&lt;p&gt;Also, if I'm writing to Melinda for a Backend Developer offer, it should feel like I'm actually talking to that person. If she took the time to put out information that helped you reach her profile, why not mention it in that message? It sure as hell is direct, and she'll understand right away what clicked for you.&lt;/p&gt;

&lt;p&gt;To this day I haven't met a single person to which the following made any difference in choosing a job: "Company Coconuts &amp;amp; Jelly is really really big, has loads of people working there, makes way too much money and has a gazillion certifications.". 99% of the time that shit doesn't matter! That is not what people really care about, as it has very little impact when looking for a job. Of course this information also matters, but it's just way lower on the scale and it usually matters most when you're already there and believe in the future of that company, not before you join.&lt;/p&gt;

&lt;p&gt;People care about things such as the work environment, the tools and technologies they can and will use in their work, their colleagues, their team, their responsibility and power to change things, their recognition, the company's transparency, the work schedule flexibility, the workplace flexibility, and so on and so forth (and pay of course). These are the things that impact you daily, these are the things that make your work life enjoyable or just downright painful.&lt;/p&gt;

&lt;p&gt;Upon writing a job offer those are the types of things you should focus on. This also means you probably won't be sending &amp;gt;9000 job offers before lunch, but you'll surely get way more replies this way, and more than that, you'll receive replies from people who share these values and you'll surely prefer working with them, I know I will.&lt;/p&gt;

&lt;p&gt;Fun fact, the motivation to write this post came from a recent job offer I received in the terms I described. My first reaction was to sarcastically reply to that person for sucking at their job, however, I gave it a second thought and came to the realization that'll I would just be another self-righteous asshole had I done that. I therefore proceed to reply in a somewhat lengthy message describing what I felt about that message, what I value in these types of communication and an example of something that would make difference for me. Unexpectedly enough, the response was far more positive that I'd ever expected. That person thanked me greatly for the honest feedback and even asked my opinion on a couple of other matters. Way different and hellishly positive outcome I'd ever expect. Goes to show that it &lt;strong&gt;actually makes a difference to give a fuck&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To close of this post, I'll give an example based on the said message I recently sent out:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hi &lt;code&gt;Yennefer&lt;/code&gt;,&lt;/p&gt;

&lt;p&gt;My name is &lt;code&gt;Triss&lt;/code&gt; and I'm with &lt;code&gt;Lodge of Sorceresses&lt;/code&gt;, who's currently looking to hire a &lt;code&gt;Sorcerer&lt;/code&gt; for it's new office, in &lt;code&gt;Montecalvo&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Lodge of Sorceresses&lt;/code&gt; is a successful company with given proof that strives to work with latest technologies in the field of &lt;code&gt;spells, curses and black magic&lt;/code&gt;. We also value the work environment and the work/leisure for each on of our employees as well as the available tools for our work. The new &lt;code&gt;Montecalvo&lt;/code&gt; team already has &lt;code&gt;10&lt;/code&gt; people and we think your profile fits the current offering role of &lt;code&gt;Enchantress&lt;/code&gt;. On your profile you mention experience in &lt;code&gt;enchanting&lt;/code&gt;, &lt;code&gt;sorceressing&lt;/code&gt;, &lt;code&gt;magic crafts&lt;/code&gt; and &lt;code&gt;bringing a reign of fire down on your enemies&lt;/code&gt;. These are values that &lt;code&gt;Lodge of Sorceresses&lt;/code&gt; greatly values.&lt;/p&gt;

&lt;p&gt;In that sense, we would love to extend this conversation so we can get to know you better and show you how we work.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br&gt;
&lt;code&gt;Triss&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;As Steve Vai so eloquently put it in Devin Townsend's Retinal Circus show, "Life is all about relationships."&lt;/p&gt;

</description>
      <category>humans</category>
      <category>career</category>
    </item>
    <item>
      <title>It does matter where you put it</title>
      <dc:creator>José Martins</dc:creator>
      <pubDate>Tue, 29 Aug 2017 20:57:51 +0000</pubDate>
      <link>https://dev.to/pabloportugues/it-does-matter-where-you-put-it</link>
      <guid>https://dev.to/pabloportugues/it-does-matter-where-you-put-it</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on my blog: &lt;a href="https://bytemybits.gitlab.io/post/2017-06-27-it-does-matter-where-you-put-it/"&gt;It does matter where you put it&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Whenever you want to write something and share it with the open world, where do you put that content? Why did you decide to put it there? How many people can it reach?&lt;/p&gt;

&lt;p&gt;I've built this blog because I wanted to write, and I hosted it on GitLab pages because I want to &lt;a href="https://bytemybits.gitlab.io/post/2017-06-13-it-actually-works/"&gt;control the content&lt;/a&gt;, so it makes sense for me that anything people want to share with the world, should be reachable by everyone. Facebook doesn't do that. I'll try to explain you the importance of this, so maybe next time you want to share something with the world, you're actually doing what you intended to.&lt;/p&gt;

&lt;p&gt;If you have a Facebook account and decide to write something for everyone to read, you need to have in mind certain things, like the post's privacy settings. It could easily be accessible to everyone that has an account, but not to everybody who hasn't (yes, there are people who don't have a Facebook account, and yes, they're normal people like you). Even if you do set it as public, for someone who's not logged in, this is the experience they get:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fnM63Axx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://bytemybits.gitlab.io/post-content/2017-06-27/facebook.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fnM63Axx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://bytemybits.gitlab.io/post-content/2017-06-27/facebook.gif" alt="facebook experience"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, you have no control whatsoever about formatting. Wanted to add some &lt;strong&gt;bold&lt;/strong&gt; or &lt;em&gt;italic&lt;/em&gt; text, a &lt;a href="https://daringfireball.net/projects/markdown/basics"&gt;custom link&lt;/a&gt; perhaps? Some &lt;code&gt;code&lt;/code&gt; even? Well, you can forget it, because they know what's best for their platform (yes, Facebook is a private company that will always look after their own interests, never yours, don't forget that!).&lt;/p&gt;

&lt;p&gt;One other thing to have in consideration is that every post you write isn't saved by The Internet Archive because &lt;a href="https://web.archive.org/web/*/https://www.facebook.com/marc.haynes.7583/posts/793204930854561?match=bWFyYyBoYXluZXMscm9nZXIgbW9vcmU%3D"&gt;Facebook doesn't allow it&lt;/a&gt;, &lt;strong&gt;nor it is indexed by search engines&lt;/strong&gt;, meaning Google or other search engines won't return your post, unless the link to it lives elsewhere, and that elsewhere is indexed (like a blog for example). The only way I could have access to it is by searching within Facebook, and for that you need an account.&lt;/p&gt;

&lt;p&gt;Now, you may even think: "Well, why don't you create an account so you never have to bother again?" To which my answer is: &lt;em&gt;There are a &lt;a href="http://www.nybooks.com/articles/2016/12/22/they-have-right-now-another-you/"&gt;lot&lt;/a&gt; of &lt;a href="https://www.technologyreview.com/s/604082/we-need-more-alternatives-to-facebook/"&gt;reasons&lt;/a&gt; why you &lt;a href="https://veekaybee.github.io/facebook-is-collecting-this/"&gt;wouldn't&lt;/a&gt; want to have a Facebook &lt;a href="https://www.washingtonpost.com/news/the-intersect/wp/2016/08/19/98-personal-data-points-that-facebook-uses-to-target-ads-to-you/"&gt;account&lt;/a&gt;, and just stating that you don't want one should be enough.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Even so, if you still don't care about that, there are additional problems. You don't control Facebook, so you don't know for how long that content will live there. It is a known fact that Facebook is in good health and will probably hang around a lot longer, but if they decide to change their privacy policy, delete your content or block your account, you have no control whatsoever.&lt;/p&gt;

&lt;p&gt;My main reason for all this rambling is to try and bring some awareness. The web is supposed to be open, Facebook is the exact opposite of that. Do you want to share &lt;strong&gt;YOUR&lt;/strong&gt; content with the world? Do you care what happens to that content long term? Then place it somewhere you control and that's openly available for everyone with an internet connection. Link whatever you want (Facebook, Twitter, Pinterest, etc) there, not the other way around!&lt;/p&gt;

&lt;p&gt;So how could you achieve this? Well, you have several ways of doing it. GitHub pages offers a very simple way of accomplishing this with &lt;a href="https://pages.github.com/"&gt;Jekyll&lt;/a&gt;. You just need to learn markdown in order to write content and with GitHub desktop app, you don't even need to open the terminal to update &lt;strong&gt;your very own blog&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Ultimately, if you really don't want the trouble of going with a static pages blog, you can choose something like &lt;a href="https://dev.to/"&gt;The Practical Dev&lt;/a&gt;, &lt;a href="https://www.blogger.com/"&gt;Blogger&lt;/a&gt;, &lt;a href="https://wordpress.org/"&gt;WordPress&lt;/a&gt; or even &lt;a href="https://medium.com"&gt;Medium&lt;/a&gt;, which has gained quite some traction lately.&lt;/p&gt;

&lt;p&gt;By doing this you'll provide your content to the world wide web for anyone to access it anywhere! It will be searchable by your search engine of choice, it will be stored on the Internet Archive and you'll be able to provide the same user experience for anyone that may wish to consume it.&lt;/p&gt;




&lt;p&gt;Some &lt;a href="http://www.nybooks.com/articles/2016/12/22/they-have-right-now-another-you/"&gt;bedtime reading&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>content</category>
      <category>privacy</category>
    </item>
    <item>
      <title>From F to F while on fire in 5...</title>
      <dc:creator>José Martins</dc:creator>
      <pubDate>Tue, 29 Aug 2017 20:36:47 +0000</pubDate>
      <link>https://dev.to/pabloportugues/from-f-to-f-while-on-fire-in-5</link>
      <guid>https://dev.to/pabloportugues/from-f-to-f-while-on-fire-in-5</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on my blog: &lt;a href="https://bytemybits.gitlab.io/post/2017-07-04-from-f-to-f-on-fire-in-5/"&gt;From F to F while on fire in 5...&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you've worked at a, say, regular company, you probably encountered people with whom working was hard. Maybe they complained a lot, or were just annoying, but you felt that they didn't do much about it. You ended up getting tired of their crap. What a pain!&lt;/p&gt;

&lt;p&gt;Before quickly dismissing people with those behaviors, I think we should first try to understand what led them there. If you think about it, we are curious by default, we are eager to learn and understand why something ticks this way or that way, so how do we get to the point where we just don't care?&lt;/p&gt;

&lt;p&gt;From my experience I'd say that's the result of several stages, such as &lt;em&gt;frustration&lt;/em&gt;, &lt;em&gt;lack of interest&lt;/em&gt;, &lt;em&gt;dismissal&lt;/em&gt;, &lt;em&gt;settling&lt;/em&gt; and &lt;em&gt;fear&lt;/em&gt;. I have experienced them all and saw them in other people as well. Perhaps you did to. Here's my intake on their natural progression:&lt;/p&gt;

&lt;h3&gt;
  
  
  Frustration
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nDHfieU6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://bytemybits.gitlab.io/post-content/2017-07-04/this-is-the-worst.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nDHfieU6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://bytemybits.gitlab.io/post-content/2017-07-04/this-is-the-worst.gif" alt="This is the worst" title="This is the worst"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a new employee with fresh ground and two sacks of confidence, you quickly take notice in a lot of stuff that can be bettered, so you take initiative and start working on it. You quickly find out that what you think is broken is never gonna change, either because some people think it is currently working fine and don't understand your point of view (they've grown used to it, so why change?), or because there is a shit-ton of bureaucracy plus costs involved and that's just not worth it. You then proceed to do a jaw drop when you find out it's supposed to be broken!&lt;/p&gt;

&lt;p&gt;Unfortunately for me, I actually saw several scenarios where this happened. Something was clearly broken to provide leverage for certain people (this was during my soap opera experience by the way. Strange memories I have...). Very rarely you end up understanding why something that's broken, won't change just because it makes sense not to!&lt;/p&gt;

&lt;h3&gt;
  
  
  Lack of interest
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7QrLcJSf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://bytemybits.gitlab.io/post-content/2017-07-04/not-my-problem.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7QrLcJSf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://bytemybits.gitlab.io/post-content/2017-07-04/not-my-problem.gif" alt="Not my problem" title="Not my problem"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Natural follow-up of the previous. You get to a point where you have the will to change but you can do nothing about it, and you just can't seem to find a reason to care, because why would you?&lt;/p&gt;

&lt;h3&gt;
  
  
  Dismissal
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--L8oFjrWL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://bytemybits.gitlab.io/post-content/2017-07-04/fucks-given.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--L8oFjrWL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://bytemybits.gitlab.io/post-content/2017-07-04/fucks-given.gif" alt="Fucks given" title="Fucks given"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All focus goes on yourself and your own needs, and you start dismissing whatever someone tells you that's important. No matter if they say it's for the common good, or even for your own good, you just do the exact amount of work you have to do and dismiss everything else you can.&lt;/p&gt;

&lt;p&gt;Congratulations, you leveled up, you're now on the stage of &lt;em&gt;not giving a fuck&lt;/em&gt;!&lt;/p&gt;

&lt;h3&gt;
  
  
  Settling
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CLRNLpop--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://bytemybits.gitlab.io/post-content/2017-07-04/looks-like-im-working.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CLRNLpop--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://bytemybits.gitlab.io/post-content/2017-07-04/looks-like-im-working.gif" alt="Looks like I'm working" title="Looks like I'm working"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You conclude that you don't really like where you work or how you do work, but the pay is not that bad, there's also the health insurance and those tasty cookies on Fridays are soooo good!&lt;/p&gt;

&lt;p&gt;You got to that sweet spot between not working too hard, but just enough so that your position isn't at risk. Everyday is pretty much the same, regular like-clock routine ensues.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fear
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ipDzJQv---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://bytemybits.gitlab.io/post-content/2017-07-04/fear.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ipDzJQv---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://bytemybits.gitlab.io/post-content/2017-07-04/fear.gif" alt="Fear" title="Fear"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I saw this in two forms: the first was because the benefits and position were good enough to sustain whatever lifestyle the person had (I wouldn't call having kids a lifestyle, but it applies for the point that I'm making). Thus meaning that a job change had to be very carefully weighed in. (and the cookies, can't forget that!)&lt;/p&gt;

&lt;p&gt;The second one manifested itself usually through the form of constant &lt;em&gt;boss-is-crap&lt;/em&gt;, &lt;em&gt;computer-is-crap&lt;/em&gt;, &lt;em&gt;work-is-crap&lt;/em&gt;, &lt;em&gt;its-all-crap&lt;/em&gt; very positive and constructive attitude. In my first week at a job, I had a guy constantly bugging me on why I had accepted that offer. He strongly believed I would regret that decision and that I would hate working there. I proceeded to asking him: "So why are you still here?" to which he replied: "That's a great question to which I don't know the answer". That person was later fired (stayed too much time of step &lt;em&gt;settling&lt;/em&gt; and was a dick).&lt;/p&gt;

&lt;h4&gt;
  
  
  "Let's go already"
&lt;/h4&gt;

&lt;p&gt;Point here is, there are tons of reasons why people don't want to change, and I only figured that out through my years working among different people with very different motivations. Some you understand, some you don't, but either way, it sucks to work with someone that's not motivated and that has reached any (or all!) the steps I described above. And it can't be easy on themselves, I mean, why would you willingly want to be miserable? (unless you're Russel Crowe in &lt;em&gt;Les Misérables&lt;/em&gt;. That's just painful!)&lt;/p&gt;

&lt;p&gt;Most of us have already been there and we know how it sucks. Not caring ends up hurting everyone and is way worse on the long term. Working with motivated and excited people is a thousand times better than someone who feels like they need to be there.&lt;/p&gt;

&lt;p&gt;So what I try to do, and bestow on other people to do as well, is to try and help those who are frustrated and in need of help, even if that person is ourselves! That could mean being part of the team that's trying to change something, helping people find a different job or simply by talking and figuring out why they lost their motivation in the first place and how we could help them get it back.&lt;/p&gt;

&lt;p&gt;Exploring different things besides work can be also great motivator. Sometimes you just feel burned out and it's not that the work itself is bad, or that the people you work with are annoying, but because you just need something completely different to stimulate your mind and get you to not think about work all the time!&lt;/p&gt;

&lt;p&gt;Go and actually take a hike (yes, actual hiking)! Strap up the bike and ride longer than you thought you possibly could! Learn an instrument, join a band and discover a whole new world (and suck at it, but while having loads of fun)! Hell, even gardening is awesome! A friend of mine took his interest in IoT and spicy food and is now growing backyard ghost peppers on an automated system that requires little care (he's actually the only one that can eat them. Something to do with Jalapeños mixed with the milk bottle).&lt;/p&gt;

&lt;p&gt;Go back and figure out what motivated you in the first place, it's a good reference for when you get lost. And even if you end up concluding that's no longer the place for you, that is absolutely fine! I find it very stimulating and an awesome learning experience to work at different places, with different people and different problems. Life is made of experiences, don't tie yourself to something that makes you unhappy, rather try to constantly go the opposite direction. And yes, this does not happen overnight, but it's up to you to make it happen.&lt;/p&gt;




&lt;p&gt;Remember, we're humans and &lt;em&gt;it's complicated&lt;/em&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Frustration - &lt;a href="http://www.imdb.com/title/tt0386676/"&gt;The Office US&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Lack of interest - &lt;a href="http://www.imdb.com/title/tt0487831/"&gt;The IT Crowd&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dismissal - &lt;a href="http://www.imdb.com/title/tt0114148/"&gt;Pocahontas&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Settling - &lt;a href="http://www.imdb.com/title/tt0151804/"&gt;Office Space&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fear - &lt;a href="http://www.imdb.com/title/tt0149460/"&gt;Futurama&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>life</category>
      <category>humans</category>
      <category>motivation</category>
    </item>
    <item>
      <title>You're not the boss of me!</title>
      <dc:creator>José Martins</dc:creator>
      <pubDate>Tue, 29 Aug 2017 20:02:45 +0000</pubDate>
      <link>https://dev.to/pabloportugues/youre-not-the-boss-of-me</link>
      <guid>https://dev.to/pabloportugues/youre-not-the-boss-of-me</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on my blog: &lt;a href="https://bytemybits.gitlab.io/post/2017-07-11-youre-not-the-boss-of-me/" rel="noopener noreferrer"&gt;You're not the boss of me!&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Up until my current job I've worked in places where hierarchy was very high and very clear (okay, not always clear, but clear in the sense that when in doubt that person is probably your boss or ranking higher than you). For a lot of companies (not just software and not just in Portugal), that is the de-facto on how to run a company. Because of that we have a lot of experience and opinions about a strong hierarchy, and most importantly, what's wrong with it.&lt;/p&gt;

&lt;p&gt;For anyone that worked in such an environment, it's easier to remember times where you were told what to do on a regular basis and when you asked thing like: "Doesn't this make more sense?" or "Why is there a giraffe in the office?" you would get answers like: "This is how you have to do it", "Someone wants it that way, so I guess that answers your question", "Because I want you to" or "This is Daphne and she's taking us to higher standards! AH! &lt;em&gt;higher&lt;/em&gt; get it? 'cause she's a giraffe..." - not funny Dave!&lt;/p&gt;

&lt;p&gt;Working based on someone's whim, having any kind of agenda to leverage oneself towards a promotion, even screwing up a work colleague, were concerns that would haunt my mind! If you somehow relate to this, my condolences. Looking back, what most bothered me at those times was the wasteful amount of time and energy on crap. I felt like I was a living in a soap opera, but without the good parts (yes, there can be some, especially Brazilian and Colombian, they master drama!).&lt;/p&gt;

&lt;p&gt;Around a year-and-a-half ago I got a job at a company that does things very differently, or at least tries to. Without getting into much detail, the company runs on a self-organization methodology with a way flatter structure (not completely flat, I'm pretty sure that's just not feasible, from a practical standpoint that is) and way less bureaucracy. At first glance, that might seem like paradise, especially compared to what you're used to, and I must agree, up until a point, as there is no such thing as a silver bullet. In the end you just end up trading problems.&lt;/p&gt;

&lt;p&gt;Working in a place with no bosses can be very appealing, and it does indeed have it's benefits, however, having a boss isn't inherently bad. We as humans, driven by personal motivations and interests, are responsible for the common idea of a boss, that is, a dick (not Dick though, Dick's cool because he plays the guitar).&lt;/p&gt;

&lt;p&gt;Having a very high or very low hierarchy, a highly bureaucratic or self-organized approach doesn't make a company good or bad, highly or lowly productive, or even a good place to work at! A good workplace needs a must-have ingredient - &lt;strong&gt;Culture&lt;/strong&gt; - and with culture comes great responsibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  Culture of Collaboration
&lt;/h3&gt;

&lt;p&gt;In Portugal companies tend to use the term &lt;em&gt;collaborators&lt;/em&gt; when referring to employees, because the word &lt;em&gt;employees&lt;/em&gt; is usually associated with submission to another and doesn't really give a collaborative feel to who you are in a company. The main reason for this is because the word gives the sense that you actually contribute with something, that your voice is heard, that your opinion matters. In most cases that's not true, but in a few the opposite is very true and when that happens, a whole more does as well.&lt;/p&gt;

&lt;p&gt;Collaboration happens when people are involved in something, and they have a voice and an opinion on the matter. When an idea is discussed among a group of people that are both affected and capable of figuring out a solution. It's basically people doing their jobs and feeling good doing them (such a clichÃ© I know, but they're not all bad).&lt;/p&gt;

&lt;p&gt;The beauty of this is that it can happen in both scenarios of what I mentioned above (hierarchy or no hierarchy). You can have a boss and actually be a collaborator, because when you tell that person: "If you go down this road, we'll all loose. I've tested this with and without the giraffe and got way better results with a llama" that person listens to you, gives you credit and trusts you, because they know you're responsible and serious about your work, and that you want what's best for everyone (which most of the time is what's best for the company, and usually, the opposite is also true).&lt;/p&gt;

&lt;p&gt;If you think about it, it's so straightforward and just makes plain sense. &lt;strong&gt;Someone hires you to do a job, and they trust you to do that job. Why do we complicate so much?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At the end of the day, having a giraffe or a llama (nothing personal Daphne, I have you in very &lt;em&gt;high&lt;/em&gt; consideration), bosses or no bosses, you have to work together for the common good. You have to be respectful to the people around you and be responsible for your work. Those are very basic features that help your company, your clients, your work colleagues (that are sometimes your friends) and you! Don't be a dick. Put yourself in the other person's shoes and think for a minute (or two). Take into consideration others knowledge and skill. Take heed to people's advices! Hell, ask advice!&lt;/p&gt;

&lt;p&gt;By doing this you're helping create a workplace that you feel comfortable and happy working in, you take pride on what you do, and you actually feel good about it.&lt;/p&gt;




&lt;p&gt;When in doubt, just apply a dash of common sense, because 99% of problems are solved with just that. (either that or: &lt;em&gt;What would my dog do?&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;If you want to read my take on the common problems affecting motivation and enthusiasm on people, go &lt;a href="https://bytemybits.gitlab.io/post/2017-07-04-from-f-to-f-on-fire-in-5/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>management</category>
      <category>culture</category>
      <category>responsibility</category>
    </item>
    <item>
      <title>Why do I smell burning?</title>
      <dc:creator>José Martins</dc:creator>
      <pubDate>Tue, 29 Aug 2017 19:24:19 +0000</pubDate>
      <link>https://dev.to/pabloportugues/why-do-i-smell-burning</link>
      <guid>https://dev.to/pabloportugues/why-do-i-smell-burning</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on my blog: &lt;a href="https://bytemybits.gitlab.io/post/2017-07-18-why-do-i-smell-burning/"&gt;Why do I smell burning?&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Some three months ago, I felt exhausted, frustrated and with no motivation whatsoever. I was at a stage were I got no pleasure in my work and I forced myself to work remotely whenever possible to avoid interaction with other people, in an attempt to help me focus on getting work done, thus regaining confidence and purpose. To my disappointment, no matter what I did, every passing day I just grew more and more detached until I knew &lt;strong&gt;I had to change&lt;/strong&gt;. The major impact my working life was having on my personal one was impossible to neglect, and I just couldn't keep it up any longer...&lt;/p&gt;

&lt;p&gt;I felt expendable and an idiot for trying to solve problems affecting me, when there was clearly no will to change. I was pushing against a closing wall. It was only later on I discovered I was having a burnout. I had gone past the point of no return and &lt;strong&gt;I had to do something&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Around that time I went on a one week vacation after which I went straightaway to a tech conference in London. I purposely kept all the work I could at bay, so I could give myself some time away, to reflect on how I got to that point, why I got there, and what could I do about it.&lt;/p&gt;

&lt;h3&gt;
  
  
  So it begins
&lt;/h3&gt;

&lt;p&gt;I was on this project for about a year and a half. It was the only project I'd been since back when I started, and although it had already existed for about the same amount of time before me, it was at that moment the turbo kicked in.&lt;/p&gt;

&lt;p&gt;I had spent my last two jobs (about three years total) working with C# (WPF and Windows Phone) and the position I was hired for was a .NET position. On my first week at the job I went straight to the client (in the US) with my other only team mate at the time. On my second day, thousands of kilometers away from home (and my first time in the US) I found out the new work we would be doing (the Backend team was gonna increase very rapidly, after all we were just two) was going to be in Java. I remember asking the question twice to make sure I didn't get it wrong. When I finally realized I wasn't, I think &lt;em&gt;I pooped a little&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;There I was, fucking far away from home, discovering something crazy and unexpected! I mean, I specifically looked for a .NET job since it was the closest thing I had to what I liked working with! I was actually planning on diving really deep in C#. &lt;strong&gt;Holy shit! What do I do?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I remember going to sleep that night thinking "Hell, I'm still here for a few more days and when I get back to Portugal I'll think about it. After all I'm here to work and I have to keep my game on. Fact is, I've only worked for two days." Next day, something similarly unexpected happened.&lt;/p&gt;

&lt;p&gt;Back then two of the co-founders of the company that hired me were there, so the four of us got together to talk, very casually, over a cigarette. They start by asking me "So, you just found out the whole Java thing. Have you worked with Java recently?" to which I replied "Not since college! And that was like 4/5 years ago!". They then explained why was Java chosen and not .NET in a way that made perfect sense. They continued "We know it was unexpected for you, but how do you feel about it? Are you up for it?" to which I honestly answered "Well, you know my Java experience, so do you still think I'm a good fit for the job?" and they topped of by saying "If you're up to it, yeah, of course!". I still remember their smile whilst saying this. Sounds cheesy I know, but it made a huge difference for me. Creating empathy is not an easy thing to do, you have to actually care, and believe me, they do.&lt;/p&gt;

&lt;p&gt;Right there I thought "Hell, had this happened any other place I've worked in and I'd be flying through the door in no time! I mean, if I'm getting fucked like this on my second day on the job, there's no telling what's coming my way!" but given their approach and willingness to keep me in the team knowingly of my handicaps, the situation turned into one hell of an opportunity! I guess I'll have to postpone my wish to deeply learn C#, but the amount of stuff I'm going to learn is tremendous! I'd be a fool not to take it!&lt;/p&gt;

&lt;p&gt;I also need to add that this was the first company where I really worked my ass off to get a position. The company has a strong take on culture and I did my best to know as much as I could about it. Personally, I identified myself with a lot of their values, and they had such a different management strategy (or lack of it) that made me feel like I'd go back to college, in the sense that I'd be learning every single day. (That's still true to this day)&lt;/p&gt;

&lt;h3&gt;
  
  
  Hop on the train!
&lt;/h3&gt;

&lt;p&gt;Things were moving at a rather fast pace on that project. We were shifting from a monolith application written in old .NET and DCOM (this is Microsoft's C++ superset before .NET came along. Yup, it's even worse than you think). Although the .NET part wasn't that great (had almost no tests and a lot of weird logic), nothing really compared to the intricacy of the DCOM code. Damn, it was nasty! Clearly there were a lot of problems with the application, but something was  clear as day, it was the result of many years of development (since 2000's) from a multitude of different people (hence the 5/6 layer cake). But hey, at the end of the day, it worked! There was no CD/CI, almost no tests, very dirty code, robust dependencies, the whole nine yards, but it actually worked!&lt;/p&gt;

&lt;p&gt;Because the application didn't scale and was a pain in the ass to maintain, we started moving all this functionality to a micro-service architecture in the cloud. I mean, how great is that? Being able to just maintain the old code and focus on rebuilding the whole application with reasonable choice of tooling and framework? Holy shit that's awesome!&lt;/p&gt;

&lt;p&gt;In just about 6/7 months we were leaving from AWS with Chef to Google Cloud with Kubernetes. Atop the whole micro-service thing going on, moving to a different cloud provider with a whole different orchestration? That's just crazy! Things were moving blazing fast and because of this, every developer was deeply encouraged to take in DevOps as part of their job. In order to trouble the Ops person you would first need to make sure you could run the whole thing in your own computer, which makes perfect sense, but there was no expert in GCloud/Docker/Kubernetes in the room, so it was a painstakingly and frustrating activity at times.&lt;/p&gt;

&lt;p&gt;10/11 months after I started, I found myself doing Backend web applications (which I hadn't done since college) in two different clouds, with different orchestrations on a language (Java) and framework (SpringBoot) that I had zero (or close to it) experience. Shit, what a trip!&lt;/p&gt;

&lt;p&gt;I have to say, it was the best tech stack I've worked on until this day! You can do things you never thought possible!&lt;/p&gt;

&lt;h3&gt;
  
  
  "Who you gonna call?"
&lt;/h3&gt;

&lt;p&gt;At the time of the cloud switch, I got invited to be a part of the on-call team. I'd never been in one, and besides the extra pay, I was excited to learn how the whole thing worked. If you've never been on-call, it is a very interesting experience (regardless of what I'm gonna say about it next, I really think everyone on the team should, at some point, &lt;strong&gt;be a part of the on-call team&lt;/strong&gt;). You have to manage obvious things like time to fix and how to fix it, but a whole lot more as well. You're in a remote call mitigating the issue. You may find a fix, or you may have to revert back to the old release. In both you need to assess the impact to the customer. &lt;em&gt;Is there downtime? What features will be lost? Can this break something else? If it fails, what's the action plan to solve that?&lt;/em&gt; (If you want to know more about on-call, check out &lt;a href="https://increment.com/on-call/"&gt;Increment&lt;/a&gt;, they have great articles about it.)&lt;/p&gt;

&lt;p&gt;The client (which has an almost US-only customer base) was 8 hours behind our timezone, which meant most incidents we had were after work hours and on the weekends (especially the weekends). As you can imagine, this inadvertently affects your personal life. Each of us were on one-week periods with 1/2 weeks per month. That means having your cellphone, laptop and mobile router with you at all times. It was expected you would check in around 1-10 minutes after you received the call. I remember several dinners and night outs with friends that got partially or totally interrupted by an incident. The saturdays I spent away assessing problems or fixing bugs, and sometimes not actually doing anything because that was the best option, were way more than I was counting on.&lt;/p&gt;

&lt;p&gt;I remember at one point to loathe hearing my cellphone ring, even if it wasn't a pager call. One given week we had 7 incidents! Every time I'd hear the pager I'd think "Fuck! Not again...".&lt;/p&gt;

&lt;h3&gt;
  
  
  The coda
&lt;/h3&gt;

&lt;p&gt;My approach to my work was pretty much the same I had when I joined the company, and accepted the challenge of working completely outside my comfort zone. I was there to learn and make the best out of it. Because of this I really threw myself in, and the on-call was clearly a part of that. I had both slack and email on my cellphone and I'd reply to emails and messages off work hours, more often than not. I convinced myself I needed to do it because of the timezone difference, otherwise problems would take much longer to get solved.&lt;/p&gt;

&lt;p&gt;At one point I found myself constantly checking slack or email whenever I was out with my friends, even when I was not on-call, and when I was, it was just worse.&lt;/p&gt;

&lt;p&gt;Because of this I started to slack off, or completely stop, other personal stuff I was doing. I was missing rehearsals of the band I'm in, spending less quality time with my partner, never finishing setting up this blog, spending less and less time with my friends. &lt;strong&gt;I was consumed by work! I convinced myself I had to be.&lt;/strong&gt; I constantly worried, on account of being the most junior on the team (micro-service/web app/cloud development), that I was always behind, that I had to push more and more! I sensed decisions were being made in which I wanted to be a part of, but I didn't feel knowledgeable enough to be included in them. &lt;strong&gt;I felt left out.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Working on a company with a very small amount of bureaucracy you'd think communication just flows, but you'd be wrong, it's very much the other way around. There is a lot of it but with tons of noise. And there is also a lot of information that you'll never know of. Not because people willingly hold it back, but because the attitude is so laid back, you make a lot of assumptions, one being that information (important one that is) just gets to people. I've discovered and keep discovering that's very untrue. In fact, I'm really struggling to make sure something very important reaches everyone, even by using the company's official communication channels. But that's a whole different story.&lt;/p&gt;

&lt;p&gt;For about 14/15 months since I joined the project, a lot of Backend people had come in, and lot had left as well. Many of them were the people who started around the same time as myself. We talked, extensively, about their reasons for leaving. It really saddened me seeing those people go, although I completely understood what made them do so. After all I ended up doing the same for very similar reasons.&lt;/p&gt;

&lt;p&gt;I remember telling them to try and get people together to solve their problems, because here we could do that! I mean, it's one of the foundations of the company! &lt;strong&gt;C'mon! We can do it!!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Through very different experiences I concluded that, at the end of the day, we're all humans, and we'll always be. No matter the liberty and responsibility you give to people, the human emotions and willpower will always kick in. People will dismiss wherever, whenever, they will push off, they will not care. Not in a maleficent way, but in a very natural human way.&lt;/p&gt;

&lt;p&gt;A teacher of mine once said "You can only delude yourself if you elude yourself in the first place". And someone else spoke "Assumption is the mother of all fuck ups".&lt;/p&gt;

&lt;p&gt;Although I don't totally agree with both statements, I did assume way to much and I did elude myself. I assumed every person would be fully responsible and respectful towards everyone in every situation, that &lt;strong&gt;people would always care&lt;/strong&gt;! I mean, how could they not? We have the power to change so much, why wouldn't we take the opportunity? I craved it so much everywhere else I've worked!&lt;/p&gt;

&lt;p&gt;This is our second home, this is what we make of it! It depends solely on us to make a change, to make it better everyday!&lt;/p&gt;

&lt;h4&gt;
  
  
  Why the fuck people just don't care??
&lt;/h4&gt;

&lt;p&gt;I was pissed, I was tired, stressed and feeling like shit. I wanted to go on permanent vacation, but I also knew that if I did that, I would never want to come back. However, it would be extremely unfair and I'd be a coward. Why the hell should everything live up to my super high expectation? My shiny utopia?&lt;/p&gt;

&lt;h3&gt;
  
  
  The fallout
&lt;/h3&gt;

&lt;p&gt;I then realized the importance of expectation management. I personally feel that sharing something bad about a company is as important and sharing what's good. Especially for recruitment purposes. The respect I will have for the company goes miles up! We're not fooling anyone when we think everything is working just fine and we have no problems whatsoever. That's just bullshit and I'd steer away from the place.&lt;/p&gt;

&lt;p&gt;Because I really wanted to come aboard, I easily dismissed the bad bits. Some I convinced myself I could live with and others I just didn't ask for, and that was a bad choice.&lt;/p&gt;

&lt;p&gt;I decided I needed to change projects, I had to! Something significant to break the endless loop of self-deprecation, self-loathing hurtful mindset. Around two months ago I made the change. This was my chance to break my downward spiral, to get back what I'd lost, to feel good again about what I do. Going in I knew I had to manage how much time I'd be working and more importantly, what off-work activities I'd be putting myself into.&lt;/p&gt;

&lt;p&gt;I started taking cooking a little more seriously. I've always enjoyed cooking, especially for others, and this was a chance to pick it up. I finally put myself to set up this blog, about two years after I thought of doing it. I started to organize meetings within the company, and get people together to discuss very important things, like what we think is not working and we could do better! Or being part of driving a salary transparency group to help people break the salary taboo! To show people &lt;strong&gt;ignorance is not a blessing&lt;/strong&gt;, &lt;strong&gt;transparency and communication are a must&lt;/strong&gt; so trust can exist! I've set myself to take the reins on what people talked to me about, but didn't have the will or the patience to get them going. And the most awesome part of this is, all the content and the decisions are made by a group of people, not a single person. I'm not leading anything, I'm just there as everybody else, participating as an individual within a group. My voice isn't higher or lower than anybody elses, it's the same! The only difference is, I'm always looking out for the wagon, so that when it stops, I'm there to give it a push.&lt;/p&gt;

&lt;p&gt;Dealing with people is hard, it's very irrational and very frustrating. I understand it now. I understand that, although people have the desire to do something, when they don't do it, it doesn't mean it's necessarily the best thing. Why aren't they doing it? Are they afraid of the consequences? Are they doubtful of whom to speak? Are they shy or introverts?&lt;/p&gt;

&lt;p&gt;When you start talking to very different people and start seeing a pattern, you quickly reach the conclusion there is in fact something common, and maybe that in itself is an opportunity to try and get people together. If you look at our history, a lot of important events took place when people got together, so why should this be any different? I don't think it should. Sometimes we just have to say "Fuck it!" and do it. If it all goes to shit, screw it! At least we tried, and most important of all, we got something out of it!&lt;/p&gt;

&lt;p&gt;Recently an ex-colleague of mine joined the company. He was clearly as excited as I was back when I started, after all it was his second try after a long set of months. One of the first things I told him was "Manage your expectations" to which he replied "You're like the second or third person telling me that! Why?" and then I briefly explained what I said above.&lt;/p&gt;

&lt;p&gt;Looking back, I still think I had the right spirit, nevertheless I was very naive. People will always be people. There is so much going on in human relations that's very difficult to predict or understand something. Working on a very predictable and precise field such as software development, it is an interesting contrast to reconcile both ends.&lt;/p&gt;

&lt;p&gt;Today, I don't have the client's slack or the company's email on my cellphone, I purposely separate work from personal stuff and I leave work at the workplace. This doesn't mean I'm not there if something is on fire, because I will be, but it will only happen in real emergencies. I constantly ask myself, "If I were to do all this work at home, what would it achieve? There's always more work! If the app fails, what's the worst can happen?" (I'm not in a critical project like health or insurance, so the answer is, someone will get slightly annoyed and come back later). You need to manage this, because if you're giving your all to work, what gets left to your closest friends and family? Work will always be there, it always is! If you're not well it will affect your everything and you're actually achieving the opposite of what you set out to do.&lt;/p&gt;

&lt;p&gt;Stop for a moment, focus on what's really important and cruise control on everything else. It will be better for you and for everyone around you.&lt;/p&gt;

&lt;p&gt;I usually say "Life is like a VHS tape. If you seek backwards and play it, you'll see the exact same thing." (except when I was a kid and re-watched The Lion King. I strongly believed Mufasa wouldn't die that one time... and then I cried).&lt;/p&gt;

&lt;p&gt;Life is made of decisions, and the best you can do is make sure you're making the right one at any given time. The rest just plays itself out. If I could have done anything differently, I wouldn't, because I made the best decisions I could have made.&lt;/p&gt;




&lt;p&gt;As a dear friend of mine said after reading this post "Hakuna Matata".&lt;/p&gt;

&lt;p&gt;If you want to read a very good post about the same topic that dives more deeply into what causes a burnout, and how can you know it before it's too late, check out &lt;a href="https://kierantie.com/a/burnout/"&gt;Kieran Tie's blog&lt;/a&gt;. It served me as an inspiration to write this one.&lt;/p&gt;

</description>
      <category>life</category>
      <category>humans</category>
      <category>health</category>
    </item>
  </channel>
</rss>
