<?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: Ana Chiritescu</title>
    <description>The latest articles on DEV Community by Ana Chiritescu (@ana).</description>
    <link>https://dev.to/ana</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%2F26674%2F0c81ea78-b893-4fc4-8b62-c91d2e8c96eb.jpg</url>
      <title>DEV Community: Ana Chiritescu</title>
      <link>https://dev.to/ana</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ana"/>
    <language>en</language>
    <item>
      <title>Your favorite analogies to explain IT concepts. Let's discuss!</title>
      <dc:creator>Ana Chiritescu</dc:creator>
      <pubDate>Thu, 05 Oct 2017 19:35:41 +0000</pubDate>
      <link>https://dev.to/ana/your-favorite-analogies-to-explain-it-concepts-lets-discuss-6ck</link>
      <guid>https://dev.to/ana/your-favorite-analogies-to-explain-it-concepts-lets-discuss-6ck</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1idbw0e18ajqp15hk67.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1idbw0e18ajqp15hk67.jpg" width="552" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since my previous post on suggestions around best way to explain APIs to a non-technical audience, I gave an in-company talk on upcoming features on the technology I am currently working with (MuleSoft).&lt;/p&gt;

&lt;p&gt;The great replies received in the last post inspired me and I already started applying some of the suggestions. &lt;br&gt;
This brings me back to the fact that the easiest way to connect with your audience and have them easily understand concepts that otherwise would seem difficult to grasp is to use analogies with which they can easily relate. The discussion becomes more appealing and at the same time easier to follow. &lt;/p&gt;

&lt;p&gt;The most recent analogy I read about and also used, is related to explaining how streaming consumption works. &lt;/p&gt;

&lt;p&gt;There are two main challenges when consuming a stream: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;it can only be read once&lt;/li&gt;
&lt;li&gt;it cannot be read in parallel &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of a pint of beer, each sip you take is one sip you cannot take again. Similarly, if two people use two straws to sip from the same pint, none of them will ever drink the full pint.&lt;/p&gt;

&lt;p&gt;Do you have preferred analogies to explain complex IT concepts? Curious to hear your thoughts around this! :-)&lt;/p&gt;

</description>
      <category>analogy</category>
      <category>itconcepts</category>
      <category>discuss</category>
    </item>
    <item>
      <title>APIs for dummies. Let's discuss!</title>
      <dc:creator>Ana Chiritescu</dc:creator>
      <pubDate>Fri, 22 Sep 2017 16:04:07 +0000</pubDate>
      <link>https://dev.to/ana/it-integration-and-apis-for-dummies-any-suggestions</link>
      <guid>https://dev.to/ana/it-integration-and-apis-for-dummies-any-suggestions</guid>
      <description>&lt;p&gt;I was recently asked to be a speaker at a first meetup organized by a group of enthusiastic women that indirectly work with IT, understand that IT is becoming the core of everything we do and would like to learn more about this.&lt;/p&gt;

&lt;p&gt;My plan is to talk about IT Systems, the importance of Integration and APIs.&lt;/p&gt;

&lt;p&gt;Do you have any suggestions on how to best explain these concepts and/or talks/articles around it?&lt;/p&gt;

&lt;p&gt;Moreover, depending on the time allocated for the talk, I might also go for a lightweight demo. The programming laguage used should be something super simple and friendly for non-techincal eyes! Any ideas?&lt;/p&gt;

&lt;p&gt;Thanks a million for your comments! ðŸ˜Š&lt;/p&gt;

</description>
      <category>api</category>
      <category>discuss</category>
    </item>
    <item>
      <title>It's a fact: great teams have great leaders.</title>
      <dc:creator>Ana Chiritescu</dc:creator>
      <pubDate>Sat, 16 Sep 2017 12:08:08 +0000</pubDate>
      <link>https://dev.to/ana/its-a-fact-great-teams-have-great-leaders</link>
      <guid>https://dev.to/ana/its-a-fact-great-teams-have-great-leaders</guid>
      <description>&lt;p&gt;This week at work there have been multiple discussions around great teams and with that, about my team. This is why I decided to write some thoughts around it. &lt;/p&gt;

