<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:betag="http://dotnetblogengine.net/schemas/tags">
  <channel>
    <title>Vukoje.NET</title>
    <description>Vukoje's blog about software development</description>
    <link>http://vukoje.net/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 3.0.0.0</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://vukoje.net/opml.axd</blogChannel:blogRoll>
    <dc:creator>Milan Vukoje</dc:creator>
    <dc:title>Vukoje.NET</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <item>
      <title>Writing awesome dev job ad</title>
      <description>&lt;p&gt;Why write about job ads? This is blog for software developers, not HR and marketing. Well, can you really expect HR to find you good developers without your help? Yes you, the freak with the keyboard. &lt;/p&gt;&lt;p&gt;My company wanted to hire more talented programmers and the question was how to do this within limited time and budget? There are many companies fighting for good programmers, how can we step out?  &lt;/p&gt;&lt;p&gt;I gave it a thought, what I can do to change this in our favor and I concluded that I should rewrite &lt;a href="http://www.vukoje.net/page/Old-CallidusCloud-NET-developer-ad"&gt;our old generic corporate developer job ad&lt;/a&gt; to something awesome. So I did it and we had pretty good result. You can see new job ad &lt;a href="http://vukoje.net/page/New-CallidusCloud-NET-developer-ad"&gt;here&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;Read on to see what were my guiding principles. &lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;h3&gt;What’s wrong with old ad?&lt;/h3&gt; &lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;The ad is generic and boring. It doesn’t distinguish us from any other company.  &lt;/p&gt;&lt;p&gt;Section describing candidate responsibilities should go without saying because it describes almost any dev job and still you have no idea what you would be working on if you get the job. &lt;/p&gt;&lt;p&gt;We ask for &lt;a href="http://requirejs.org/" target="_blank"&gt;RequireJS&lt;/a&gt; experience. Really!? I can teach it to good dev in 1 day. I think you should rarely insist on experience in some technology if that is something that can be learnt very quickly. &lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;h3&gt;How to be better?&lt;/h3&gt; &lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;Here are my guiding principles for writing new ad: &lt;/p&gt;&lt;ul&gt; &lt;li&gt;It should be &lt;strong&gt;written by dev for dev&lt;/strong&gt;. &lt;/li&gt; &lt;li&gt;It should &lt;strong&gt;state all the things I like about my job&lt;/strong&gt;. Yes coffee and parking are important to me, they make every morning start a little nicer. Why not share it with others.&lt;/li&gt; &lt;li&gt;It should&lt;strong&gt; mention all the things we built and are proud of&lt;/strong&gt;. Programmers love challenges and project where they can learn new stuff. If you have them, than brag you fool! &lt;/li&gt; &lt;li&gt;&lt;strong&gt;No bullshit&lt;/strong&gt; and empty talk.&amp;nbsp; Marketing lead, friendly work environment, bla bla… say something concrete and interesting.&lt;/li&gt; &lt;li&gt;It should be &lt;strong&gt;funny&lt;/strong&gt;. Why the hell not! We try to have fun at work every day and we are very proud of our work atmosphere. Why be boring when it comes to a job ad?&lt;/li&gt; &lt;li&gt;It should be &lt;strong&gt;in native language&lt;/strong&gt;.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;How did it go?&lt;/h3&gt; &lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;It went great! We had way more job candidates than normal. Usually we hire 1 good programmer after we put out an ad. This time we hired 3. Few candidates said that they applied only because they liked the unusual ad. We got CV’s and emails from candidates that were personalized to match humor from our ad. &lt;/p&gt;&lt;p&gt;All of this because of little honesty and humor. Don’t be boring!  &lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&lt;img style="float: none; margin-left: auto; display: block; margin-right: auto" src="https://lh3.googleusercontent.com/svVn4_Z25-ZRc1Epf3Ttds8aLhMyOR1KzlQuBSXELnwlroXuQbsxjE8g5w7lMFPK2sThGM0qyGIvT5T0iHIiV_m4USD_DEbNrJ1RxFii4nUVzb_Qq_saKMDYTEPL49jF3fRxdtI" height="490" width="490"&gt;&lt;/p&gt;</description>
      <link>http://vukoje.net/post/Writing-awesome-dev-job-ad</link>
      <comments>http://vukoje.net/post/Writing-awesome-dev-job-ad#comment</comments>
      <guid>http://vukoje.net/post.aspx?id=d16bb6c7-66b8-4565-b357-3983232ea716</guid>
      <pubDate>Sat, 02 May 2015 04:17:00 -0700</pubDate>
      <category>management</category>
      <dc:publisher>vukoje</dc:publisher>
      <pingback:server>http://vukoje.net/pingback.axd</pingback:server>
      <pingback:target>http://vukoje.net/post.aspx?id=d16bb6c7-66b8-4565-b357-3983232ea716</pingback:target>
      <slash:comments>8</slash:comments>
      <trackback:ping>http://vukoje.net/trackback.axd?id=d16bb6c7-66b8-4565-b357-3983232ea716</trackback:ping>
      <wfw:comment>http://vukoje.net/post/Writing-awesome-dev-job-ad#comment</wfw:comment>
      <wfw:commentRss>http://vukoje.net/syndication.axd?post=d16bb6c7-66b8-4565-b357-3983232ea716</wfw:commentRss>
    </item>
    <item>
      <title>Start.it talk – Juniors &amp; Seniors</title>
      <description>&lt;p&gt;Last Friday I gave a talk at &lt;a href="http://startit.rs/startit-meetup-kako-izabrati-firmu-uklapanje-juniora-i-stock-opcije-zaposlenih/"&gt;Start.it&lt;/a&gt; event about junior programmers, how can day choose a company and I gave some tips how to manage new guys in team from team lead perspective. I hope you enjoyed it. Slides are below.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.vukoje.net/image.axd?picture=juniori-seniori002_1.jpg"&gt;&lt;img title="juniori-seniori002" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="juniori-seniori002" src="http://www.vukoje.net/image.axd?picture=juniori-seniori002_thumb_1.jpg" width="474" height="306"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;a href="http://www.vukoje.net/image.axd?picture=juniori-seniori001_1.jpg"&gt;&lt;img title="juniori-seniori001" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="juniori-seniori001" src="http://www.vukoje.net/image.axd?picture=juniori-seniori001_thumb_1.jpg" width="477" height="316"&gt;&lt;/a&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;iframe height="400" marginheight="0" src="//www.slideshare.net/slideshow/embed_code/44232778" frameborder="0" width="476" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
      <link>http://vukoje.net/post/Startit-talk-Juniors-Seniors</link>
      <comments>http://vukoje.net/post/Startit-talk-Juniors-Seniors#comment</comments>
      <guid>http://vukoje.net/post.aspx?id=fa1b0464-f589-40d9-8764-a07a4159b2fe</guid>
      <pubDate>Tue, 03 Feb 2015 14:45:23 -0700</pubDate>
      <category>news</category>
      <dc:publisher>vukoje</dc:publisher>
      <pingback:server>http://vukoje.net/pingback.axd</pingback:server>
      <pingback:target>http://vukoje.net/post.aspx?id=fa1b0464-f589-40d9-8764-a07a4159b2fe</pingback:target>
      <slash:comments>6</slash:comments>
      <trackback:ping>http://vukoje.net/trackback.axd?id=fa1b0464-f589-40d9-8764-a07a4159b2fe</trackback:ping>
      <wfw:comment>http://vukoje.net/post/Startit-talk-Juniors-Seniors#comment</wfw:comment>
      <wfw:commentRss>http://vukoje.net/syndication.axd?post=fa1b0464-f589-40d9-8764-a07a4159b2fe</wfw:commentRss>
    </item>
    <item>
      <title>From junior programmer to master</title>
      <description>&lt;p&gt;A decade ago I had many, many questions and doubts about programming. How does programming look in real life on big projects? Is it too hard? Will I be any good at it? Over the last few months I have been mentoring talented junior programmers in my company from whom I’ve come to have great expectations. This is what motivated me to write this post and share it with young talents with whom I will hopefully work one day soon.  &lt;h1&gt;Learn, learn, learn&lt;/h1&gt; &lt;p&gt;You will learn some things in the university, but they are not enough to make you excellent. You should keep learning new things all the time because technology is complex and constantly changing. For every subject you are interested in there is a fabulous book out there full of knowledge.  &lt;p&gt;Once a friend told me “If I read 10 pages of an IT book every day, imagine how many books I will have read in few years, and what I will know”. Well, of course, I didn’t keep up with that pace, but I pressured myself to always read a lot. I keep a &lt;a href="http://vukoje.net/page/reading-list"&gt;public list of things I read&lt;/a&gt; as a public CV and a motivator to keep going.  &lt;p&gt;Technical blogs are becoming a main source of information and more and more often people publish books by refining content already published on their blogs. So pick a favorite RSS reader and start building you feed collection that will keep you up to date. For a start, here are some of my favorites:  &lt;ul&gt; &lt;li&gt;&lt;a href="http://martinfowler.com/"&gt;http://martinfowler.com/&lt;/a&gt; - software design God  &lt;li&gt;&lt;a href="http://www.infoq.com/"&gt;http://www.infoq.com/&lt;/a&gt; - latest IT news, presentations, articles and interviews  &lt;li&gt;&lt;a href="http://www.hanselman.com/"&gt;http://www.hanselman.com/&lt;/a&gt; - all latest and coolest things in .net  &lt;li&gt;&lt;a href="http://blog.codinghorror.com/"&gt;http://blog.codinghorror.com/&lt;/a&gt; - pure classic&lt;/li&gt;&lt;/ul&gt; &lt;h1&gt;You become an excellent programmer in you free time&lt;/h1&gt; &lt;p&gt;Formal education is a good start, but it’s not enough. Work experience is mandatory, but you only advance in practical stuff you solve at your desk. It takes time and passion to go deeper into problems and get your eureka moments. Don’t expect that others, teachers or colleagues, will teach you how to code.  &lt;p&gt;This doesn’t mean that you will have no free time. It only means that programing will be one of your hobbies and that you will annoy your non-programming friends with your technical discussions.  &lt;h1&gt;Learn how to write code&lt;/h1&gt; &lt;p&gt;If you are going to be a programmer, you will be staring at code editor and writing code most of your work day. You should write code like a pro. Some programmers tend to think that architecture and fancy patterns are important and that code is just something in between, but I would strongly disagree. I’ve never seen app with great architecture and crappy code.  &lt;p&gt;Not having enough time is a common excuse for writing bad code. Avoid excuses. Once you master the skill of clean code it will come naturally to you, at no cost.  &lt;p&gt;So how do you write code like a pro? Well read a book of course! I read &lt;a href="http://www.amazon.com/Refactoring-Improving-Existing-Addison-Wesley-Technology/dp/0201485672/"&gt;Refactoring by Martin Fowler&lt;/a&gt; but I’ve heard that &lt;a href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/"&gt;Clean Code&lt;/a&gt; and &lt;a href="http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670"&gt;Code Complete&lt;/a&gt; are also great. Actually I remember an older guy at the university who told me to read Refactoring and that it will make me twice the programmer I was. Till this day I believe this to be truth.  &lt;p&gt;There are also code conventions and code analysis tools for specific platforms. They will come in handy. Why waste time and energy on trivial decisions when you can follow guides.  &lt;h1&gt;Is it hard?&lt;/h1&gt; &lt;p&gt;Well, it can be, when not done the right way. You could end up with an application that is very hard to maintain because of the huge complexity and a lack of tests or documentation. On the other hand, when development is done properly, programming seems more like a fun game than work. As you get better you will build better apps and your job will be easier.  &lt;p&gt;Sometime you end up with a problem you just cannot solve. In that case you either solve it and feel like you’re on top of the world, or somebody else does and you learn from him or her.  &lt;h1&gt;Do the hard stuff&lt;/h1&gt; &lt;p&gt;Some guys constantly run away from tough tasks. My advice is to do just the opposite, ask for the toughest. Tough problems will make you a tough programmer and speed up your learning. Also, if you go for the hard things you will never be bored at work.  &lt;h1&gt;It’s ok to be scared&lt;/h1&gt; &lt;p&gt;So you are starting to feel comfortable as a programmer and you are successfully completing your tasks. It feels good. But then one day a new task comes along. A new task requires new technologies, tools and domain knowledge you don’t have. You get scared. You doubt if you will you be able to complete the task. It’s OK to be scared. The only difference between you and a more experienced guy is that he has been scared many times before and probably successfully completed such tasks and now he believes in himself. Everybody &lt;a href="http://www.hanselman.com/blog/ImAPhonyAreYou.aspx"&gt;feels like a phony&lt;/a&gt; at some point.  &lt;h1&gt;It isn’t only about code&lt;/h1&gt; &lt;p&gt;Writing code is not all there is to being a programmer. Your job is to create successful software. In order to do that you will be testing, writing specs, talking to customers, organizing tasks, installing machines, motivating and mentoring coworkers… Even carrying equipment and much, much more… Don’t underestimate value of pure business domain knowledge. It can be much more valuable than programming skill.  &lt;p&gt;There are always guys who insist that their job is only to write code and not know anything about the business domain or anything else, but they are usually jerks.  &lt;h1&gt;Don’t be a jerk&lt;/h1&gt; &lt;p&gt;Because nobody wants to work with one. If you behave like one you will be alone in solving problems although it much easier to &lt;a href="http://vukoje.net/post/Two-heads-are-smarter"&gt;do it together&lt;/a&gt;.&amp;nbsp; Be a &lt;a href="http://blog.codinghorror.com/why-im-the-best-programmer-in-the-world/"&gt;humble programmer&lt;/a&gt;.&lt;/p&gt;</description>
      <link>http://vukoje.net/post/Junior-to-pro</link>
      <comments>http://vukoje.net/post/Junior-to-pro#comment</comments>
      <guid>http://vukoje.net/post.aspx?id=d219256e-7279-4b75-a8f2-540cfd09ecd0</guid>
      <pubDate>Thu, 08 Jan 2015 14:21:03 -0700</pubDate>
      <category>principles</category>
      <dc:publisher>vukoje</dc:publisher>
      <pingback:server>http://vukoje.net/pingback.axd</pingback:server>
      <pingback:target>http://vukoje.net/post.aspx?id=d219256e-7279-4b75-a8f2-540cfd09ecd0</pingback:target>
      <slash:comments>5</slash:comments>
      <trackback:ping>http://vukoje.net/trackback.axd?id=d219256e-7279-4b75-a8f2-540cfd09ecd0</trackback:ping>
      <wfw:comment>http://vukoje.net/post/Junior-to-pro#comment</wfw:comment>
      <wfw:commentRss>http://vukoje.net/syndication.axd?post=d219256e-7279-4b75-a8f2-540cfd09ecd0</wfw:commentRss>
    </item>
  </channel>
</rss>