<?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: Matt Keen</title>
    <description>The latest articles on DEV Community by Matt Keen (@mgkeen).</description>
    <link>https://dev.to/mgkeen</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%2F350675%2F3802dfff-a764-43de-bb4b-ffd9abe03b88.jpg</url>
      <title>DEV Community: Matt Keen</title>
      <link>https://dev.to/mgkeen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mgkeen"/>
    <language>en</language>
    <item>
      <title>Community culture in a time of crisis</title>
      <dc:creator>Matt Keen</dc:creator>
      <pubDate>Wed, 25 Mar 2020 18:51:28 +0000</pubDate>
      <link>https://dev.to/mgkeen/community-culture-in-a-time-of-crisis-506i</link>
      <guid>https://dev.to/mgkeen/community-culture-in-a-time-of-crisis-506i</guid>
      <description>&lt;p&gt;Many of us working in software development take working from home for granted. For a large chunk of us adapting to the current crisis has been relatively simple from a “how do I work remote” point of view. However this isn’t a simple working from home scenario, and it comes with many new challenges that we’ve never had to deal with before.&lt;/p&gt;

&lt;h2&gt;
  
  
  A new environment
&lt;/h2&gt;

&lt;p&gt;Quite simply working from home alone is not the same as working from home with a family. Without being able to go outside. For a month. At least. I don’t have any children, but even working in the same room as my partner all day has been an eye opening experience. Apparently I’m with a “we can think blue sky on this” kind of person. It also impacts my usual work from home routine. Her job requires her to be on the phone with clients at a moment’s notice, and so watching shit TV to relax at lunch time isn’t an option (I know, I’ve got it REALLY bad).&lt;/p&gt;

&lt;p&gt;And then there are those with young children. One of our team has a two year old daughter. In our team’s daily social meeting she seems to delight in making as much noise as possible. We all find it quite cute and entertaining, but I can’t begin to imagine what working with that &lt;em&gt;all day&lt;/em&gt; is like.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mental health is going to get worse
&lt;/h2&gt;

&lt;p&gt;Some countries have been in lockdown for a while, but for many of us this is just beginning. Today is the first official day of lockdown in NZ, though many have been practising it all week at least. We’ve likely got a long road of this head of us. A lot more stress and anxiety is coming. Uncertainty, sick loved ones you can’t visit, being stuck a long way from friends and family, cabin fever, the list goes on. It will be different sources for all of us, but it will impact all of us.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can we do to help?
&lt;/h2&gt;

&lt;p&gt;For many of us, our teams at work will be the main link to the outside world. As such we need to treat each other less like a team, and more like a community. Teams are often about achieving a goal, and their culture often focuses on how best to achieve that goal together. For most of us the workplace is usually quite separate from the rest of our lives, and so this approach can work quite well. But now our home lives and our work lives have been smooshed together with little warning, and that separation isn’t so clear.&lt;/p&gt;

&lt;p&gt;Communities are all about supporting each other through life. I was already a strong believer that companies should do as much as they can to support their employees outside of work, but now it’s vital. Not just for employers either, but as a core principal of our team culture. So what can we do?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Be flexible&lt;/strong&gt;. Live in a different time zone to your family and need to take some time during the day to talk to them? Need to play with your daughter for an hour or two to keep her in a good mental state? Need to get outside whilst it’s not raining? Go ahead. Many of us work in jobs where the exact hours we work doesn’t really matter that much. Sure we need some overlap to discuss things, but in general a culture of good asynchronous communication can allow us to work very flexibly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Be kind&lt;/strong&gt;. Kid screaming in the back of a call? Cat jumping in front of the camera? This kind of stuff is going to happen a lot over the coming months. We need to make sure it isn’t a source of stress. We need to actively reassure each other that these things aren’t a problem, just a fact of life right now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Be caring&lt;/strong&gt;. Quite simply ask each other how it’s going. Ask what you can do to help. Take a load off others when you can. This is the most important part we can play in helping our coworkers maintain a healthy mental state.&lt;/p&gt;