&lt;p&gt;I have been working in IT for almost 11 years, in 3 countries with colleagues from all over the world. This means that in a rather short time I had the luxury to learn a lot about work environments, various cultures and I also ran into multiple challenges which most probably only occur in such environments.&lt;/p&gt;

&lt;p&gt;Even more important, I had the tremendous luck to work with and have as mentors colleagues that are among the best in their field, who also enjoyed helping others grow. With this I noticed a trend: great teams, have great leaders.&lt;/p&gt;

&lt;p&gt;Short and sweet: teams are made of people, people are different, follow their own career path and go through various stages in their lives. On top of this, there is the human nature factor: some of us are more competitive than others, some would prioritize higher their own needs and success compared to team's needs and success and so on.&lt;/p&gt;

&lt;p&gt;With all these differences and challenges, there are still great teams out there.&lt;/p&gt;

&lt;p&gt;What do these teams do differently?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They respect each other.&lt;/li&gt;
&lt;li&gt;They learn to be good listeners and take into account everyone's opinion. &lt;/li&gt;
&lt;li&gt;They take responsibility for both their successes and failures.&lt;/li&gt;
&lt;li&gt;They trust each other.&lt;/li&gt;
&lt;li&gt;They believe that knowledge sharing will not make you irreplaceable, but it will help both you and the team evolve.&lt;/li&gt;
&lt;li&gt;They are not afraid to ask for help.&lt;/li&gt;
&lt;li&gt;They do not let conflicts go undiscussed, but bring these out in the open and talk it through.&lt;/li&gt;
&lt;li&gt;They regularly pause and reflect on how things are progressing and look into what should be improved next.&lt;/li&gt;
&lt;li&gt;They have good sense of humor that keeps morale up also during hard times.&lt;/li&gt;
&lt;li&gt;They are happy and supportive of a colleague's success.&lt;/li&gt;
&lt;li&gt;And they do not forget to also have fun and celebrate achievements. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Where do the team leaders fit in? They are the ones that nurture the team by encouraging the values derived from above items. &lt;/p&gt;

&lt;p&gt;And let me tell you, it can sometimes be an extremely bumpy ride and this is when you know that change is happening! :-) &lt;/p&gt;

&lt;p&gt;What do you think makes a team great?&lt;/p&gt;

&lt;p&gt;I would love to hear your thoughts and comments around this. &lt;/p&gt;

</description>
      <category>teams</category>
      <category>leadership</category>
      <category>culture</category>
    </item>
    <item>
      <title>Never underestimate the power of best practice</title>
      <dc:creator>Ana Chiritescu</dc:creator>
      <pubDate>Mon, 24 Jul 2017 21:02:50 +0000</pubDate>
      <link>https://dev.to/ana/never-underestimate-the-power-of-best-practice</link>
      <guid>https://dev.to/ana/never-underestimate-the-power-of-best-practice</guid>
      <description>&lt;p&gt;I see best practices as special recipes created after doing the same thing over and over again by mixing various ingredients in various ways until you get an outcome easily reproducible (standard) and of superior quality.   &lt;/p&gt;

&lt;p&gt;Let’s look at the following scenario of an endless loop and options to solve it by applying the right ingredients: &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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fb6s7tw4kas798rfspdf3.jpg" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fb6s7tw4kas798rfspdf3.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use case prerequisite&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The message published on the queue is invalid&lt;/li&gt;
&lt;li&gt;The exception thrown by the receiver that picked up the message for processing, is not caught in the catch block
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use case description&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A requestor publishes an invalid message to a message channel (queue). &lt;/li&gt;
&lt;li&gt;
&lt;p&gt;There is one listener / receiver to this queue, that will get the message.&lt;/p&gt;

