{"id":1823,"date":"2015-06-14T13:00:20","date_gmt":"2015-06-14T13:00:20","guid":{"rendered":"http:\/\/www.nikola-breznjak.com\/blog\/?p=1823"},"modified":"2015-08-01T18:44:43","modified_gmt":"2015-08-01T18:44:43","slug":"infobip-dev-days-2015","status":"publish","type":"post","link":"https:\/\/nikola-breznjak.com\/blog\/miscellaneou\/infobip-dev-days-2015\/","title":{"rendered":"Infobip Dev Days 2015"},"content":{"rendered":"<p>Here are my notes from an awesome 4th Infobip Dev Days 2015 conference:<\/p>\n<p>[toc]<\/p>\n<h4>Introduction<\/h4>\n<ul>\n<li>Presenter: Izabel Jeleni\u0107, Co-founder, CTO<\/li>\n<li><a href=\"http:\/\/www.infobip.com\/\">infobip<\/a>\u00a0&#8211; 600+ employees (122 devs)<\/li>\n<li>Worldwide A2P SMS traffic is expected to grow. Revenue &gt; 45bn.<\/li>\n<li>They handle <strong>150M<\/strong> transactions daily.<\/li>\n<li>They said they&#8217;re doing business with &#8220;one big social&#8221; network, but they didn&#8217;t name it actually, I wonder why is that (<em>some kind of NDA or what? \ud83d\ude42<\/em>)<\/li>\n<li>Picture time:<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_intro.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1824\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_intro.jpg\" alt=\"infobip_intro\" width=\"600\" height=\"450\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_intro.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_intro-300x225.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<\/ul>\n<h4>How we ended up doing continuous delivery<\/h4>\n<ul>\n<li>Presenter: Mario \u017dagar, Senior Software Architect<\/li>\n<li>ASAP and as often we have to go into production<\/li>\n<li>Unit &amp; integration tests<\/li>\n<li><a href=\"http:\/\/microservices.io\/articles\/scalecube.html\">Scaling cube<\/a><\/li>\n<li>First they scaled by increasing monoliths<\/li>\n<li>Then they took some parts out of the monolith (API, Billing, Inbound SMS, &#8230;) =&gt; easier to focus, possible to deploy independently<\/li>\n<li>Typical feature deployment today:\n<ul>\n<li>Short lived feature branches with Git<\/li>\n<li>Develop &amp; run tests locally<\/li>\n<li>Push feature branch to remote repository (<a href=\"https:\/\/www.atlassian.com\/software\/stash\">Stash<\/a>)<\/li>\n<li>Jenkins &#8211; CI server builds the feature branch<\/li>\n<li>Deployment artifacts published to Infobip repository (<a href=\"http:\/\/www.jfrog.com\/open-source\/#os-arti\">Artifactory<\/a>)<\/li>\n<li>Deploy feature branch to integration environment<\/li>\n<li>Run tests on integration environment<\/li>\n<li>Merge pull request to master branch &amp; release<\/li>\n<\/ul>\n<\/li>\n<li>Average about <strong>80 deploys per day<\/strong><\/li>\n<li>DevOps culture &#8211; you built it, you deploy it, you support it<\/li>\n<li>Troubleshooting tools:\n<ul>\n<li><a href=\"https:\/\/www.graylog.org\/\">Graylog<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/graphite-project\/graphite-web\">Graphite<\/a><\/li>\n<li><a href=\"http:\/\/grafana.org\/\">Grafana<\/a><\/li>\n<li><a href=\"https:\/\/www.nagios.org\/\">Nagios<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/scobal\/seyren\">Seyren<\/a><\/li>\n<li><a href=\"https:\/\/www.hipchat.com\/\">HipChat<\/a><\/li>\n<li><a href=\"http:\/\/www.ansible.com\/home\">Ansible<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Picture time:<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_ci_intro.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1827\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_ci_intro.jpg\" alt=\"infobip_ci_intro\" width=\"600\" height=\"450\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_ci_intro.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_ci_intro-300x225.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<li>And a few more here, since, well, you know <a href=\"https:\/\/hackhands.com\/how-to-get-started-on-the-mean-stack\/\">I love MEMEs<\/a>:<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_ci_deploy.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1825\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_ci_deploy.jpg\" alt=\"infobip_ci_deploy\" width=\"600\" height=\"360\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_ci_deploy.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_ci_deploy-300x180.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><br \/>\n<\/a><a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_ci_devops.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1826\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_ci_devops.jpg\" alt=\"infobip_ci_devops\" width=\"600\" height=\"309\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_ci_devops.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_ci_devops-300x155.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<\/ul>\n<h4>Scrum experience<\/h4>\n<ul>\n<li>Presenter: Marko Stipanov, Product Owner<\/li>\n<li>How to increase productivity?\n<ul>\n<li>hiring more devs?<\/li>\n<li>best is to hire someone new and give them some totally new project<\/li>\n<\/ul>\n<\/li>\n<li><strong>PDD &#8211; Panic Driven Development<\/strong>\n<ul>\n<li>the bigger the panic the greater priority<\/li>\n<li><em>how relates to this, please hands up\u00a0<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/hand_rock_n_roll.png\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1736\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/hand_rock_n_roll.png\" alt=\"hand_rock_n_roll\" width=\"32\" height=\"32\" \/><\/a><\/em><\/li>\n<\/ul>\n<\/li>\n<li>they tried with daily report writing<\/li>\n<li><a href=\"http:\/\/agilemanifesto.org\/\">Agile process manifesto<\/a><\/li>\n<li>they divided their 60 devs at a time to 12 teams and each team works on a small project<\/li>\n<li>Product Owner\n<ul>\n<li>vision and definition of products<\/li>\n<li>goal setting<\/li>\n<li>priority setting of the whole team<\/li>\n<li>talks to stakeholders<\/li>\n<\/ul>\n<\/li>\n<li>Scrum ceremonies\n<ul>\n<li>organisation<\/li>\n<li>iterative process<\/li>\n<\/ul>\n<\/li>\n<li>Scrum steps (they do the sprints fro 1-2 weeks instead of 2-4):\n<ul>\n<li>Product backlog<\/li>\n<li>Sprint backlog<\/li>\n<li>SPRINT<\/li>\n<li>Deliverable<\/li>\n<\/ul>\n<\/li>\n<li><strong>1 project = 1 team<\/strong><\/li>\n<li><strong>1 team =&gt; more projects<\/strong><\/li>\n<li>Priorities are defined by business value<\/li>\n<li>Kanban, Scrumban<\/li>\n<li>Daily team lead meeting with just few minutes<\/li>\n<li><strong>You can&#8217;t do agile without teams!<\/strong><\/li>\n<li>Scrum definitely give us a better intercommunication.<\/li>\n<li>Picture time:<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_scrum.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1828\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_scrum.jpg\" alt=\"infobip_scrum\" width=\"600\" height=\"328\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_scrum.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/infobip_scrum-300x164.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<\/ul>\n<h4>Modern SQL<\/h4>\n<ul>\n<li>Presenter: Markus Winand, SQL expert and author<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/modernsql_intro.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1833\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/modernsql_intro.jpg\" alt=\"modernsql_intro\" width=\"600\" height=\"329\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/modernsql_intro.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/modernsql_intro-300x165.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<li>SQL 99 broke the relational standard\n<ul>\n<li>LATERAL\n<ul>\n<li>&#8220;for each&#8221; loop of SQL<\/li>\n<\/ul>\n<\/li>\n<li>WITH\n<ul>\n<li>&#8220;private methods&#8221; of SQL<\/li>\n<\/ul>\n<\/li>\n<li>WITH RECURSIVE\n<ul>\n<li>&#8220;while&#8221; loop of SQL<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>SQL 2003\n<ul>\n<li>Turing complete<\/li>\n<li>OVER and PARTITION BY\n<pre class=\"lang:default decode:true\">SELECT dep, salary, SUM(salary) OVER (PARTITION BY dep) FROM ...<\/pre>\n<\/li>\n<li>OVER and GROUP BY\n<ul>\n<li>actually, do this in the application, thank you very much<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>SQL 2008\n<ul>\n<li>SELECT TOP is not official &#8211; it&#8217;s FETCH FIRST ROWS ONLY<\/li>\n<\/ul>\n<\/li>\n<li>SQL 2011\n<ul>\n<li>OFFSET is EVIL\n<ul>\n<li><a href=\"http:\/\/use-the-index-luke.com\/\">http:\/\/use-the-index-luke.com\/<\/a>\u00a0<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/modernsql_offset.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1830\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/modernsql_offset.jpg\" alt=\"modernsql_offset\" width=\"600\" height=\"298\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/modernsql_offset.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/modernsql_offset-300x149.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<li>Also, the author was cool and he was giving these stickers:<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/modernsql_offset_badges.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1831\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/modernsql_offset_badges.jpg\" alt=\"modernsql_offset_badges\" width=\"604\" height=\"380\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/modernsql_offset_badges.jpg 604w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/modernsql_offset_badges-300x189.jpg 300w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>Indexes: The neglected performance all-rounder<\/h4>\n<ul>\n<li>Presenter: Markus Winand, SQL expert and author<\/li>\n<li>50% SQL problems are caused by poor query\/indexing<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/index_comic.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1832\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/index_comic.jpg\" alt=\"index_comic\" width=\"614\" height=\"573\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/index_comic.jpg 614w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/index_comic-300x280.jpg 300w\" sizes=\"auto, (max-width: 614px) 100vw, 614px\" \/><\/a><\/li>\n<li>CREATE INDEX <strong>is not<\/strong>\u00a0in the standard!<\/li>\n<li>The solution- indexing is a development task!<\/li>\n<li>\u00a0And now the author hits the spots when he explains that in\n<ul>\n<li>11 SQL books he analyzed <strong>only 1%<\/strong> of the pages are about indexes<\/li>\n<li>14 database administration books he analyzed <strong>only 6%<\/strong>\u00a0of the pages are about indexes<\/li>\n<\/ul>\n<\/li>\n<li>\n<blockquote><p>Everybody knows indexing is important for performance, yet nobody takes the time to learn and apply it properly.<\/p><\/blockquote>\n<\/li>\n<\/ul>\n<h4>Personal and Interpersonal Effectiveness<\/h4>\n<ul>\n<li>Presenter: Danilo Goliani, PhD professor, enterpreneur<\/li>\n<li><strong>Our clients are paying our paychecks!<\/strong><\/li>\n<li>Personal effectiveness &#8211; others have faith in\u00a0me<\/li>\n<li>Team effectiveness &#8211; I have faith in others<\/li>\n<li>Organisational effectiveness &#8211; clients love us<\/li>\n<li>Stephen R. Covey: <a href=\"http:\/\/amzn.to\/1KQ2jO8\">7 Habits of Highly Effective People<\/a><\/li>\n<li>Courage &#8211; willingness and ability to express your thoughts and emotions<\/li>\n<li>Don&#8217;t just say NO to your children &#8211; explain also WHY<\/li>\n<li>Self induced interrupt<\/li>\n<li>Brain Games<\/li>\n<li>Picture time:<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/danilo.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1834\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/danilo.jpg\" alt=\"danilo\" width=\"600\" height=\"485\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/danilo.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/danilo-300x243.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<\/ul>\n<h4>Machine learning<\/h4>\n<ul>\n<li>Presenter: Jan \u0160najder, PhD\/assistant professor\/FER<\/li>\n<li>IBM Watcson Developer Cloud<\/li>\n<li>88% of unstructured data<\/li>\n<li>#1 Top skill on LinkedIn 2014<\/li>\n<li>Tools:\n<ul>\n<li><a href=\"http:\/\/www.cs.waikato.ac.nz\/ml\/weka\/\">Weka<\/a><\/li>\n<li><a href=\"https:\/\/rapidminer.com\/\">RapidMiner<\/a><\/li>\n<li><a href=\"http:\/\/orange.biolab.si\/\">Orange<\/a><\/li>\n<li><a href=\"http:\/\/www.r-project.org\/\">R<\/a> (mother of all)<\/li>\n<li><a href=\"http:\/\/www.mathworks.com\/products\/matlab\/\">Matlab<\/a> (commercial)<\/li>\n<li><a href=\"http:\/\/mloss.org\">mloss.org<\/a><\/li>\n<li><a href=\"http:\/\/mahout.apache.org\/\">Apache Mahout<\/a><\/li>\n<li><a href=\"https:\/\/spark.apache.org\/docs\/1.1.0\/mllib-guide.html\">Spark<\/a><\/li>\n<li><a href=\"http:\/\/azure.microsoft.com\/en-us\/services\/machine-learning\/\">Azure Machine Learning<\/a><\/li>\n<li><a href=\"http:\/\/aws.amazon.com\/machine-learning\/faqs\/\">Amazon Machine Learning<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Picture time:<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/machine.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1836\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/machine.jpg\" alt=\"machine\" width=\"600\" height=\"348\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/machine.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/machine-300x174.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<\/ul>\n<h4>Java puzzlers<\/h4>\n<ul>\n<li>Presenter: Aleksandar Dosti\u0107, Senior Software Engineer IB<\/li>\n<li>Picture time intro:<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_intro.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1837\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_intro.jpg\" alt=\"java_intro\" width=\"600\" height=\"303\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_intro.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_intro-300x152.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<li>Puzzle 1:<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_1.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1838\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_1.jpg\" alt=\"java_1\" width=\"600\" height=\"161\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_1.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_1-300x81.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<li>Puzzle 2:<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_2.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1839\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_2.jpg\" alt=\"java_2\" width=\"600\" height=\"393\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_2.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_2-300x197.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<li>Puzzle 3:<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_3.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1840\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_3.jpg\" alt=\"java_3\" width=\"600\" height=\"244\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_3.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_3-300x122.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<li>Puzzle 4:<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_4.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1841\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_4.jpg\" alt=\"java_4\" width=\"600\" height=\"258\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_4.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_4-300x129.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<li>Puzzle 5 &#8211; the most sneaky one!<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_5.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1842\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_5.jpg\" alt=\"java_5\" width=\"600\" height=\"199\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_5.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_5-300x100.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><br \/>\n<\/a>and here is why!!!\u00a0<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/shocked.png\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1741\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/shocked.png\" alt=\"shocked\" width=\"24\" height=\"24\" \/><\/a><a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_5_explanation.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-1843\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_5_explanation.jpg\" alt=\"java_5_explanation\" width=\"600\" height=\"353\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_5_explanation.jpg 600w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/java_5_explanation-300x177.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/li>\n<\/ul>\n<h4>HA-JDNI as a Solution for Service Discovery in Distributed Systems<\/h4>\n<ul>\n<li>Presenter: Aleksandar Branjkovi\u0107, Head of Mobile Payments R&amp;D<\/li>\n<li>Picture time:<br \/>\n<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/ha.jpg\" rel=\"lightbox[1823]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1844\" src=\"http:\/\/www.nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/ha.jpg\" alt=\"ha\" width=\"604\" height=\"330\" srcset=\"https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/ha.jpg 604w, https:\/\/nikola-breznjak.com\/blog\/wp-content\/uploads\/2015\/06\/ha-300x164.jpg 300w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here are my notes from an awesome 4th Infobip Dev Days 2015 conference: [toc] Introduction Presenter: Izabel Jeleni\u0107, Co-founder, CTO infobip\u00a0&#8211; 600+ employees (122 devs) Worldwide A2P SMS&hellip;<\/p>\n","protected":false},"author":1,"featured_media":1835,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[47],"class_list":["post-1823","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-miscellaneou","tag-conferences"],"_links":{"self":[{"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/posts\/1823","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/comments?post=1823"}],"version-history":[{"count":4,"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/posts\/1823\/revisions"}],"predecessor-version":[{"id":1847,"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/posts\/1823\/revisions\/1847"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/media\/1835"}],"wp:attachment":[{"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/media?parent=1823"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/categories?post=1823"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/tags?post=1823"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}