Category: Thoughts

  • Observations and thoughts on Work from Home as a developer.

    It’s been three full years since I moved to a 100% work from home schedule where all my communication is purely via Slack/Zoom with colleagues and I don’t have to go to an office. I still occasionally work from a coffee shop, but less than once every two months, so it doesn’t really count.

    I am writing this as a summary of my experiences, thoughts and maybe some tips if you are in the same boat. Clearly, we are all different, so apply what works for you or just experiment. It’s a good habit to keep improving your day even with the smallest thing.

    Key points I want to cover:

    1. Stay sane, do what works for you.
    2. Work-life balance is 100% individual thing.
    3. Fix any sub-optimal setup you might have, buy what you think will improve your wellbeing.
    4. Don’t focus on productivity, focus on consistency.
    5. Your home setup can be everything you wanted your office one to be.
    6. Good communication can be the key to keeping your job.
    7. Don’t forget to meet people.
    8. Exercise / walk in the nature.

    If the points above seem obvious, I hope I’ve saved you some time. But if you’re curious to see if my perspective might inspire any changes, feel free to keep reading.

    They say “it’s a marathon, not a sprint”

    I say it’s both. If I look at my 3 years, yes, it’s a marathon. You can’t work at 100% every minute. However, if it’s monotonous it becomes boring. It’s the “sprint” that is interesting and engaging. That is, how well can you optimize and learn your tools and your workflow to complete a difficult task in no time?

    Let’s say you must parse and get useful data from a JSON file. Well, you can say “it’s a marathon, not a sprint” and go top to bottom, copy-paste what you need, maybe write a small script or something like that. Or instead, you decided to sprint today and do all you want with Jq and completed your assignment in 5 minutes. Only because it was interesting to read that article about “top 5 productivity CLI apps” where it was mentioned and you’ve read the docs, downloaded, played around with it.

    And that is what I put in the “fun” category. The marathon bit is the discipline to stay consistently productive (average per week/month of work getting done let’s say) and knowing when you have a good or bad day.

    On a good day I can do the weeks’ worth of work and the opposite in a bad week. But it’s not the end of the world, because the project is moving forward; tickets are delivered if you average the whole month’s productivity. And there is no point in fighting it or feeling bad about it. I know a better day is coming. But when I don’t have this luxury of having a bad week, then I must “grind through it”.

    A neutral mindset

    In this sense, I mean it as being in a neutral state of mind where you can experience the goods and the bads to their fullest. That might sound a little odd, but I believe it’s a good default place to be and takes less energy to maintain. I hope I can explain this in more detail:

    A strong focus on the positives of WFH might make one a little annoying to be around. imagine someone constantly boasting about their setup or how they avoid commuting.

    Or we can move to a more common problem of not recognizing destructive habits because “it’s so great to work from home” like: Lack of social interactions (face to face), reduced fitness, ease of forming bad eating habits, sometimes bad hygiene and so on the list continues. I find a more neutral stance better for one’s health both physically and mentally.

    And there are the down sides – “I miss my colleagues”, the “I need sunlight” and “I’ve been sitting all day” being repeated in your head every hour. No way to experience any of the positives that way. If you are hard in this camp, maybe WFH is just not for you. Or maybe you are repeating that to yourself without trying to experience the benefits. Because no one said you are locked in a prison. If you block 9 hours a day for work, that leaves you with realistically 3-4 hours to meet other people and have some time for yourself. If you need the constant people contact, it’s also possible to pay for a desk in a one of those open workspaces (that is if your company has no office at all or none where you live at). It’s not really work from home anymore, but it’s a solution to a problem.

    What I am trying to say is that it’s important to control what you repeat in your head. What you are constantly observing. If it’s strictly negative or strictly positive, it’s maybe time to moderate it a bit.

    Which is the precursor to a:

    Good work-life balance

    This is such a repeated topic. I don’t think I can contribute much here, so I can just talk about what I have, and you can be the judge of me (if you want, not that it’s productive).

    Recently, waking up at about 6:30 for some reason, but normally at 8am. Roughly 45 min of waking up my brain, reading personal email, which is 95% subscriptions to news sites or similar. Then I pick a random article to check, drink coffee or tea (winter vs summer difference mainly). After, I try to focus for about 4 hours uninterrupted, thought that rarely works. More like 1.5h at a time. Lunch, then back for another 2-3 hours, then a break to wait for my calls to begin. They end at about 7-8pm because the rest of the team is in the US, and I am in EU. That marks the ends of the workday. From 7pm to about 11:30pm I am free to do whatever. For me, whatever is a mix of – Sometimes going out, though not as often as I want, reading a book or random short PS5 game like Hades or Wukong (recently), which I can play for 30 min or however I long I want. Some random pet projects/coding experiments I have mental energy to do so and YouTube videos. These days this also includes streaming.

    Not very socially productive or whatever, but I don’t feel drained to begin the next day. In fact, Mondays are not a problem for me and often I am surprised how fast Friday comes. It’s a kind of neutral day with no strong feelings. But I also don’t hate my job (in fact I like it). That is a big factor. I think “hate” is one degree past “dislike,” which is when you might want to look for something else anyways

    So, I doubt you want to hear about “the importance of work-life balance.” I think that is one of the things that one just learns by practice. If you lack it, you will feel and make changes hopefully. Or you will be forced to do so at some point. And if you only read about it but don’t feel a problem, then you make no changes. It’s an odd thing. Kinda like keeping one’s body healthy. Most people only try to fix an issue, not prevent one. I suppose that’s enough said on the topic.

    I am free! I can do whatever I want?

    Yes! But that is mostly always the case. What we care about is the repercussions of our actions. And at home, almost anything goes. That feels liberating in a sense. But it also opens a new set of problems – now you must put the boundaries. And enforce them.

    We can name it self-discipline. Of course, you need that in an office too, but there it’s easier. One of the most common complaints I’ve heard from friends about WFH is that it’s hard to separate work and home. The place you sleep in, you bed – yeah, it’s 1 m. behind you. Or the couch? Just the other room where you also eat. So, a short 4 min break with no timer is usually 20 minutes long. This is why I almost always put a time on my watch of 6 or 9 minutes.

    So, what are some ways to self-discipline:

    • Got a task to do? Just do it.
    • Don’t repeat in your head how you don’t want to do something, how difficult it is, how annoying it is or “I have a bad day” etc. Repeating all this only makes it harder. Even if it is, the thought and complaining makes it even harder.
    • Keep your house clean and organized. Just making your bed, keeping all clothes tidy and in a wardrobe, keep your kitchen ordered and all of this throughout the day or at least in the morning. Routines like this help a lot.
    • Keep your desk clean.
    • Let fresh air in the room, try to have more sunlight, if possible.
    • Find distractions and limit them. One distraction I have is my phone. So, I leave it in the other room. If someone calls, I get a notification on the watch or on the laptop, so that’s not an issue.
    • If you have someone next to you, let them know to bug you a bit more if you are laying around.
    • If you can, keep a TODO list. I try to have one to three items a day at max. Often items can be completed in 1 minute, doesn’t have to be a large task.
    • Write things down. Most of the time I don’t even read them afterwards. But it’s easier to remember that way.

    Also – I am against working in pajamas. It’s just lazy. And little things like this pile up until everything is a mess. I personally need a hard difference between “I sleep and rest” and “I work and focus”. One tip is to never touch your bed until it’s time to do so at night (which I don’t follow, but I see the merit). So, I wouldn’t say one can do “whatever they want” when working from home. I find that we should put even more guidelines than when in an office. And following them is even harder if there is no one around to observe you and judge you.

    Work from home requires even better communication

    I knew this even before I moved to my new workplace. I’ve had to work from home in my first years as a developer too for quite a while. And before that even more as a designer. And I did observe that good communication sometimes is more often seen as a productivity indicator than completed tickets. I don’t like the idea of it, but it is true, and it makes sense.

    “He is here only because he is loud, but actually does nothing” I heard commented about a colleague from friend years ago. Regular workers might see this more than managers. And it’s not cool. So always backup your communication with actual work being done as well. That again we shall name discipline. And honesty. And just doing your job. It’s good taking pride in that and I respect people that do so.

    But to get back to just the communication side of things. It’s important to keep people who manage your work and your team up to date with your progress and problems. And all the team members that work on the same pieces as you do. Most likely standups would not really be needed if everyone just posts a status update?

    One of the hardest things to learn is to post updates about bad things – something didn’t work, or you have no idea how to approach a problem or you don’t understand the requirements (for the third time) etc. Well, if you (and I of course) don’t understand a requirement after the third ask, then there are probably two problems: I have the wrong mindset completely or there is missing information on one or both sides. It’s important to clear this out in a fast and frictionless way. And doing so is a skill to acquire in your career. The downside is all the negative emotions around it, which is why we generally stay away from such updates. Until they come to bite us. I dislike this part.

    But for something more fun:

    Home setup

    This is strictly individual as well. I personally have found the following to work best: A very good set of speakers which I hate to admit I can’t blast because of neighbors, but one day! One day I will!

    Good keyboard – I have one now, but it might be changed at some point because of ergonomics. I have some pain in my wrists/thumbs which might be related to it. If I end up changing, it would be with a Kinesis Advantage360 (quite costly, but I hear it’s good for your hands). I also don’t mind learning to use it. After all, I did move from VS Code to Neovim, so how hard can the keyboard be? (I expect it is lol, I just like challenges). Right now, I use a Logitech Pro X TKL with brown switches which sounds and feels AMAZING. I only wish I felt the need for an ergonomic keyboard before purchasing this one.

    Screen – I have a 27” Dell 4k screen which does its job and needs no change. Probably for another 5+ years. But if I were to change it would be with a 32” OLED one. I don’t find a need for a second screen for work. I’ve used two display setup back in my teen years and I could never utilize them both at the same time, which is kind of obvious. You can’t look at two screens at the same time, right? And if you want to switch an active window, you still must tab to it. So, what is the difference with doing on a single monitor? Well, you don’t have to watch to the side and hurt your neck after forgetting you straighten for two hours. In addition, having one thing to focus on kind of makes it easier, at least for me.

    Desk – It’s a stand-up desk, which I don’t utilize well enough. It’s motorized, so I have no excuse. But I still tend to use it once a week standing. There is a room for improvement here. I believe it’s okay to use for no longer than an hour at a time standing and no longer than an hour sitting. It’s a little annoying but maybe it’s better for the body. In any case, sitting 8h is bad. No way around it.

    Other than that, and some minor things, I need nothing else. I have a Sony a7iii as a webcam and a Yeti Blue as a microphone for nice quality. Of course, my camera is for taking photos, but when I am at home, I also put it to use for calls. It’s NOT worth it just for a webcam. Unless you are streamer that makes a good buck from it, I suppose…

  • Trip to Iceland, 2023

    Trip to Iceland, 2023

    4 pm, April 30: I packed my backpack and headed to the airport. It was almost a full day’s travel to one of the prettiest places I’ve ever been to — a tiny country far in the north. And it was all thanks to 10up, who organized this fantastic event for the 250 members who could travel at that time.

    The biggest mug I own ^^ One of the many swag to pick from on the reception desk upon arrival.

    Upon arrival, I was greeted by 10up members waiting for our shuttle. It was 11:30 pm local time and, frankly, already quite cold as we were right next to the entrance. By 2 am, we were in the hotel rooms for a nice rest from the long travel. Some folks had 30+ hours!

    In the next five days, I met so many fascinating and knowledgeable people! I don’t think even a month would be enough to get to know that team. I was surprised at the many interests everyone had, the different cultures and views.

    Monday

    A free day to walk around and explore Reykjavik. The temperatures were hovering from 2 °C (35 F) in the morning to 6 °C (43 F) when the sun was up. It was quite windy, so if you plan to go there, prepare for that (and the rain!).

    Reykjavik, on the coast of Iceland, is the country’s capital and largest city

    Population: 122,853 (2016)

    — Wikipedia

    I took a nice 3-hour walk in the morning to scout what’s around. The center was a 30-minute walk from the hotel we were staying at.

    The house host for “The Reykjavík Summit — summit meeting between U.S. President Ronald Reagan and General Secretary of the Communist Party of the Soviet Union Mikhail Gorbachev, held in Reykjavík, Iceland, on 11–12 October 1986” (source: Wikipedia)

    I had some luck and stumbled upon a parade of motorcyclists. There were probably 200 different types, models, and interesting people to see.

    All of them were lining on the street leading to Hallgrímskirkja – Church of Hallgrímur.

    Further down the center, I found this leak full of gooses, ducks and swans.

    Later that day, I did another walk and I was surprised to see how long the sunset takes. I wasn’t alone this time though, Hugo came with me, and we had a very good time throughout the city. Thanks to him, this time I also have a photo or two 🙂

    Down the coast line, we saw this amazing sculpture:

    And a cinematic view at the lighthouse:

    Tuesday and Wednesday

    The organized event included presentations and talks, a workshop, and very delicious food! In these two days, I was lucky to talk to many of the 10up members and form better relationships with the teams I am working with he most.

    The second day ended with our amazing hosts that managed to roast half the members while making the whole room laugh and have so much good time. Yearly awards were given, and it ended with a concert, where 10up musicians played and sang ’till the late hours. There are some real talents!

    The lunch/dinners were a great way to have some lighthearted talks and enjoy the chef’s work. I never knew I liked fish that much!

    Here is a group photo of a portion of the front-end team we quickly took at the front of the hotel. Such a dense pack of talent right there!

    Thursday

    The last officially organized day was Thursday, when the different teams went to activities and tours around Iceland. We picked a 6-hour tour that included a Geyser, a volcano’s crater, a huge waterfall, tectonic plates, and a tomato green house. And just traveling between each presented so much beautiful scenery to us.

    And here is our group. The energy leaks from the photo!

    Below – a Horse, not a pony, and Ricky Lee trying to give it some snacks. Turns out, they were 3 cm larger than what would otherwise be classified as a pony. There are over 250,000 of them in Iceland!

    From there, we went to see the waterfall. I wouldn’t stay there for more than 5 minute though, the water and wind are a nasty combination at 5 °C.

    We were quite optimal with our time and we headed to the Geyers:

    The big one has been dormant for 20 years. Instead of that, we saw a much smaller one, which still reaches over 15 m height when it erupts every 5 minutes.

    And then we saw the tectonic plates drifting. Well, we should stay a whole year to see them move just 3 cm, but we could imagine it at least.

    And in the last 10 minutes, even with all the beauty around, the trash bins turned out to catch our attention. There were 6 different types!

    Friday

    The worst day, because it was over and I had to travel back. It took me about 14 hours to reach home due to some delays.

    I can easily say that this was one of the best-organized events I have ever attended. Maybe number 1, really. Once again, I am grateful to 10up and the organizers for this opportunity and to all the fascinating people I met throughout the week.

    Everyone left with smiles and positive experiences, and we even started discussing the next one at our last dinner 🙂

  • 2022 Goals

    In many discussions with professionals in different fields, I keep getting excited about all the cool things one can learn and work on. And I would LOVE to try out many of them, but there is just not enough time. And sometimes, not enough energy. Sadly, it feels like you are starting at a mountain covered by mists, knowing how huge it is, and yet, no clue on the way up and how far you have to really go.

    For every new field, knowledge, direction, this kinda fits the description quite well — I know I would have to spend hundreds of hours of deliberate studying to get up to speed and start implementing, thinking of new approaches, and solving problems. So what I figured out along the way is that this might not be the right mindset I should have.

    If now, after I’ve spent a few years practicing just my CSS/HTML knowledge I decided to study more on CRO (conversion-rate-optimization) or Copywriting or Design or any specific BE field, systems, etc, I would need a few more years, 8 hour job on it and practically start as a junior. Which is not very practical.

    So, instead, my thinking is this — how can I quickly know enough about that field so that I know what to search for, what questions to ask and what resources to re-read in order to improve my work speed and quality overall. Or, simply put — be good at one thing and be somewhat okay in others. With this, I am targeting a few fields that I find useful and interesting:

    Learn more about CRO, Copywriting and A/B tests

    I gotta admit, this is not really new, I’ve been reading and testing with CRO for a few years now, but nothing too special. I would love to get at least a couple of books down, write lots of notes, write down some workflows and tactics and start bringing up the conversion optimization opportunities in discussions, calls, brainstorming, planning and more.

    If you wonder what CRO was — basically, increase the people that “convert” from visitors to <something> that the company needs. Example: A new visitor on the site can convert to customers if they purchase a product. Another example — a long-time reader of a site can convert to subscribers after they fill in a form with their email.

    Why though? Well, because this increases the profits a client has. What better than that? And with higher profits, there could be a higher budget for development, new campaigns, needs, and so on. But, there are also problems with this — CRO is a service that has to be marketed and sold, which doesn’t really fit my role and probably any of the projects I might be working on. That doesn’t mean however that the knowledge I gain from learning about it won’t help me provide suggestions about features we are building.

    A simple change of a word, change of the color of a button, bigger font size or position of an element can have a positive impact. Unfortunately, we could be committing one of the most important parts — A/B testing. If one does an “improvement”, it’s only improvement after it’s measured. We all know that from premature software optimizations — unless we measure the speed gains, we can’t be certain we didn’t actually worsen things.

    Next.js, React, DB, Serverless, JS stacks

    Another goal that has been floating for more than two-three years, but I am slowly forming some paths to studying it. The misty mountain problem — you know the mountain is there, and you know it’s huge. From here onwards, it’s just to start exploring and find my way slowly, knowing that there is no summit in the end.

    This one at least is closer to the day-to-day work and it can get practical real quick. In fact, the react side alone is already in use in all the Gutenberg work we are doing. Next.js is more of a potential for future assignments and side projects.

    As a long-term investment, I can’t say anything about React alone, but I personally think it’s gonna stay for long, so it’s worth it. But what is more useful is that there is a lot of vanilla JS learning that goes alongside and this one translates well for pretty much everything.

    How to progress — I am mostly going to be building small projects, ideally trying to focus on a specific type of problem for each. Some could be about managing events — keyboard, mouse, etc. Others would be more about working with routing, others with APIs. In fact, I also would love to work on the BE side as well, store data and everything, in order to get the full picture

    Structuring content for learning

    This alone isn’t easy too. How to learn about a topic, put it in practice, and then explain it in a way so whoever studies it afterward, will have an easier time than you. There have been countless amazing guides I studies from, which, unfortunately, were surrounded by even more bad ones.

    My goal would be to finish a full course or a book on a given topic. I have already started writing a few but never got to the end of it. The main problems I faced were lack of hype. I started well, got to 15-20k words, and ended it there, without finishing the rest. And it’s not a problem of time, just motivation and completing goals that no one is waiting for you to complete.

    So, this time, I will try to not just throw words at my laptop but also structure it better, give explanations, proofread, re-read, rework, rearrange, record videos, build guiding PDFs and cheatsheets, everything that goes hand in hand with a good course, but also get feedback from people. I think that last part would be the critical factor, as then, I will no longer be making it for myself, but also trying to meet expectations and deadlines.

    I have been researching some more guides and courses on building courses (going meta) lately and lot’s of thinking/planning on what would be the best way to present it. With that in progress, I am looking at some older content and I really think I have to rewrite it a lot. The problem is that I still don’t know how, so … yep! A goal for 2022 🙂

    Work on my workflows library

    I have started a couple of months back to write down workflows — repeatable steps or precise notes on doing a thing. That could be “work on a ticket for project X” because that project has 2-3 specific things I keep forgetting or “start a new Gutenberg block” or “setup a new pattern” and such.

    These patterns take roughly 2-3 minutes to write down after I do it for the second time, but after that, it can save a lot of time when I get back to the same task. Especially if it’s for the first time in a few months. I would love to have had at least 50-60 workflows written down next year.

    Publish side projects

    For almost any small side project I work on (learning purposes basically), I have to get a public URL that can be shared. The reason – I gotta start finishing my things. I have noticed that the first part of a learning project helps you study the theory/practice of a tool, program, language, framework, etc. And the second half teaches you what you need to work on a real product that has to launch (which we all do). So I must stop skipping the second half.


    What are your goals?

  • What to prepare for a front-end job

    This post will not cover the interview itself in details, more like the preparation and the information you send when you apply for a position.

    Good thing is that some of the tips here will work for other positions aside from Front-End 👍

    (more…)
  • If you feel down

    If you feel down

    It’s been two years since my last post here…

    Shame. And I was writing a lot before. Well, for my standards, that is;

    I would say that I have been focusing on my work more, trying to deal with the various tasks that are coming in daily. But then when I get home, I feel kinda tired. In fact tired enough to not even go to my backpack, open up my laptop and work on something new, be it an article, learn new stuff etc.

    (more…)