&lt;p&gt;a) In case of a valid message, an acknowledgement (ACK) is sent back saying that it is now in safe hands. &lt;br&gt;
b) In our case the invalid message with incorrect error handling leads to an uncaught exception and a message locked “in-flight (a message awaiting ACK or NACK) until the Default Lock TTL (time-to-live) expires (for example: 2 min)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After the 2 minutes (Lock TTL), the invalid message is made visible to other receivers. In our case, the same receiver will pick up the message and resume from 2.b) &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The poisonous message will be kept on the queue for 7 days (TTL = 7 days) which gives us a nicely hidden infinite loop. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What do you do when you see that the message keeps being released on the queue and the receiver logic gets executed at a speed that only makes you happy when you are looking for fast performing systems?  You of course try to solve the puzzle...&lt;/p&gt;

&lt;p&gt;As you probably noticed from the above prerequisites there were already two major issues: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Message validation was not applied before publish to the queue&lt;/li&gt;
&lt;li&gt;Always catch ALL exceptions, no matter what! &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To err is human, hence you should always design your solution for failure. &lt;/p&gt;

&lt;p&gt;Several suggestions: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always use a Dead Letter Queue assigned to your processing queue so that the invalid messages are moved out to the Dead Letter Queue after a given number of retries. This way you at least shorten the life of the infinite loop. &lt;/li&gt;
&lt;li&gt;Setup monitoring for your application / services in relation to the non-functional requirements: do you expect a load on your queue of approx. 10 messages per minute and you end up processing 2000, then most probably this requires your attention &lt;/li&gt;
&lt;li&gt;Review your configuration settings, default is good, but custom case by case might be even better &lt;/li&gt;
&lt;li&gt;Unit test your code, including error handling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Technology used: Anypoint MQ (MuleSoft’s cloud messaging service) and MuleESB&lt;/p&gt;

</description>
      <category>lessonslearned</category>
      <category>messaging</category>
      <category>infiniteloop</category>
    </item>
    <item>
      <title>Hi, I'm Ana.</title>
      <dc:creator>Ana Chiritescu</dc:creator>
      <pubDate>Wed, 19 Jul 2017 17:23:32 +0000</pubDate>
      <link>https://dev.to/ana/hi-im-ana</link>
      <guid>https://dev.to/ana/hi-im-ana</guid>
      <description>&lt;p&gt;I have been working in IT for 10 years, started as a Java coder and gradually specialized in IT integration while working with webMethods and Oracle SOA 11G (not so much coding, more visual development). &lt;/p&gt;

&lt;p&gt;2 years ago I began working with MuleSoft and that reopened my appetite for coding. &lt;/p&gt;

&lt;p&gt;I am curious by nature and I like to keep myself busy by always learning new things. I am a strong believer that the best way to develop is to share your knowledge with the others whenever you see the opportunity. &lt;/p&gt;

&lt;p&gt;By joining this community I hope I will be able to both contribute with useful information from my own "lessons learned" and also keep-on learning! :) &lt;/p&gt;

&lt;p&gt;Topics of special interest:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MuleSoft&lt;/li&gt;
&lt;li&gt;Java, Spring, Groovy &lt;/li&gt;
&lt;li&gt;Integration Architecture, Solution Design&lt;/li&gt;
&lt;li&gt;APIs&lt;/li&gt;
&lt;li&gt;Continuous Delivery &lt;/li&gt;
&lt;li&gt;git &lt;/li&gt;
&lt;li&gt;node.js&lt;/li&gt;
&lt;li&gt;Agile, Processes, Leadership&lt;/li&gt;
&lt;li&gt;Innovation &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can find me on Twitter as &lt;a href="https://twitter.com/anachiritescu" rel="noopener noreferrer"&gt;@anachiritescu&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nice to meet you all! :) &lt;/p&gt;

</description>
      <category>introduction</category>
    </item>
  </channel>
</rss>
