<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rafael Dohms</title>
	<atom:link href="https://blog.doh.ms/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.doh.ms</link>
	<description>Web Engineer</description>
	<lastBuildDate>Fri, 18 Oct 2019 12:28:51 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>
	<item>
		<title>Productive Slacking</title>
		<link>https://blog.doh.ms/2019/10/18/productive-slacking/</link>
		
		<dc:creator><![CDATA[Rafael Dohms]]></dc:creator>
		<pubDate>Fri, 18 Oct 2019 12:28:50 +0000</pubDate>
				<category><![CDATA[Software / Systems]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[slack]]></category>
		<category><![CDATA[tips and tricks]]></category>
		<guid isPermaLink="false">https://blog.doh.ms/?p=67240</guid>

					<description><![CDATA[<p>Back in 2016 I joined Usabilla, just around the time we were evaluating our work chat solutions. Usabilla was at the time on Hipchat and Slack was the up and coming solution, with plenty of advanced features and goodies. I will not try to sell Slack here, but it clearly was the better contender and worth our move. In order to make the move a success, in a company that still relied heavily on an email tradition, we spent some time carefully evaluating our policies around Slack usage, to make it friendly to non-tech users and also efficient for a rapidly growing team doing frequent on-boardings. After almost 3 years and the opportunity to see how other companies use Slack &#8220;in the wild&#8221;, I decided to reflect a bit on how this went, spoiler alert it was a resounding success, and outline some of the policies I believe made a real difference and can help your company get a handle on Slack. You are here: helping users find themselves One very overwhelming part of joining a new company is getting access to their Slack. Which channels do you join, what is relevant to your position or to your physical office or even what is business and what is social? When joining a company and seeing dozens, if not hundreds, of public channels, how do you figure this out? and how can you do it quicker One of the first agreements we settled on was the use of channel prefixes. Simple, short prefixes that allowed us to easily categorize channels and make them easier to navigate. Are you a new developer? easy, check out all the #dev-* channels to find your interests, maybe its #dev-edu to learn new stuff, or #dev-be-chapter to join our backend chapter group. Or maybe you are new to our Amsterdam office so you can join #office-ams. Obviously once you are done with work you can head over to #ot-travel to get some sweet tips on that new city you want to travel to, or just relax watching awesome dog pics at #ot-dogs. Adding prefixes, does indeed take some of your character limit away (Slack just upped the limit so that excuse is gone), but makes for a great and easy way to ease your new users, and existing ones, into your communication infrastructure. During the on-boarding of new employees, we share a list of our most relevant prefixes and their meaning so users can quickly skip over to what they are looking for. Here are some examples: dev- all channels related to development ot- channels that are Off Topic, usually social and not business team- channels specific to a team, this also signals this is not a channel for non-team members to ask questions warn- channels related to status and warnings, from infrastructure to dev to other parts of the company prj- short lived channels for projects that need new groups of people to collaborate Combine prefixed channel names with meaningful &#8220;Channel Purpose&#8221; and &#8220;Topic&#8221; and you can really help people navigate and find what they need at the moment they need it. Dashing and visible At first look dashes seem like a waste of time and char-space right? But they actually play a real important role in discoverability of channels. Let me illustrate: let&#8217;s say you have a #hashtagdogsrule and a #hashtag-dogs-rule channel. When you search for dogs in the quick switcher, only the one with with dashes will show up, because Slack does prefix/word based searching. Do it in the open: because transparency matters We limit the creation of private channels, sure these are great for conversations between certain groups of people, but a private first culture can hinder your companies entire communication flow and make Slack a literal black hole of information. Of course there are exceptions, HR related channels, or our surprise party planning committee, or even sensitive projects, like acquisitions. But other then those cases, everything is done in public channels. Public information is extremely valuable, by allowing people access to what is happening you create serendipitous opportunities for collaboration. Maybe a developer sees someone in a Customer Success team is trying to automate a process and they have the skill to help out, or you notice another development team is stuck on a similar problem to the one you just solved. Maybe even you notice sales is trying to approach a company where you know the right people. If all of this happens behind closed doors, you may never find the opportunity to collaborate. Some channels are special, for example our #team- channels. You are more than welcome to join a team&#8217;s channel as an outsider, but you are there as a guest, an observer, preferably a silent one. For example instead of asking questions and interrupting ongoing conversations, you can reply to messages where you can offer help by using threads, these are less intrusive and still allow you to access the context in which to ask or offer help. We also make it very clear that this is the team&#8217;s house and they can ask you to leave at any moment for whichever reason they believe is relevant. Slack-tiquette: it&#8217;s a new world, let&#8217;s make new rules Let&#8217;s start with a simple one: you are beautiful and your avatar deserves to represent you. None of us look like colored blocks in real life and Slack is a tool for uniting people who may work in separate offices or in big companies, having a complete profile with a proper avatar, title, information such as timezone will help your co-workers talk to you, identify you and create a stronger bond, so put your best face forward. Slack is a tool made to speed up the usual flow of email conversations, and it&#8217;s asynchronous, meaning you can ask a question now and get an answer when the person is available. You would not send an email with &#8220;how are you?&#8221; and only follow it up once you got an answer to that, same goes for Slack, its not rude to start off with your enquiry, it&#8217;s actually way more productive to both sides. Of course you can always ask that question as well, but don&#8217;t wait for a response before carrying on with the communication. Especially for people spread out in different timezones this becomes really important. Pinning is winning. Humans hate answering questions over and over, and pinning can really help with that, make sure your important resources are pinned to your channels so they are easy to find and reference, and you no longer need to repeat yourself over and over. The Steering Committee Have you ever asked a company who is in charge of Slack? Now I don&#8217;t just mean who is Admin and can install apps or add people, who is guiding the formation of your slack? I&#8217;m betting the answer will be &#8220;no one&#8221; or &#8220;I don&#8217;t know&#8221;, another solution we established early was a Slack Steering Committee. A group of people from various areas that could guide the usage and build up of Slack within the company. I believe its always useful to have a group of people who can pull back points outside the curve, or evolve the ruleset as new requirements arise. Happy Slacking I hope this brings you some inspiration and makes your Slacking a better experience, but I will warn you, caring about all this may make you open pandora&#8217;s box and you will never be able to stop cringing when you look at another Slack.</p>
<p>The post <a href="https://blog.doh.ms/2019/10/18/productive-slacking/">Productive Slacking</a> first appeared on <a href="https://blog.doh.ms">Rafael Dohms</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Back in 2016 I joined Usabilla, just around the time we were evaluating our work chat solutions. Usabilla was at the time on Hipchat and Slack was the up and coming solution, with plenty of advanced features and goodies. I will not try to sell Slack here, but it clearly was the better contender and worth our move.</p>



<p>In order to make the move a success, in a company that still relied heavily on an email tradition, we spent some time carefully evaluating our policies around Slack usage, to make it friendly to non-tech users and also efficient for a rapidly growing team doing frequent on-boardings.</p>



<p>After almost 3 years and the opportunity to see how other companies use Slack &#8220;in the wild&#8221;, I decided to reflect a bit on how this went, spoiler alert it was a resounding success, and outline some of the policies I believe made a real difference and can help your company get a handle on Slack.</p>



<h2 class="wp-block-heading"><strong>You are here: helping users find themselves</strong></h2>



<p>One very overwhelming part of joining a new company is getting access to their Slack. Which channels do you join, what is relevant to your position or to your physical office or even what is business and what is social? When joining a company and seeing dozens, if not hundreds, of public channels, how do you figure this out? and how can you do it quicker</p>



<p>One of the first agreements we settled on was the use of channel prefixes. Simple, short prefixes that allowed us to easily categorize channels and make them easier to navigate. Are you a new developer? easy, check out all the <code>#dev-*</code> channels to find your interests, maybe its <code>#dev-edu </code>to learn new stuff, or <code>#dev-be-chapter</code> to join our backend chapter group.</p>



<p>Or maybe you are new to our Amsterdam office so you can join <code>#office-ams</code>. Obviously once you are done with work you can head over to <code>#ot-travel</code> to get some sweet tips on that new city you want to travel to, or just relax watching awesome dog pics at <code>#ot-dogs</code>.</p>



<p>Adding prefixes, does indeed take some of your character limit away (Slack just upped the limit so that excuse is gone), but makes for a great and easy way to ease your new users, and existing ones, into your communication infrastructure. During the on-boarding of new employees, we share a list of our most relevant prefixes and their meaning so users can quickly skip over to what they are looking for. Here are some examples:</p>



<ul><li><code>dev-</code> all channels related to development</li><li><code>ot-</code> channels that are Off Topic, usually social and not business</li><li><code>team-</code> channels specific to a team, this also signals this is not a channel for non-team members to ask questions</li><li><code>warn-</code> channels related to status and warnings, from infrastructure to dev to other parts of the company</li><li><code>prj-</code> short lived channels for projects that need new groups of people to collaborate</li></ul>



<p>Combine prefixed channel names with meaningful &#8220;Channel Purpose&#8221; and &#8220;Topic&#8221; and you can really help people navigate and find what they need at the moment they need it.</p>



<h3 class="wp-block-heading"><strong>Dashing and visible</strong></h3>



<p>At first look dashes seem like a waste of time and char-space right? But they actually play a real important role in discoverability of channels. Let me illustrate: let&#8217;s say you have a <code>#hashtagdogsrule</code> and a <code>#hashtag-dogs-rule</code> channel. When you search for <code>dogs</code> in the quick switcher, only the one with with dashes will show up, because Slack does prefix/word based searching.</p>



<h2 class="wp-block-heading"><strong>Do it in the open: because transparency matters</strong></h2>



<p>We limit the creation of private channels, sure these are great for conversations between certain groups of people, but a private first culture can hinder your companies entire communication flow and make Slack a literal black hole of information. Of course there are exceptions, HR related channels, or our surprise party planning committee, or even sensitive projects, like acquisitions. But other then those cases, everything is done in public channels.</p>



<p>Public information is extremely valuable, by allowing people access to what is happening you create serendipitous opportunities for collaboration. Maybe a developer sees someone in a Customer Success team is trying to automate a process and they have the skill to help out, or you notice another development team is stuck on a similar problem to the one you just solved. Maybe even you notice sales is trying to approach a company where you know the right people. If all of this happens behind closed doors, you may never find the opportunity to collaborate.</p>



<p>Some channels are special, for example our <code>#team-</code> channels. You are more than welcome to join a team&#8217;s channel as an outsider, but you are there as a guest, an observer, preferably a silent one. For example instead of asking questions and interrupting ongoing conversations, you can reply to messages where you can offer help by using threads, these are less intrusive and still allow you to access the context in which to ask or offer help. We also make it very clear that this is the team&#8217;s house and they can ask you to leave at any moment for whichever reason they believe is relevant.</p>



<h2 class="wp-block-heading"><strong>Slack-tiquette: it&#8217;s a new world, let&#8217;s make new rules</strong></h2>



<p>Let&#8217;s start with a simple one: you are beautiful and your <strong><em>avatar</em></strong> deserves to represent you. None of us look like colored blocks in real life and Slack is a tool for uniting people who may work in separate offices or in big companies, having a complete profile with a proper avatar, title, information such as timezone will help your co-workers talk to you, identify you and create a stronger bond, so put your best face forward.</p>



<p>Slack is a tool made to speed up the usual flow of email conversations, and it&#8217;s <strong><em>asynchronous</em></strong>, meaning you can ask a question now and get an answer when the person is available. You would not send an email with &#8220;how are you?&#8221; and only follow it up once you got an answer to that, same goes for Slack, its not rude to start off with your enquiry, it&#8217;s actually way more productive to both sides. Of course you can always ask that question as well, but don&#8217;t wait for a response before carrying on with the communication. Especially for people spread out in different timezones this becomes really important.</p>



<p><strong><em>Pinning is winning.</em></strong> Humans hate answering questions over and over, and pinning can really help with that, make sure your important resources are pinned to your channels so they are easy to find and reference, and you no longer need to repeat yourself over and over.</p>



<h2 class="wp-block-heading"><strong>The Steering Committee</strong></h2>



<p>Have you ever asked a company who is in charge of Slack? Now I don&#8217;t just mean who is Admin and can install apps or add people, who is guiding the formation of your slack? I&#8217;m betting the answer will be &#8220;no one&#8221; or &#8220;I don&#8217;t know&#8221;, another solution we established early was a Slack Steering Committee. A group of people from various areas that could guide the usage and build up of Slack within the company. I believe its always useful to have a group of people who can pull back points outside the curve, or evolve the ruleset as new requirements arise.</p>



<h2 class="wp-block-heading"><strong>Happy Slacking</strong></h2>



<p>I hope this brings you some inspiration and makes your Slacking a better experience, but I will warn you, caring about all this may make you open pandora&#8217;s box and you will never be able to stop cringing when you look at another Slack.</p><p>The post <a href="https://blog.doh.ms/2019/10/18/productive-slacking/">Productive Slacking</a> first appeared on <a href="https://blog.doh.ms">Rafael Dohms</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Solving conflicts in composer.lock</title>
		<link>https://blog.doh.ms/2016/11/28/solving-conflicts-in-composer-lock/</link>
		
		<dc:creator><![CDATA[Rafael Dohms]]></dc:creator>
		<pubDate>Mon, 28 Nov 2016 09:53:59 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[composer]]></category>
		<category><![CDATA[composer.lock]]></category>
		<category><![CDATA[composerphp]]></category>
		<category><![CDATA[tips]]></category>
		<guid isPermaLink="false">http://blog.doh.ms/?p=6505</guid>

					<description><![CDATA[<p>We have all been there: CONFLICT (content): Merge conflict in composer.lock Automatic merge failed; fix conflicts and then commit the result. Don&#8217;t panic, breathe, let&#8217;s walk through this. Since I joined Usabilla, I have been working once more in a large team. With more people involved in the process of working with composer, adding, updating [&#8230;]</p>
<p>The post <a href="https://blog.doh.ms/2016/11/28/solving-conflicts-in-composer-lock/">Solving conflicts in composer.lock</a> first appeared on <a href="https://blog.doh.ms">Rafael Dohms</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>We have all been there:</p>
<pre class="brush: plain; title: ; notranslate">
CONFLICT (content): Merge conflict in composer.lock
Automatic merge failed; fix conflicts and then commit the result.
</pre>
<p>Don&#8217;t panic, breathe, let&#8217;s walk through this.</p>
<p>Since I joined Usabilla, I have been working once more in a large team. With more people involved in the process of working with composer, adding, updating and removing libraries, merge conflicts are bound to happen. Ideally I would tell you to leave that process to only one person, but that is not realistic in teams over, well, one person. <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>So it will happen, but how do we keep our sanity?</p>
<h2>What I AVOID doing.</h2>
<p>While reading other blog posts on this I found a practice that I consider not ideal. In most blogposts the first step towards fixing the conflict is usually:</p>
<pre class="brush: plain; title: ; notranslate">
$ git merge --ours composer.lock
</pre>
<p>What does this do? this will impose <em>your</em> version of the lock file, which seems fine, but has a catch. The catch here is that by ignoring the remote lock file you are discarding any updates done by the other developer.</p>
<p><strong>&#8220;but Rafael, semantic version is great nothing will break cause my json file has ^1.2&#8221;</strong>, I agree, but as a policy I try to make sure our updates are conscious, just for good measure. Also I feel its good to respect the work of other people in your team and not discard those changes unless really required to.</p>
<h2>What I DO do.</h2>
<p>Its a simple switch around.</p>
<p>First I get the other developers changes:</p>
<pre class="brush: plain; title: ; notranslate">
$ git checkout origin/{base} -- composer.lock composer.json
</pre>
<p>Then you replay your changes on top of this, like:</p>
<pre class="brush: plain; title: ; notranslate">
$ composer require {new/package} --update-with-dependencies
$ composer update {existing/package}
</pre>
<p>You should know exactly what changes you made, so this should be no problem. Now you have kept all non-conflicting changes and updates from the other developer and applied your changes on top of it and the state of your dependencies is predictable and stable.</p>
<p>Oh, and you obviously run that great test suite after doing this, right?</p><p>The post <a href="https://blog.doh.ms/2016/11/28/solving-conflicts-in-composer-lock/">Solving conflicts in composer.lock</a> first appeared on <a href="https://blog.doh.ms">Rafael Dohms</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Land ho! New challenge ahead.</title>
		<link>https://blog.doh.ms/2016/06/30/land-ho-new-challenge-ahead/</link>
		
		<dc:creator><![CDATA[Rafael Dohms]]></dc:creator>
		<pubDate>Thu, 30 Jun 2016 08:16:16 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">http://blog.doh.ms/?p=6469</guid>

					<description><![CDATA[<p>A few months ago I posted about the situation at my former company and the uncertain future of our team. During these 3 months we explored many new opportunities and interviewed with many companies, from startups to consolidated giants, from financial market to education and user feedback, it was an amazing journey. This journey is [&#8230;]</p>
<p>The post <a href="https://blog.doh.ms/2016/06/30/land-ho-new-challenge-ahead/">Land ho! New challenge ahead.</a> first appeared on <a href="https://blog.doh.ms">Rafael Dohms</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>A few months ago I posted about the situation at my former company and the uncertain future of our team. During these 3 months we explored many new opportunities and interviewed with many companies, from startups to consolidated giants, from financial market to education and user feedback, it was an amazing journey.</p>
<p>This journey is now over and I have found my new challenge, but more on that in a bit. Let me tell you a bit more about the journey.</p>
<h2>Interviewing as a team</h2>
<p>Few months ago Stripe <a href="https://stripe.com/blog/bring-your-own-team">posted an article</a> about hiring teams and the benefits of that, I would like to also mention the benefits of <em>interviewing as a team</em>.</p>
<p>Our team went to many interviews as a full team, either together in big meetings or as individuals. The interesting aspect of this is that since we were a diverse group of people with many different roles, we analyzed companies from various angles, some of which I, in my interviewing experience, may never have thought to look into.</p>
<p>This made for a very fulfilling and unique experience, I got a lot more insights into companies than ever before. How does the business decide on features, how is UX looked after outside of screens, how do you make money and down to our usual questions of code/infrastructure.</p>
<p>If you ever get a chance to coordinate as a group and exchange notes on interviews, I do recommend doing so.</p>
<h2>What&#8217;s next?</h2>
<p>I&#8217;m happy to announce my next challenge, not just because I&#8217;m very excited to join the company and add to the great work they already do, but also because I was lucky enough to bring <a href="https://twitter.com/rickmb">Rick Buitenman</a>, my former manager, and <a href="https://twitter.com/vanamerongen">Pauline Vos</a>, my former &#8220;mentee&#8221;, along for the ride.</p>
<p>As of the first of July we will all be part of the <a href="http://usabilla.com">Usabilla</a> family!</p>
<p>Usabilla is a big player in the Dutch tech scene, a company built on the belief that continuous user feedback is the key to successful products. Their focus is on providing &#8220;Voice of Customer&#8221; solutions to help their more than 20K clients improve their user experience, conversions and boost customer satisfaction.</p>
<p>If you have ever used websites like ABN AMRO, KLM, HP, Philips, Vodafone and countless others, you may have noticed a feedback button, that is one of the many tools Usabilla provides.</p>
<p>I&#8217;ll be joining them as Lead Backend Engineer, where I&#8217;ll be able to focus on my 3 personal passions: coding/architecture, development work flow and growing/mentoring developers. Together we hope to take the platform to new levels of architecture, quality and performance.</p>
<p>Apart from coding, I&#8217;ll be working with the development team to take our development practices to even higher levels and make sure we are all learning and growing all the time. I love teaching and exposing people to more knowledge so this should feel right at home for me.</p>
<p>I&#8217;m also looking forward to learning from a entire new set of great developers as well as also getting a chance to expand into Golang which is in line with my own personal goals for this year.</p>
<p>I&#8217;m very excited to dive into the company and see how I can contribute to a great business and an amazing team.</p><p>The post <a href="https://blog.doh.ms/2016/06/30/land-ho-new-challenge-ahead/">Land ho! New challenge ahead.</a> first appeared on <a href="https://blog.doh.ms">Rafael Dohms</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Code Reviews &#8211; Not just a quality tool</title>
		<link>https://blog.doh.ms/2016/05/17/code-reviews-not-just-a-quality-tool/</link>
		
		<dc:creator><![CDATA[Rafael Dohms]]></dc:creator>
		<pubDate>Tue, 17 May 2016 07:52:27 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[code review]]></category>
		<category><![CDATA[development cycle]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[team lead]]></category>
		<category><![CDATA[workflow]]></category>
		<guid isPermaLink="false">http://blog.doh.ms/?p=6445</guid>

					<description><![CDATA[<p>I&#8217;m a big fan of Code Reviews, or Peer Reviews, within the work flow of a team. But many times when talking about them people refer to them mostly as a tool to avoid bugs, improve quality or the overlooking of details. While these things do surely come out of having a review process, I [&#8230;]</p>
<p>The post <a href="https://blog.doh.ms/2016/05/17/code-reviews-not-just-a-quality-tool/">Code Reviews – Not just a quality tool</a> first appeared on <a href="https://blog.doh.ms">Rafael Dohms</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>I&#8217;m a big fan of Code Reviews, or Peer Reviews, within the work flow of a team. But many times when talking about them people refer to them mostly as a tool to avoid bugs, improve quality or the overlooking of details. While these things do surely come out of having a review process, I do not believe they are the real reason why they are a good thing for teams.</p>
<p>Code Reviews, to me, are about getting the team in sync. They are about making sure the team&#8217;s <em>core values</em> are spread throughout the team and observed. I&#8217;m not talking about Coding Standards, those can be enforced and checked with automated tools, I&#8217;m more concerned about architecture, code simplicity and conventions, things that are not measurable to some extent and more about making sure code reflects the core values you have.</p>
<p>In my previous team I made sure to on-board every developer by having them read up on <a href="http://protalk.me/your-code-sucks-lets-fix-it">Object Calisthenics</a>, a practice that helps code awareness and promotes simplicity. This practice cannot be enforced by automated testing like coding standards, and this is where I believe Code Reviews have a role to play. While having your code reviewed and then reviewing other people&#8217;s code, you are exposed more and more to these aspects, and both of those parts are equally important.</p>
<p>During our on-boarding process the first thing developers are exposed to is reviews by the team lead. In our case we were expanding from a one man team, so the team lead held the <em>core values</em>, what we believed good code should look like. The first few weeks were about expressing this and showing, by example, to the team. This is where you can show what your thinking would be to solve these problems in alternate ways. For this step its very important that both sides keep an open mind, because at this point you are building the new core values, which the team will believe in, this means no one is right.</p>
<p>Now, only having your code reviewed and criticized is not a learning experience, the real learning happens when you start reviewing other people&#8217;s code. This is where you have to start internalizing the agreed values and projecting them on other people&#8217;s code. In our process I noticed that some developers were focused on large tasks and some on short tasks, the ones on longer tasks took more time to integrate into this, due to the long feedback loop. I recommend you try to make sure new developers have a balance of short/long tasks so they are not out of the feedback loop.</p>
<p>After a few months of our team expansion we noticed that the comments made on each other&#8217;s code were a lot more standardized, especially to me, the team lead. I noticed that by the time I came in to make a comment, another team member had already made it. This was a good sign that the core values were being spread.</p>
<p>One thing to note is that when a big change happens in the team, here we went from 2 devs to 5, it is important to <strong>re-build</strong> core values together, not simply impose them. We had many team meetings to discuss code together in order to evaluate if our values were indeed useful and made sense. The practice of &#8220;code burns&#8221; is great for this. Code Burns are nothing more then team code reviews where you can make comments and discuss as a team about each point.</p>
<p>If you are trying to implement a Code Review process or if one is being implemented in your team, be sure to keep this in mind, its not about having your code criticized by someone else, its about helping everyone be on the same page about what the team believes is good code.</p>
<p><em>Looking for someone to do this in your company? I&#8217;m currently <a href="http://blog.doh.ms/2016/04/05/need-a-lead-heres-my-story/">looking for new challenges</a></em></p><p>The post <a href="https://blog.doh.ms/2016/05/17/code-reviews-not-just-a-quality-tool/">Code Reviews – Not just a quality tool</a> first appeared on <a href="https://blog.doh.ms">Rafael Dohms</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Need a Lead? Here&#8217;s my story.</title>
		<link>https://blog.doh.ms/2016/04/05/need-a-lead-heres-my-story/</link>
		
		<dc:creator><![CDATA[Rafael Dohms]]></dc:creator>
		<pubDate>Tue, 05 Apr 2016 09:34:22 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[hire me]]></category>
		<category><![CDATA[hire my team]]></category>
		<category><![CDATA[opportunity]]></category>
		<guid isPermaLink="false">http://blog.doh.ms/?p=6418</guid>

					<description><![CDATA[<p>After 2,5 years working with Symbid, our paths must now diverge. After having contributed as a partner company and then joined to build the in-house development team that would later form the base of Symbid&#8217;s Product Development team, and finally push it over into a fintech company, sadly we part ways before achieving our long [&#8230;]</p>
<p>The post <a href="https://blog.doh.ms/2016/04/05/need-a-lead-heres-my-story/">Need a Lead? Here’s my story.</a> first appeared on <a href="https://blog.doh.ms">Rafael Dohms</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>After 2,5 years working with Symbid, our paths must now diverge. After having contributed as a partner company and then joined to build the in-house development team that would later form the base of Symbid&#8217;s Product Development team, and finally push it over into a fintech company, sadly we part ways before achieving our long dreamed and much schemed plans.</p>
<p>As is the lifetime of disruptive startups, sometimes there&#8217;s a will and a way but not enough resources to make the plan into concrete products. This is, from a 10,000 foot view and as much as I can share, the outcome of our hard work at Symbid. We achieved amazing things and built an extraordinary team over these years but were cut short of rolling out most of the exciting developments.</p>
<p>So as of today, <strong>I&#8217;m available to help other companies build amazing teams and release cool new products</strong>. If your company is in need of a Technical Lead with experience in many markets and a passion for growing teams and producing quality software, please drop by my <a href="https://nl.linkedin.com/in/rafaeldohms">LinkedIn profile</a> to see more details, or email me at jobs@doh.ms, and let&#8217;s chat about how I can help your company and your team achieve both.</p>
<p>But that is not all, our unique situation also allows me to suggest even more. Many companies are in the process of hiring and building new teams, we all know that this takes effort and time, to get a team in sync and working like a well oiled machine. If this is where your company is at, <strong>I can offer you a chance to talk to our entire team</strong>, a complete team from backend and frontend developers to UX Experts, Product Owners, and Product Managers. If you want to kickstart your in-house team, we can offer you a fully integrated team that is ready to start building your visions and get your plans off paper. Please also reach out to me at jobs@doh.ms if this sounds like an opportunity for you.</p>
<h2>What did I do at Symbid?</h2>
<p>At Symbid I operated as the Technical Lead Developer. From my early days as &#8220;developer #1&#8221; my work revolved around converting business value into software feature, determining the best architecture and technologies to achieve goals and integrating our many partner systems. As we expanded into a Product Development team I also took on the responsibility of managing the developers, defining work practices, creating tooling to support our flow and team, as well as mentoring and guiding developers to achieve more of their potential. Over the last year I also had the chance to design a microservices infrastructure that would join all pieces of Symbid&#8217;s &#8220;Funding Network&#8221; and partner software, as well as migrate all our code to PHP 7.</p>
<p>I&#8217;m a lover of innovative and clean code, bringing many new ideas to our code base with concepts of DDD, TDD and strategies like CQRS and Command Buses, as well as many other technology and concepts currently under research and evaluation. I&#8217;m also a mentor and teacher at heart, so I love being able to bring some of what I do at AmsterdamPHP into the workplace, mentoring and growing our developers, pushing them towards leveling up their code as well as exposing them to the concept of community which I&#8217;m quite fond of.</p>
<h2>What am I looking for?</h2>
<p>I love building products, especially long running products that have a vision that aims at making the world a better place. Sounds corny but I love being able to leave a mark in the future of society through my tool set of technology. I also love iterations, being able to refine software over longer periods, redesign, refactor and improve constantly, which is why I love long running products and not the quick turn around of the web agency style of work.</p>
<p>This is also where I feel my skills are of more use. Companies that are involved in the local community and giving back to OSS get a big bag of bonus points. I do enjoy running UGs and spreading technology at various conferences, as a speaker or attendee, so I do expect my company to see the value in that and support my efforts. Give me that much and I&#8217;ll spread the love to every person I see and make sure I&#8217;m bringing back to the company as much ideas and knowledge as I can to take us even further.</p>
<p>I love leading teams technically and building/planning systems to solve the problems your company is aiming at. If possible I prefer focusing on the tech side of things and not so much on the HR part of that, I&#8217;ll mentor and help developers plan their careers, but I&#8217;m not so good at managing their vacation days.</p>
<p>If any of this, sounds like what your company needs please tell me about your vision and your needs, I would love to be a piece in that puzzle.</p>
<p>Above all of this, the team we have built at Symbid is close to my heart and we are all out there looking for a new challenge, any chance I have to keep them together will be the best outcome I can imagine.</p>
<p>Look me up on Linkedin: <a href="https://nl.linkedin.com/in/rafaeldohms">https://nl.linkedin.com/in/rafaeldohms</a><br />
Email me at: <a href="mailto:jobs@doh.ms">jobs@doh.ms</a></p><p>The post <a href="https://blog.doh.ms/2016/04/05/need-a-lead-heres-my-story/">Need a Lead? Here’s my story.</a> first appeared on <a href="https://blog.doh.ms">Rafael Dohms</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/


Served from: blog.doh.ms @ 2024-03-24 12:02:15 by W3 Total Cache
-->