&lt;p&gt;In short, &lt;strong&gt;be a community&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>culture</category>
      <category>leadership</category>
      <category>community</category>
    </item>
    <item>
      <title>Tips for working remotely</title>
      <dc:creator>Matt Keen</dc:creator>
      <pubDate>Sun, 22 Mar 2020 20:25:53 +0000</pubDate>
      <link>https://dev.to/mgkeen/tips-for-working-remotely-2mek</link>
      <guid>https://dev.to/mgkeen/tips-for-working-remotely-2mek</guid>
      <description>&lt;p&gt;We’re in weird times right now. A lot of the world’s population has suddenly found themselves working remotely. I thought I’d jump on the bandwagon and write yet another post about how to work remotely. I recently worked remote for a whole year, so hopefully this is of some use to some people. These tips aren’t a holy grail. They may not help you at all, they are just what worked for me and the job I was doing at the time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips for you
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Keep a routine, but experiment with it&lt;/strong&gt;. If I had to give a singular piece of advice it’s this. For me, keeping a routine is the main way I can stay productive whilst working from home. It keeps structure to the day and puts your brain in work mode. That doesn’t mean it has to be the same as the routine you had in the office though. One of the upsides of remote work is having more time to play with in the day now that you’re not commuting. As an example, this is what I settled on when working remote:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Get up at 6.30. Shower and all that jazz.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Start work straight away. Usually at 6.45. I’m a morning person and this is my most productive time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Have breakfast at 8.30. This gives me a nice little break for 10 minutes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Work until 11. Again, this is my most productive time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;2 hour lunch&lt;/strong&gt;. Most workplaces won’t like me for this, but give it a go if you can! By 11 I had usually clocked up at least 4 hours of work. I found 2 hours at lunch was the perfect reset. Enough time to exercise, eat, maybe play a little xbox. 1 hour never seemed like enough of a rest for my brain. Due to the early start I still got 8 hours in, I just shifted time I would have spent commuting to the middle of the day.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Work 1-5. The 2 hour lunch made this time a lot more productive than it would have been otherwise&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stop working, don’t let it bleed into the evening&lt;/strong&gt;. Relax. Set yourself up for the next day. Keeping a routine means not sacrificing your work time or your personal time.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Separate your work space from your living space&lt;/strong&gt;. I have a (very messy) desk in a corner of the apartment. This is my work space. It’s not in the bedroom and it’s physically separate from the living room. I found it helped kick my brain into and out of work mode when I needed to. When I was at the desk I was working, when I wasn’t I was relaxing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exercise and get out of the house&lt;/strong&gt;. When your commute is about 10 steps, you’d be surprised how little daily exercise you do. In times of quarantine this may be difficult to do, but try the best you can. It doesn’t even have to be going to the gym. I used to go to the supermarket every day, just to get in a bit of a walk. I was pretty bad at keeping it up, but sometimes I’d get into the habbit of going to the gym frequently. Those were my happier, healthier and more productive times. Remember though: &lt;strong&gt;following local health advice is more important&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep social&lt;/strong&gt;. I’m a massive introvert, but even I need some human interaction. These don’t have to be in person, but should be a video call at least. Whilst working remote, the majority of my company were on a 12 hour time difference. It was lonely to say the least. There was one other person working remote from Canada though, and our days overlapped by a few hours. At least once a week we’d sit and chat abot all sorts for 45 minutes. No particular aim to the chats, just somebody else in the company to gossip and build a friendship with. If it wasn’t for this I think we both would have had some minor mental health issues. Now we’re both working for separate startups in actual offices, but we still try and make time for this once in a while.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips for working
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Set up expectations for communication, and embrace asynchronous communication&lt;/strong&gt;. Email, slack, teams, whatever your company is using. Set up clear expectations for each form of communication. One of the advantages of remote working is having fewer distractions. If you’re not careful, chats can become an even bigger distraction than an office. Most messages don’t require an immediate reply. Set your notifications to be relatively strict, and even mute for periods of time. Only answer messages once every half hour. Whatever works for you as a team. Just make sure you have a way for people to contact you if there actually is something urgent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you do need to talk one on one, try using video chat&lt;/strong&gt;. The social aspect is what suffers when you’re a remote team. “Face to face” communication brings with it a lot more nuances than text. Tone of voice, body language. All of these help to convey messages. Restricting yourself to just text can lead to all sorts of misunderstandings. Being more social with your team also leads to better team cohesion and with that more productivity in the long run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Have a way to communicate your “status”&lt;/strong&gt;. Out to lunch? Don’t flood a chat channel with “I’m off to lunch”. Slack has a feature for setting a status emoji. That can convey all sorts of things relatively easily and lets people know your availability for communication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Have dedicated social meetings&lt;/strong&gt;. One of the things I’ve experienced before is forcing large stand ups on teams of 12+ via video conference in order to keep larger social interactions going. Personally I think this ends up giving you two things: a shit standup and a shit social interaction. Don’t try and lump meetings with a purpose and social interactions together. Manage your meetings well, and put a separate 20 minute “social chat” into your calendar each day. Then if people feel like being social they can just jump in, closer to what they would do in an office environment.&lt;/p&gt;

&lt;p&gt;Hopefully this all helps! Please comment if you have any further thoughts. I’m intrigued to see what other people do.&lt;/p&gt;

</description>
      <category>remote</category>
      <category>tips</category>
    </item>
    <item>
      <title>Lead developer at a startup: Year 1 (Part 1)</title>
      <dc:creator>Matt Keen</dc:creator>
      <pubDate>Mon, 16 Mar 2020 07:32:06 +0000</pubDate>
      <link>https://dev.to/mgkeen/lead-developer-at-a-startup-year-1-part-1-4n3i</link>
      <guid>https://dev.to/mgkeen/lead-developer-at-a-startup-year-1-part-1-4n3i</guid>
      <description>&lt;p&gt;A year ago this week, I started my job as the first tech hire of a fresh startup. They were already operating as a small services business serving clients manually, and I was tasked with coming in and starting the product offering and transitioning over to a SaaS model. It's been a full on year, with plenty of ups and downs, but more than anything an exciting journey with hopefully plenty more to come. I've decided to share that journey in chunks, and here we have the first one:&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting the scene
&lt;/h2&gt;

&lt;p&gt;I'll just set the scene a little bit first before digging into the details. The goal of the startup is to make anti-money laundering checks super simple. New Zealand recently introduced a bunch of legislation that means accountants, lawyers, and estate agents all have to get these checks done on their clients. This ranges from a simple ID check of an individual, all the way up to a complex investigation into who needs checking when the client is a complex corporate structure an accountant has set up for tax avoidance.&lt;/p&gt;

&lt;p&gt;The startup was 6 people at this point. They'd been running these checks largely manually, using a bunch of 3rd party tools to manage the processes and data. Essentially they were an outsourcing company. This wasn't going to scale, and the founders had much higher aspirations for their company. So they went out and got a tiny seed round and some free office space from an accelerator. They used the money to hire me, with budget for a second dev.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 1: Oh fuck, what do I build, what am I doing, who am I
&lt;/h2&gt;

&lt;p&gt;I think this sums up the first month or so of my job. It was the first time I had been the first person on the tools, laying the groundwork for what was to come. Imposter syndrome kicks in pretty hard for most people in that scenario I think. So I decided to focus on things I &lt;em&gt;knew&lt;/em&gt; how to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Decide on tech stack&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Put tooling in place (github, CI/CD)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hire a front end developer (definitely not my skill set, and something I didn't want to expend a lot of energy learning)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The tech stack was a relatively easy decision, at least on the back end. I was very familiar with C#, and it is super popular in Auckland. The flexibility and ease of .Net core makes it an attractive option these days. I had a rough idea of what the data was going to be like, a relational database made sense and is always a nice default, at least to start with. I was most familiar with MS SQL but PostgreSQL is free, so Postgres it was! Terraform was an obvious choice for coding infrastructure, though one I hadn't worked with before. Front end stack would be handled by whoever I hired to handle that. Easy stuff.&lt;/p&gt;

&lt;p&gt;Tooling was full of learning opportunities. It had been a while since I'd set up even a small project greenfield. I picked CircleCI for CI as it seemed popular and I liked the container centric approach. I’d end up replacing this with buildkite in the end, but it did the job for the first 6 months. Easy stuff.&lt;/p&gt;

&lt;p&gt;Then came hiring. I'd done a lot of this before, from interns through to seniors. Turns out hiring a developer to have the skills &lt;em&gt;I don't&lt;/em&gt; was HARD. I wasn't able to ask the right questions, and had to go on gut feeling and base programming principles for most of it. I lucked out to some extent though. I found someone who seemed to know their stuff and was available immediately. I had a team! Shit was getting real &lt;em&gt;FAST&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Now came the giant elephant in the room. What were we actually trying to achieve? I’d kind of fleshed this out with the founders in the interview process, but how were we going to get there?&lt;/p&gt;

&lt;p&gt;In startups we have to wear many hats, so I plopped on the product hat. I had worn this hat a little bit before, I think all senior developers &lt;em&gt;should&lt;/em&gt;, but this was different. I'd never started the product entirely from scratch before. I sat down with the people in the company who were running these manual checks and tried to figure out what they were doing and how we could help. Many of these manual processes could easily be automated, so I started investigating writing little tools to help. We also started trying to piece together a platform based on the 3rd party data sources we already had.&lt;/p&gt;

&lt;p&gt;We made some reasonable progress. Our development flow was nicely set up, and we ready to start rolling software. By this point I was about a month in. I headed off on a previously planned vacation for a week or two with a friend who was visiting NZ. Things were great, it was sunny, I was on a boat, and was starting to get over the imposter syndrome.&lt;/p&gt;

&lt;p&gt;Then came a message over slack. To keep one of our largest clients happy, we needed to produce a platform for them within the next month. The stress was about to intensify big time. And that's the story for part 2!&lt;/p&gt;

&lt;p&gt;Learnings from this period:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You're always going to make at least some bad decisions. Don't be afraid of this. If it's a decision that's easy to undo later, just go with it. If it's difficult to undo later, then spend time laying out your reasoning and be confident in your decision. It still might go wrong, but it's better to move than to stand still.&lt;/li&gt;
&lt;li&gt;Don't procrastinate on the hard tasks, focus on them. Get the unknowns out of the way first and everything becomes a bit more predictable and easy to handle.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>startup</category>
      <category>leadership</category>
    </item>
  </channel>
</rss>
