<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Sam Jarman on Medium]]></title>
        <description><![CDATA[Stories by Sam Jarman on Medium]]></description>
        <link>https://medium.com/@samjarman?source=rss-a04c5d4125b6------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*HrZXURkyn-b3m6wre4BUfg@2x.jpeg</url>
            <title>Stories by Sam Jarman on Medium</title>
            <link>https://medium.com/@samjarman?source=rss-a04c5d4125b6------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Thu, 12 Nov 2026 08:20:03 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@samjarman/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[A Future Of Netflix]]></title>
            <link>https://medium.com/hackernoon/a-future-of-netflix-f779b1a57222?source=rss-a04c5d4125b6------2</link>
            <guid isPermaLink="false">https://medium.com/p/f779b1a57222</guid>
            <category><![CDATA[deepfakes]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[entertainment]]></category>
            <category><![CDATA[future]]></category>
            <category><![CDATA[netflix]]></category>
            <dc:creator><![CDATA[Sam Jarman]]></dc:creator>
            <pubDate>Thu, 17 Jan 2019 06:07:52 GMT</pubDate>
            <atom:updated>2019-01-17T06:07:52.697Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zQEG3wB9awL6ub51dNw6dA.jpeg" /><figcaption><em>These thoughts have been rattling around in my head for a while now, so I thought it was about time they were jotted down for you all to have a read of. Notably, my arm was twisted by </em><a href="https://en.wikipedia.org/wiki/Black_Mirror:_Bandersnatch"><em>Bandersnatch</em></a><em>. Let’s go!</em></figcaption></figure><p>Netflix is quite an amazing company. In a few short years (albeit I know it was longer than it seems) they have become a household name. Almost everyone has access to an account, and you can watch on pretty much any screen.</p><p>Day by day, we can safely assume Netflix collects viewing data. They use this for their recommendations to you as to what to watch. We can assume they collect content viewed, when you paused, when you gave up, when you binged, and for how long, and much more. After a few months of even 1–2 hours of watching in the evenings, Netflix has a pretty good idea of what you’re in to.</p><p>So let’s think forward a few years and I present to you a future (not <em>the</em> future, just <em>a</em> future).</p><p>You get home, it’s been <em>a day</em>. Work didn’t go well. Pay day is a few days out, and your favourite takeaway place is shut today. You just wanna get into bed and watch some Netflix. So you do.</p><p>You put on your headset. It looks a bit like an <a href="https://www.emotiv.com/epoc/"><em>Emotiv</em></a> headset, but it has 3D glasses and headphones built in. It’s bluetooth. You turn on Netflix.</p><p>Netflix takes a reading through your headset. It learns you’ve had <em>a day. </em>It learns about Karen blocking your idea in that meeting, and Brian talking over you at lunch. So, it starts to play something for you.</p><p>That’s right — you didn’t choose. You see, Netflix no longer carries existing titles, the content is all original. The content is scripted in real time, using <a href="https://en.wikipedia.org/wiki/Artificial_neural_network">deep, deep neural networks</a>. Netflix starts playing you an office comedy. You recognise some of the actors (it’s not really them, it’s normal actors with your favourite superimposed using <a href="https://www.youtube.com/watch?v=gLoI9hAX9dw"><em>Deepfakes</em></a><em>, </em>no one in hollywood has worked for years) , and it starts off with a few good jokes about broken printers. You laugh. You remember printers and how bad they were. Netflix notices your smile. You’re happy it’s live action this time, some of the cartoon and animated ones don’t really float your boat.</p><p>The content now adapts, building on that uplift in mood. Maybe it introduces a romantic couple. You quickly get bored, as a straight couple is something you’ve seen a million times now, so the content adapts again, and the female protagonist makes an innocently cute smile at a woman on the bus home. The story follows them now. You’re into it. You love seeing all relationships represented.</p><p>Later, the new couple start to face some money troubles together. It’s a problem you don’t like. It reminds you of the time you had money troubles, it kinda gets to you. It makes you uncomfortable. The content adapts again. They win a small lotto prize draw, they move into a new place together. A new problem emerges, one perhaps you’re more interested in. Your intrigue is recognised, rewarded, and elevated by the adapting content. Where did that candelabra left in the apartment before them come from? What is its story?</p><p>By this point, it’s been 4 hours. “Are you still watching?” You bet you are. But it is time for bed, and so the content adapts again, finding a natural ending to this part of the story. You’re able to close Netflix, remove your headset, and rest up for another day.</p><p>When Netflix first shipped this feature a few years earlier, it was fairly primitive. Authors had written the scripts, there were a few choices that kept fanning out into many, many different endings, and the deep fakes weren’t — they had just got the actors to film every possible scenario. It was expensive, and time consuming. The first experimental piece of content, called <a href="https://en.wikipedia.org/wiki/Black_Mirror:_Bandersnatch">Bandersnatch</a>, years earlier in 2018, even laughably had a UI where users had to choose which path explicitly. And the story ended up the same anyway! Oh boy, it’s come a long way since then. Fully original, fully adapting to what you want to see.</p><p>No authors wrote this office comedy, no actors acted solely for it, and you’ll be the only one to ever see it. It’s special. It’s unique.</p><p>Oh, and support for multiple viewers is launching next week, too. So. Who’s watching?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f779b1a57222" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hackernoon/a-future-of-netflix-f779b1a57222">A Future Of Netflix</a> was originally published in <a href="https://medium.com/hackernoon">HackerNoon.com</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[My 12 Step Guide to Becoming an iOS Developer]]></title>
            <link>https://medium.com/hackernoon/my-12-step-guide-to-becoming-an-ios-developer-539b8c9d595e?source=rss-a04c5d4125b6------2</link>
            <guid isPermaLink="false">https://medium.com/p/539b8c9d595e</guid>
            <category><![CDATA[satire]]></category>
            <category><![CDATA[ios-app-development]]></category>
            <category><![CDATA[humor]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sam Jarman]]></dc:creator>
            <pubDate>Tue, 11 Sep 2018 09:17:49 GMT</pubDate>
            <atom:updated>2018-09-11T09:17:49.630Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VZCISE9qmW4-p1ZRTNS5cg.jpeg" /><figcaption>Don’t forget to unlock your iPhone before deploying a new development build.</figcaption></figure><p><strong>First: </strong>Learn Swift and iOS Development. Use iTunes U and watch the <a href="https://itunes.apple.com/us/course/developing-ios-11-apps-with-swift/id1309275316">Stanford courses</a>. Casually mention to friends you’re learning online in a Stanford course. Don’t use traditional courses.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/384/1*5iFwyd0IlpbORCTvACzcZQ.png" /><figcaption>Remember watching lectures online is as prestigious as being accepted into the school. And people should know that.</figcaption></figure><p><strong>Second: </strong>Buy a MacBook Pro for $4000 and an iPhone X for $2000. It’s ridiculous, but you tell yourself and your partner <em>“its for work”</em>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/852/1*rgKvi35gORRie06M4v-AgQ.jpeg" /><figcaption>“Babe, it’s for our future!”</figcaption></figure><p><strong>Third:</strong> Start a blog. Write posts with examples of the <a href="https://swift.org/documentation/api-design-guidelines/">swift language guidelines</a>. Call Core plus your name. If your name is one syllable, or usually shortened it, lengthen it until at least two syllables appear. Use a .app or .me top level domain name.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/820/1*VU3E5rSL_zsQxhQF9kUwrA.png" /><figcaption>But don’t actually use wordpress, build your own blog in Vapor first.</figcaption></figure><p><strong>Fourth: </strong>Get on twitter. Follow <a href="https://medium.com/app-coder-io/52-people-every-ios-developer-should-follow-on-twitter-25ca8915369a">these people</a>* (and <a href="https://twitter.com/samjarman">me</a> :P) and start replying to them. For your bio, say you are the principle iOS lead at a small agency.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/594/1*T8ZzlSgSXrXEc_3fgKsbFw.png" /></figure><p><strong>Fifth:</strong> Start a small agency. Use “boutique” to describe yourself and get a desk at WeWork. Build websites with Squarespace until you know how to build apps. Write an app for large company with your agency. Convince them to enter it in in an obscure award in their field. Win that award.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AZ42IE32hHGKRQIKT5ceWQ.jpeg" /><figcaption>Always use cafes for meetings to appear bigger than you are</figcaption></figure><p><strong>Sixth</strong>: Start a iOS development podcast. Form a panel of yourself and other iOS developer developers to discuss iOS development. As for a name, go with a horrible code reference to Cocoa, like Conversation.shared or iOSDevTips:atIndexPath:. Discuss your favourite open source projects by reading the first paragraph of their GitHub READMEs. The trick here is to make it about yourself, and add no value to your 7 listeners. Advertise mattresses.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VUqmmIEXQWe-HjZAhc6YZA.jpeg" /><figcaption>If you don’t own a Blue Yeti are you really an iOS developer?</figcaption></figure><p><strong>Seventh: </strong>Form an opinion on these things. The stronger the better. You’re an engineer, and that means going around with solutions already decided, ignoring the problem.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FZcVopRsGMLj0RMINAVYhA.png" /><figcaption>Remember: What worked for you that one time will work for everyone.</figcaption></figure><p><strong>Eighth:</strong> Pitch talks and go to conferences. Ask people what they do, even though you know its iOS development. Ask if they’re using Swift yet. Humble brag about using swift for so long with a phrase like “Oh, man, I remember it from the early days” or “Its been great to watch swift to change over the years”. Remember, the more you learned and then had to unlearn, the better iOS developer you are. Casually enquire if they use <em>Fastlane</em>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ruvh36Y2vhxYBfW467cDKA.jpeg" /></figure><p><strong>Ninth:</strong> Join reddit and stack overflow Gain karma and rep by posting questions from r/iOSPrograming to stack overflow and questions from<a href="https://www.reddit.com/r/iOSProgramming/"> r/iOSprogramming</a> to stack overflow. Follow up with cross posting answers.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nklx0d3JBvYJfmPBTJq_nQ.png" /><figcaption>The chrome inspector is fun eh</figcaption></figure><p><strong>Tenth:</strong> Start a newsletter. Make sure “Weekly” is in the name. Subscribe to other iOS newsletters and write a script to take a link from each of them for your newsletter. Email it to your 58 subscribers on Fridays. Advertise mattresses.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tKotfb0rX37fl-Jt1fhktA.png" /></figure><p><strong>Eleventh:</strong> Worry about your career. Are you creating a meaningful experience for potentially millions of people or are you just putting JSON on a screen? Why don’t you get to solve fun problems like worrying about auto-scaling clusters, message queues, no-sql databases and cloud services? Have a career crisis. Watch <a href="http://appdocumentary.com/">App: The Human Story.</a> Feel better.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*JeYnmMQB72cC9BK1zwON9w.png" /></figure><p><strong>Twelfth</strong>: Buy a 2007 WWDC Jacket off Ebay. Wear it. You were there. And people should know it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_MlblfzxzOk8MkUhRC9WRQ.jpeg" /></figure><p><em>…And that is how you become an iOS Developer!</em></p><p>This was a <strong>satirical</strong> lightning talk given at <a href="http://www.devworld.com.au/">/dev/world/ 2018</a>, and you can find the recording <a href="https://www.youtube.com/watch?v=xdV8HjSnDKc&amp;feature=youtu.be">here</a>. If you’d like more geeky and niche comedy, follow me over on my twitter account — <a href="https://twitter.com/samjarman">@samjarman</a>. Talk inspired by <a href="https://www.youtube.com/playlist?list=PLAjZyhMgkKSw1yhmpm01bwD5Rj_Tqrndn">Struthless</a>.</p><p><em>*And some underrepresented folks </em><a href="https://twitter.com/samjarman/status/1039433447826026496"><em>too please</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=539b8c9d595e" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hackernoon/my-12-step-guide-to-becoming-an-ios-developer-539b8c9d595e">My 12 Step Guide to Becoming an iOS Developer</a> was originally published in <a href="https://medium.com/hackernoon">HackerNoon.com</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Tech Career Advice from 30 Interviews]]></title>
            <link>https://medium.com/hackernoon/tech-career-advice-from-30-interviews-9c022acaad5?source=rss-a04c5d4125b6------2</link>
            <guid isPermaLink="false">https://medium.com/p/9c022acaad5</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[career-advice]]></category>
            <category><![CDATA[tech]]></category>
            <category><![CDATA[tech-career-advice]]></category>
            <category><![CDATA[careers]]></category>
            <dc:creator><![CDATA[Sam Jarman]]></dc:creator>
            <pubDate>Wed, 04 Jul 2018 07:29:28 GMT</pubDate>
            <atom:updated>2018-07-06T06:23:43.313Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bACcobwNokUz3AjTV_YFWw.jpeg" /></figure><p>I just wrapped up season one of my Dev Chats series, where I interviewed a different tech professional every 1–3 weeks asking them about their role, career, and their unique experiences. It was really great hearing from the folks I had on, and I hope you’ve enjoyed reading the interviews too!</p><p>We learned a lot about these folks, from how they got started, to how to get into roles likes through to how they mime typing. However, in this post, I want to summarise the career advice that came out of the interviews. What stood out? What was repeated? What can you take and use right now to improve your own career?</p><h3>Be Yourself</h3><p>The first piece of advice was about being yourself, being authentic true to yourself, and running with that. A lot of the people I spoke to had suffered a lack of confidence or drive at some point, but now, on the other side, they recommend that you look to work on those for yourself. And take some time out for yourself out once in a while, too!</p><p><em>“God, I’ve started joking recently that it’s “do things with the confidence of a white man” (blatantly stolen from a tweet). Is that rude? That’s a bit rude. It isn’t wrong though. Anyway, in all seriousness, I get asked this a lot, so I did a brain dump about it </em><a href="https://gist.github.com/notwaldorf/4df04b5c9023aec6267bc7e66f284106"><em>here</em></a><em>.</em>” — <a href="https://www.samjarman.co.nz/blog/monica">Monica Dinculescu</a></p><p><em>“Be yourself. You don’t have to act/look/behave a certain way to be an engineer or work in tech. </em><a href="https://you.women2.com/programmatically-blonde-9054ebbbf1c7"><em>Just be you</em></a><em>, and bring your diverse and authentic self to the industry. I actually think </em><a href="https://twitter.com/ChloeCondon/status/972669987520417793"><em>my quirky brand</em></a><em> has allowed me to stand out and have my voice heard more.”</em> — <a href="https://www.samjarman.co.nz/blog/chloe">Chloe Condon</a></p><p>This wonderful advice was echoed in interviews with: <a href="https://www.samjarman.co.nz/blog/juliet">Juliet Brown</a>, <a href="https://www.samjarman.co.nz/blog/vicky">Vicky Brasseur</a>, <a href="https://www.samjarman.co.nz/blog/olafur">Ólafur Waage</a>, <a href="https://www.samjarman.co.nz/blog/johna-rutz">Johna Rutz</a>, <a href="https://www.samjarman.co.nz/blog/kristina-balaam">Kristina Balaam</a>, <a href="https://www.samjarman.co.nz/blog/cyris">Cyris Chris Cloete</a> and <a href="https://www.samjarman.co.nz/blog/carolynsaund">Carolyn Saund</a>.</p><h3>Go Get it!</h3><p>This advice revolved around just starting work towards the thing you want, be it anything. Fear, confidence, and much more gets in the way of starting — but how many of these are real blockers versus imagined? I’ll let <a href="https://www.samjarman.co.nz/blog/jdtrask">JD Trask </a>finish off this section.</p><p><em>“Take action. This isn’t limited to your career in software. I meet with so many folks who want to do something (get a promotion, ask out that person they like, start a business, renovate the bathroom — the list goes on). Stop waiting for permission, stop reading inspirational quotes on Facebook — basically, stop fucking around and do what’s necessary to do it. Nobody will ever hand you things.” </em>— JD Trask</p><p>Also telling you to go get it were <a href="https://www.samjarman.co.nz/blog/atta">Atta Elayyan</a> and <a href="https://www.samjarman.co.nz/blog/cyris">Cyris Chris Cloete</a>…and me!</p><h3>Ask For Help</h3><p>A lot of people feel fear when wanting to ask a question, and this harms you in the long run. There is nothing to be scared of, and no reasonable person should give you negative feelings for just asking a question.</p><p>I think Rose summed this up really nicely, “Asking for help doesn’t make you weak, it doesn’t mean you don’t deserve to be where you are, and doesn’t mean you’re incapable”.</p><p>This great advice which I can’t recommend enough was also echoed by <a href="https://www.samjarman.co.nz/blog/kvlly">Kelly Vaughn</a>, Carolyn Saund, <a href="https://www.samjarman.co.nz/blog/mikejeffcott">Mike Jeffcott</a>, <a href="https://www.samjarman.co.nz/blog/hannag">Hannah Gray</a> and <a href="https://www.samjarman.co.nz/blog/sami">Sami Peachley</a>.</p><h3>Never Stop Learning</h3><p>It should be clear that in 2018, and especially tech, the only constant is change. New tools, technologies, and more are coming out daily while others fade into disuse. Thinking that you’ve finished learning is career kryptonite, so please, keep learning.</p><p><em>“It isn’t possible to know everything. There will always be someone who knows more than you do. There will always be an expert who’s done more than you have. Never stop learning. Never stop trying new things.”</em> — <a href="https://www.samjarman.co.nz/blog/jessdodson">Jess Dodson</a></p><p><em>“Don’t plan your career, the world is changing to quickly. Embrace the challenges around you, take risks and see where you end up.”</em> — <a href="https://www.samjarman.co.nz/blog/laura-bell">Laura Bell</a><br>This whole idea is summed up by <a href="https://www.samjarman.co.nz/blog/katrina-clokie">Katrina Clokie</a>: <em>“I think that those who are most successful are those who are always willing to learn.”</em></p><p>These clever folk also told you to never stop learning: <a href="https://www.samjarman.co.nz/blog/sarah-dayan">Sarah Dayan</a>, <a href="https://www.samjarman.co.nz/blog/bevan">Bevan Arps</a>, <a href="https://www.samjarman.co.nz/blog/laura-bell">Laura Bell,</a> <a href="https://www.samjarman.co.nz/blog/kristina-balaam">Kristina Balaam</a>, <a href="https://www.samjarman.co.nz/blog/andyy">Andyy Hope</a>, <a href="https://www.samjarman.co.nz/blog/mergesort">Joe Fabisevich</a>, <a href="https://www.samjarman.co.nz/blog/carolynsaund">Carolyn Saund,</a><a href="https://www.samjarman.co.nz/blog/shanselman">Scott Hanselman</a>… you get the point? Don’t stop!</p><h3>Teach What You Know</h3><p>In addition to learning, you should be teaching. An important role, for example, senior engineers, is to make more senior engineers. They do this by teaching, using their experience to help guide their less experienced peers. I loved it when Kelly said “If you don’t know, ask. If you do know, teach. We grow as a tech community by sharing. We all started out not knowing how to do what we do today.” These words couldn’t be more true.</p><p>Finally, from Sarah Dayan — “Senior developers, embrace the mentoring part of your position. Being a senior isn’t only about a higher salary and staying away from the grunt work. If your company doesn’t encourage mentorship or relies too much on you for the risky tasks and it eats up all your time, remind them the benefits of teaching: higher trust within the engineering team, juniors growing their skillset, and a better velocity at short, middle and long term.”</p><p>This advice was also echoed by <a href="https://www.samjarman.co.nz/blog/sarah-dayan">Sarah Dayan</a>, <a href="https://www.samjarman.co.nz/blog/andyy">Andyy Hope </a>and <a href="https://www.samjarman.co.nz/blog/hannag">Hannah Gray</a>.</p><h3>Actively Work on Core Skills</h3><p>As JD so concisely said, <em>“Coding is the easy part, people are the hard part”</em>. Working on your core skills (aka <a href="https://www.samjarman.co.nz/blog/core-skills">soft skills</a>), working well with others, and networking to meet others will provide so much benefit to your career. We have quite a beautiful saying here in NZ;</p><blockquote><em>He aha te mea nui o te ao</em></blockquote><blockquote><em>What is the most important thing in the world?</em></blockquote><blockquote><em>He tangata, he tangata, he tangata</em></blockquote><blockquote><em>It is the people, it is the people, it is the people</em></blockquote><blockquote>(Maori proverb)</blockquote><p>These wise words were also covered by almost everyone interviewed in Dev Chats, so there must be something there.</p><h3>Accept Criticism</h3><p>Criticism and feedback are career foods. They’ll help you grow in more ways than you can possibly know. I think <a href="https://www.samjarman.co.nz/blog/erica">Erica Sadun</a> sums it up well: <em>“Criticism is so valuable in terms of growth and development. I think people naturally want to defend themselves when they’re criticised, and while a lot of criticism can be genuinely stupid (it exists), I think the vast, vast majority is is people helping you, and to push back against that help, without giving it due consideration is not in your best interest.” </em>And more concisely, <a href="https://www.samjarman.co.nz/blog/aurynn">Aurynn Shaw</a> said: “<em>Stop Being a Jerk”.</em></p><h3>Focus on Quality</h3><p>Finally, make great products. Use your above skills of empathy to think about the user when developing great products. As <a href="https://www.samjarman.co.nz/blog/mikejeffcott">Mike Jeffcott</a> puts it, <em>“Try to think about the end-user’s experience of what you’re building in their context as much as possible.”</em>. Said even more simply was <a href="https://www.samjarman.co.nz/blog/nick">Nick Parfene</a>, <em>“Strive to make your users smile when they use your software.</em>”</p><p>This advice echoed by<a href="https://www.samjarman.co.nz/blog/atta"> Atta Elayyan</a>, <a href="https://www.samjarman.co.nz/blog/vicky">Vicky Brasseur</a> and <a href="https://www.samjarman.co.nz/blog/sami">Sami Peachey</a></p><p>While I’ve picked some quotes here, I’m sure all the folks I talked to during Dev Chats season one would agree with this advice.</p><p>I really hope you got something out of this. Read the full interviews and more by clicking any of the names.</p><p>Best of luck with your journey, <br>Sam</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9c022acaad5" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hackernoon/tech-career-advice-from-30-interviews-9c022acaad5">Tech Career Advice from 30 Interviews</a> was originally published in <a href="https://medium.com/hackernoon">HackerNoon.com</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[It’s Time for a New Social Network]]></title>
            <link>https://medium.com/hackernoon/its-time-for-a-new-social-network-9bc3c8fbaee6?source=rss-a04c5d4125b6------2</link>
            <guid isPermaLink="false">https://medium.com/p/9bc3c8fbaee6</guid>
            <category><![CDATA[manipulation]]></category>
            <category><![CDATA[facebook]]></category>
            <category><![CDATA[social-media]]></category>
            <category><![CDATA[privacy]]></category>
            <category><![CDATA[advertising]]></category>
            <dc:creator><![CDATA[Sam Jarman]]></dc:creator>
            <pubDate>Sun, 25 Mar 2018 00:13:53 GMT</pubDate>
            <atom:updated>2018-03-25T00:14:46.122Z</atom:updated>
            <content:encoded><![CDATA[<p>…and I have a few thoughts. I’m interested in hearing yours, too!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HtAMjcYGbQuvaTdQQBRjnA.jpeg" /></figure><p>For a while now, I’ve been pretty disastisfied with <em>Facebook</em>, <em>Instagram</em>, and <em>Twitter</em>, to a certain extent. I’ve found the changes over the last few years kinda annoying, and I see more and more people becoming disgruntled. We, as consumers, always should have choice of where to spend our money and time, and right now, there still aren’t any good places to go outside of these big players. So it’s time for a new social network, one that has a few key principles that differ it from the others. One that gives users a choice of how they think about social networking sites, and choose what they prefer.</p><p>And while Facebook is in the news this week and last, I think it’s worth having that discussion again, and I’m motivated to write this post. So let me lay out my thoughts, and I hope you jump in with yours.</p><h3>Paid For By Users</h3><p>One of the biggest issues of <em>Facebook</em> is that the user isn’t the customer. There’s the old phrase “if you’re not paying for it, you’re the product”, and while this is true, I feel there’s just more to it. Sure, our attention is for sale to Facebook advertisers, but as the money comes from them, all features, either consciously <em>or subconsciously</em> are built for them. Every single decision inside facebook is one to make money, and its one to make money from advertisers by affecting users. Even with the best intentions or actions from those on an individual level, <em>Facebook</em>, <em>Twitter</em>, <em>Instagram</em>, etc are fundamentally built the wrong way for your best interest.</p><p>So, “The New Network” (I’ll call it TNN for the rest of the post, don’t read into it), will be paid for. I don’t know the price, but I feel like $20–30 USD a year would be fair. ($50 is not, remember App.Net?) Like anything you pay for, you’ll get value out of it the more you use it, such as season passes to sports, gym memberships or <em>Netflix</em> subscriptions.</p><p>And think of <em>Netflix</em> for a second, they’re one of the companies that ask for payment up front, no free trials or freemium models, and they just focus on making a damn nice platform. Say what you want about it pacifying people, it’s a darn good product, with darn good content (unless you’re in New Zealand… but that’s another post…).</p><p>With users paying for TNN, we’ll see less <em>bullshit</em>. We won’t see <a href="https://www.forbes.com/sites/gregorymcneal/2014/06/28/facebook-manipulated-user-news-feeds-to-create-emotional-contagion/#16dba88739dc">feed manipulation</a>, we won’t see thirsty features <a href="http://adage.com/article/digital/sean-parker-worries-facebook-rotting-children-s-brains/311238/">built to addict us</a> and we won’t see feeds out of order, powered by weird AI (more on this later).</p><p>When your priority as a company is to make a product that people pay for that is delightful and worth the cost, then you’re in a pure and simpler place. You have something really simple, and all decisions are driven for the good of the customer, in this case, us.</p><h3>No Paid Ads</h3><p>Companies will be invited to join TNN. They can have a page, and they can post their content. If you’ve opted to follow that page, you’ll be able to see it in your timeline, and interact with it. Everyone who follows that page will see that post in their timeline. Post too often, you’ll spam your followers, post too little, they’ll forget about you. Post great content, you’ll get likes, post bad content, you’ll get dislikes and bad reviews. Easy. So simple.</p><p>I remember running a student club at my University, and feeling outraged that after all the effort we’d gone to get people to ‘like’ us on Facebook, we’d have to pay to talk to all of them. A common problem for non-profits. We went back to email (and the 1990s 🙄) to talk to people. Bad look for a technology-centric club.</p><p>Ads are NOT for sale on TNN. It solves a whole range of problems described above, and also gives me less code to write :P</p><h3>Chronological Timelines</h3><p>For obvious reasons. Without the need to be thirsty, manipulate timelines, etc, we can just make them in order. Guess what? Life happens in order (shock! horror!). So, why not present it like that?</p><p>No more posts that lose all relevance after a certain time window (Facebook never did add in expiry dates, right?). No more “I can’t wait to see you all this weekend” posts on the following Tuesday. No more “breaking news” from 3 days ago… (Yeah, I’m frustrated by this one).</p><p>Also, I don’t have to write AIs or features around promoting/demoting content. What a pain that would be.</p><h3>Centralised</h3><p>As a programmer, and with the rise of blockchain, a buzz word and tech right now is decentralisation. It might be tempting to apply this to social networks (and others have) but I think this is extremely foolish. Ordinary folks (not tech folks) just won’t get it. Can you imagine “Oh, add me on TNN” “Sure, which server are you on?”. How ridiculous.</p><p>I tried <em>Mastodon</em>, and thought it was dumb for the same reason. <strong>Our lives are already socially decentralised</strong>, and that really sucks. We’re not going to see our friend overseas at the local bar, or at a meetup, so centralisation solved that problem.</p><p>Facebook actually got this one right, and I think we should continue it. Let’s leave decentralised networks to real life, and to better tooling/avenues, such as <em>Slack/</em>IRC groups, Meetups or conferences.</p><h3>Clear Privacy</h3><p>Privacy is a massive thing to a lot of people, and they all have their own definition of what should be private and what should be public. The ‘line’ is different for everyone, so instead of guessing (and guessing wrong), TNN will have tools to control privacy on every bit of content that is uploaded. The choices would be clear, and simple to understand. Defaults would be set by the user, and they’d be regularly reminded to consider the pros and cons of public content.</p><h3>Influencers</h3><p>A big part of any social network, and their success, are influencers. Would Justin Bieber or Kim Kardashian (like them or not, they’ve got more influence than you) join TNN?</p><p>Well, their posts would go to all their fans, so no paying us to boost the post to everyone who followed them. So that’s a good start.</p><p>They could post content for brands, with more success. TNN would make it very clearly it was a sponsored post, though. Full disclosure is key.</p><p>But that’s about it, I don’t have (m)any Influencer specific features in mind, as that would take away from building for the core customers, everyone.</p><h3>The Tech</h3><p>I won’t go too much into this, but I feel something kinda scaleable (the proof is in the pudding) is much easier than it was 10 years ago. With technologies <em>Kubernetes, AWS, Kafka, NoSQL, GraphQL, Redis</em>, etc managing a lot of compute and data is actually becoming a solved problem. I imagine a full microservices architecture, with streaming being the nervous system. Events would be produced by user actions, and consumers would react to that, storing, processing, deriving and more. I don’t know what the cost per MAU would be, but that would obviously need to be a fraction of the monthly sub!</p><p>So those are some of my initial thoughts on a new social network. They would be the values. We’d look to those values every time we debated something, and see which ideas best match them. Together, they from the unique selling point of the product, something that stands it apart from the old networks. I’ll probably need more, you might have some ideas too.</p><p><strong><em>Interested in trying something like TNN?</em></strong> Click the box below, and I’ll let you know if I get anywhere with it.</p><p><a href="http://eepurl.com/dpbqm5">New Facebook List</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9bc3c8fbaee6" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hackernoon/its-time-for-a-new-social-network-9bc3c8fbaee6">It’s Time for a New Social Network</a> was originally published in <a href="https://medium.com/hackernoon">HackerNoon.com</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Get Paid Software Experience as a Graduate: A Practical Guide]]></title>
            <link>https://medium.com/hackernoon/get-paid-software-experience-as-a-graduate-a-practical-guide-9f3240120502?source=rss-a04c5d4125b6------2</link>
            <guid isPermaLink="false">https://medium.com/p/9f3240120502</guid>
            <category><![CDATA[graduation]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[careers]]></category>
            <category><![CDATA[experience]]></category>
            <category><![CDATA[freelancing]]></category>
            <dc:creator><![CDATA[Sam Jarman]]></dc:creator>
            <pubDate>Thu, 15 Mar 2018 09:25:58 GMT</pubDate>
            <atom:updated>2018-03-15T17:47:23.507Z</atom:updated>
            <content:encoded><![CDATA[<p>So you just graduated, you need a job, your friends seemed to have got one, magically, but you’re wondering when it’s your time.</p><p>This post is intended to be a highly practical post with ideas for how to get there. A lot of authors on this topic, tend to go high level, but I want to deep dive, and hopefully help you and others.</p><h4>Perfect What You Have</h4><p>First up, your CV/Resume and cover letters. These need to be on point. Hopefully by now, you know someone in the industry who is a senior, or has at least done some interviewing. Ask them to review yours. Buy them lunch if you have to, and go through it. They tell you exactly what is wrong, if anything.</p><p>Failing that (you don’t have any network or connections just yet), approach your learning institutions careers department. They can offer great high level advice, but may not be <em>ideal </em>for software roles. Still, something is better than nothing.</p><p>Lastly, go get on Google and <a href="https://www.google.co.nz/search?q=perfect+software+engineer+resume&amp;oq=perfect+software+engineer+resume&amp;aqs=chrome..69i57.9418j0j1&amp;sourceid=chrome&amp;ie=UTF-8">search up tips from others</a>. There’s heaps.</p><p>However, employers might turn around and critique your experience. <em>Duh, I’m a new graduate</em> might be your first instinct, but there are ways to get experience if you’re willing to work for it, which I hope you are. This is your career and livelihood after all.</p><h4><strong>Hustle for Experience</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rW_CF5IbCMBQQ3IDCD5mSQ.png" /><figcaption>The circle of depressing truth. Supplied by @summeroftech</figcaption></figure><p>Experience comes in many different forms. Ideally, employers want to see that someone <strong>paid</strong> you for work, and you delivered on that work. More often than not, you need to find this work for yourself.</p><p>First up, <strong>internships</strong>. Your institution or city probably has an internship programme. If you’re in New Zealand, look no further than <a href="http://summeroftech.co.nz/">Summer of Tech</a>. If you’re in America, there are <a href="https://www.google.co.nz/search?q=internship+programme+tech+usa&amp;oq=internship+programme+tech+usa&amp;aqs=chrome..69i57j69i60j0.6525j0j1&amp;sourceid=chrome&amp;ie=UTF-8">many, many more programmes</a>. Ask around, and maybe actually read those notice boards in the computer labs? Seriously though, the clubs, organisations that are trying to help you actually know what you’re doing. Have some humility, go along and learn.</p><p>Next up, <strong>freelancing gigs</strong>. If you jump on any of <a href="https://www.google.co.nz/search?q=freelancing+tasks&amp;oq=freelancing+tasks&amp;aqs=chrome..69i57.3693j0j1&amp;sourceid=chrome&amp;ie=UTF-8">those task-doer websites</a> (like UpWork, Fiverr, Hired etc) there’s almost always a tech gig on there.</p><p>If those aren’t working for you, it’s time to get creative <strong>get</strong> <strong>your hustle on</strong>. So let’s get into some quick fire ideas, some of which I used myself while I was studying.</p><ul><li>Family and friends — do they need websites or tools written? Set them up on Squarespace or Wix, and charge for your time. They might be willing to be a reference if you’re professional, listen to their needs, and deliver a suitable solution (you know, the job of an engineer).</li><li>Live in a small town? Take a walk down the main street. Google every business as you see their sign. If their website is great, keep walking, if not, go in for a chat. Once agian, empathy and Squarespace.</li><li>Live in a bigger town? Go to your weekend/permanent market. Same idea as the small town street. Once again, empathy and Squarespace.</li></ul><blockquote>Find literally any business, by any method, that is small and offer the same things.</blockquote><ul><li>Personal campaign coming up? Local council? A school board? Offer to set up their site! FirstNameLastNameForThing.com.</li><li>How about going to a few gigs? Chat to the musicians afterwards and see if they want a band website. They probably have a soundcloud, but they might want more.</li><li>Comedians? Actors? Improv artists? Same thing.</li><li>Graphic design, acting or artist friends? They may want a portfolio website. Help them out.</li></ul><p>There are so many people, still, in 2018, who need to get online but can’t afford an expensive web agency, and dont have the time to seek out a cheap developer. So be proactive, present yourself, and get that paid experience.</p><h4>Conclusion</h4><p>All is not lost! You may not have been successful in the first round of grad hires, but it doesn’t mean this wonderful industry isn’t for you. Your path to getting started might take a bit longer, but please, please keep trying. Work hard to land some experience, be gracious in your interactions, and try to enrich others’ lives with your newfound command of technology, and things will work out. Best of luck.</p><p>What are your ideas? Let me know in the comments? <br>If this was useful to you, please click/tap the applause button, it’d mean so much to me.</p><h3>WAIT!</h3><p>Some extra tricks for you wonderful <em>Medium</em> readers.<br>Do you want this? <em>Do you really f*cking want this?<br></em><strong><em>Okay, here’s what you do.</em></strong></p><p>Go online. Search your local area (or wherever you want to work, lets go local for now) and find tech companies there. The bigger, the better, usually (for grad roles). Jump on Linked In. Grab the free month of Premium. This will give you the chance to cold-message 3 people. You might need those later.</p><p>Now, for each company, search their employees. Look for hiring managers, team leads, senior engineers, etc. Message them. Say something like this. <br>‘Hey, My name is Sam. I’m a big fan of &lt;your company&gt;. I am a new graduate, and I’m really just looking to get my foot in the door somewhere and get some experience. I’d love to come to your office, and pair with one of your devs for the morning. I’ll get pizzas delivered to the team for lunch in exchange, too!’</p><p>Send that to 10–15 employees at the company (be smart, hit different departments etc), and then move onto the next one. Don’t get me wrong, most won’t answer, some you’ll need to use your 3 free InMail messages for. But this is the hustle, a numbers game. Do this for 10–15 companies. At this point, you’ve sent 100–200 messages. It’s been a few hours, but we’re hoping for 2–5 replies.</p><p>Go into that company, ask smart questions, be very personable, and get some quality pizza. On the way out, hand them your resume and ask them very nicely to keep you in mind.</p><p>Rinse and repeat.</p><p><strong>If that was work something to you, please hit that applause button, and subscribe for more. ❤</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9f3240120502" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hackernoon/get-paid-software-experience-as-a-graduate-a-practical-guide-9f3240120502">Get Paid Software Experience as a Graduate: A Practical Guide</a> was originally published in <a href="https://medium.com/hackernoon">HackerNoon.com</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Should I Be a Specialist or Generalist? Both!]]></title>
            <link>https://medium.com/hackernoon/should-i-be-a-specialist-or-generalist-both-f0dc6996345c?source=rss-a04c5d4125b6------2</link>
            <guid isPermaLink="false">https://medium.com/p/f0dc6996345c</guid>
            <category><![CDATA[careers]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[learning]]></category>
            <category><![CDATA[teamwork]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Sam Jarman]]></dc:creator>
            <pubDate>Sat, 03 Mar 2018 01:04:34 GMT</pubDate>
            <atom:updated>2018-03-03T01:04:34.407Z</atom:updated>
            <content:encoded><![CDATA[<p><strong><em>Should I Be a Specialist or Generalist? </em></strong>Is a question it think we ask ourselves a lot as software developers. It’s an argument that often ended with a person having to ‘pick one’. But, I don’t think it has to be that way, and my answer is “both, constantly!”</p><h4>Specialisation is Tempting</h4><p>If I’m going to be frank, I think one of the appeals of specialisation is that you can kinda “be finished” learning and just be a good (eg C#, Java, etc) developer after 5 years and do that for the rest of you rlife. While I see the appeal of chilling out like that, it does make for a very toxic team member. I have met too many senior software engineers who are clearly finished learning, and are resistant to change, probably out of pure laziness. This makes it hard for the team to try new things, play with process, experiment with new technologies or generally stay competitive.</p><p>It’s also bad for them. It dies them down, prevents promotion, and blunts their main tool for their job — their brain.</p><h3>The reality is learning never stops happening, and shouldn’t.</h3><h3>Jack (or Jane) of All Trades, Master of None</h3><p>A common fear with being a “generalist” is that you become OK at a lot of things, but great at nothing. A common solution to this is to specialise in something, and become a <em>T-shaped</em> developer, whereby you know one language/stack/tech really well, and a little about other things. This shows you can learn other things, but also can go deep on a certain area.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/367/1*Boa9P-SKq4hNd6rGexpiRg.png" /></figure><p>However, what this diagram doesn’t really represent is <strong>time</strong>. A ‘T’ shape is more of a person now, but not in the past or future.</p><h4>The Paint Stroke Developer</h4><p>My final analogy is one I heard on <a href="https://softskills.audio/">The Soft Skills Engineering Podcast</a>, of which I’m a massive fan and <em>patreon</em> of. I like the analogy because it takes into account time, and how your career will force you adapt and change as time goes on.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_PQjwzyjKIpuIAt-BcI2fA.jpeg" /><figcaption>As time goes on, you explore different areas in varying depth. Free Vector Design by <a href="https://www.vecteezy.com/">Vecteezy</a></figcaption></figure><p>The analogy is this: the soaked paintbrush moves across the canvas, and little amounts of excess paint drip downwards. The drips is the “depth” of your <em>T-Shape </em>from above. The horizontal forms your breadth of knowledge over time.</p><p>There are multiple drips downwards, because over time as a developer, you’ll look into different things, as technology changes, you change jobs, or something new comes out.</p><p>Comparing this to my own life, my drips would be things like C, iOS and Objective-C, Python, Java, PHP, C++, Embedded C, iOS again, Ruby on Rails, Ember JS, Elixir, Swift, AWS, and so on.</p><p>My breadth of knowledge also becomes a bit fatter as time goes on too, as I learn about topics and see commonalities between languages. You’re able to reuse skills from one area in another, and generally you start to be more aware of what is possible with programming languages and tools. Ultimately, your <em>unknown unknowns </em>decrease as time goes on, and your ability to pick up new tools increases, as you’re more able to spot what is familiar, what is contrasting and what is new.</p><p><strong>So I encourage this thinking about your journey.</strong> <em>T-shaped</em>, over and over again. You can change your specialisation, or let it fade as you pick up a new one. I think the best habit you can get into is learning all the time, even if it’s in the same general area. Go deep, but find ways to add to your general view of the tech world, so when you come to something new, it doesn’t completely startle you.</p><p>Best of luck.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f0dc6996345c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hackernoon/should-i-be-a-specialist-or-generalist-both-f0dc6996345c">Should I Be a Specialist or Generalist? Both!</a> was originally published in <a href="https://medium.com/hackernoon">HackerNoon.com</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A Way iBeacons Might Actually Work]]></title>
            <link>https://medium.com/hackernoon/a-way-ibeacons-might-actually-work-7bf634b8358d?source=rss-a04c5d4125b6------2</link>
            <guid isPermaLink="false">https://medium.com/p/7bf634b8358d</guid>
            <category><![CDATA[mobile-app-development]]></category>
            <category><![CDATA[facebook]]></category>
            <category><![CDATA[ibeacon]]></category>
            <category><![CDATA[beacons]]></category>
            <category><![CDATA[marketing]]></category>
            <dc:creator><![CDATA[Sam Jarman]]></dc:creator>
            <pubDate>Mon, 01 Jan 2018 05:56:36 GMT</pubDate>
            <atom:updated>2018-01-01T05:59:44.448Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vwPgM6VEHiaWx_FM0BUjqg.jpeg" /><figcaption>The phone in our pocket is always capable of more. Photo from Pexels.com</figcaption></figure><p>The other day I was thinking more about iBeacons. These bluetooth-powered mini signals never really lived up to the hype they launched with. Implementations never really went mainstream (certainly not here in New Zealand) and most implementations were buggy, or flawed due to signal interference. They currently reside in museums or exhibitions, requiring special apps a lot of highly technical maintenance from staff.</p><p>I have an idea that Facebook could roll this out using their rich user profiles, existing apps, and millions of ad customers — a lot of which have physical retail stores.</p><h4>Broken Promises</h4><p>What happened? We were promised awesome, engaging messages on our devices from retailers we loved. I wanted to walk down the street and get deals from my favourite food places or clothes stores. This was meant to be it, the highly personalised, digital door salesman right on your phone. Yet, years later, this never happened. Let me talk you through why this may have never happened.</p><h4>Too Hard to Set Up</h4><p>iBeacons, or any similar protocol, needed a few key pieces to work more than the traditional sign in the window.</p><p>First up, you need a physical beacon in a place. This could be a beacon or a mobile phone with a Bluetooth (BT) chip. These need to produce a signal constantly, never running out of battery. However, most beacon providers don’t make it easy to replace the battery, which really sucks. 3 months might seem like great battery life in this one-day battery world, but it’s not really “set and forget” for non-technical retailers.</p><p>Secondly, you need an app that constantly scans for beacons. This means, typically, a dedicated that is aware of what are effectively serial numbers of the beacons, and constantly scanning for up to about 50 at any time. There are a myriad of problems to solve here; having to have bluetooth turned on at all times, managing which beacons are being listened for, actually getting users to install your app, dealing with attenuation of signals and keeping moving averages, triangulating position with multiple signals. Ugh, the list goes on.</p><h4>My Idea for a Solution</h4><p>So what’s my big idea then? Well, I think a company that could do this really well is <strong><em>Facebook</em></strong>.</p><p><strong>The customer:</strong> Facebook have millions of ad customers world wide, and they are already set up with audiences, campaigns, billing and more. These are existing so building on new functionality would be a simple addition to the already very powerful advertising tools.</p><p><strong>The stores: </strong>A lot of stores have “iPad as POS” these days, and installing a cheap device to be a dedicated beacon isn’t that unreasonable either. Running of mains power, with the usual charger, this could be very much set and forget. Just open the Facebook app and it’ll start pumping out an iBeacon signal. While your there, maybe answer a few customer enquiries too.</p><p><strong>The user: </strong>Often<strong> </strong>the hardest piece to solve in this equation, this becomes quite trivial for Facebook. Addressing the points above:</p><ul><li>The Facebook App is already installed on almost everyone’s phones, or Messenger, or Instagram, or WhatsApp. This will be the app to monitor for iBeacons and alert users when there is a message for them.</li><li>Managing which beacons to scan for out of possible thousands is easy because facebook knows our location. We check into things, tag Instagram photos with locations, and much more. This city-level accuracy could then power which beacons we’re most likely to walk past, and scan for those only.</li><li>Managing preferences and interests are done for you, since Facebook already collects rich interest data based on your browsing. If facebook ads show you what you like, this would be just as targeted.</li><li>Push notifications are already enabled on these apps since they’re all about engaging with others in real time. Adding another category for push isn’t too much work.</li><li>Bluetooth management is still hard, but as the advent of wireless headphones, smart watches and more dawns, this will become less of a problem. However, as Facebook begins to do this, the trade off (power/value) for users becomes more enticing.</li></ul><p>So that’s how I see Facebook pulling this off. It wouldn’t be a huge amount of work, and it would be an interesting path for their ad business (their only business, ha) to take. Of course, location tracking always raises some good conversations around privacy, creepiness and advertising. The trade off of value and privacy is one we’re all making in one way or another, and that ‘line’ is different for everyone.</p><p>What do you think? Marketers — does this make sense to you? Does it appeal?Techies — have I forgotten something that makes this technically more difficult?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7bf634b8358d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hackernoon/a-way-ibeacons-might-actually-work-7bf634b8358d">A Way iBeacons Might Actually Work</a> was originally published in <a href="https://medium.com/hackernoon">HackerNoon.com</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Tips for Navigating Large and Unfamiliar Codebases]]></title>
            <link>https://medium.com/hackernoon/tips-for-navigating-large-and-unfamiliar-codebases-f5426cea552c?source=rss-a04c5d4125b6------2</link>
            <guid isPermaLink="false">https://medium.com/p/f5426cea552c</guid>
            <category><![CDATA[testing]]></category>
            <category><![CDATA[junior-developer]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[debugging]]></category>
            <dc:creator><![CDATA[Sam Jarman]]></dc:creator>
            <pubDate>Sun, 19 Nov 2017 01:43:08 GMT</pubDate>
            <atom:updated>2017-11-19T01:43:08.474Z</atom:updated>
            <content:encoded><![CDATA[<p><em>This is a post in my </em><a href="https://www.samjarman.co.nz/diaries"><em>Junior Developer Diaries</em></a><em> blog series. I’m writing more every week, and you can sign up to hear more and read previous posts on </em><a href="https://www.samjarman.co.nz/diaries/"><em>my website.</em></a></p><p>So you’re just starting out new at a company, and maybe it’s your first software job ever. You’re faced with a new, large, unfamiliar codebase and a bug to fix. The codebase is something of a size you’ve never really seen before. Your course assignment projects were a couple of files at most, but this is <em>something else. </em><strong>Fear not</strong>. There are things you can do.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NoA5aQjzB4a_7r8DVLZ79g.jpeg" /><figcaption>Large codebases are like space. Often explored, but not fully understood by a single person.</figcaption></figure><h4><strong>Follow the Design Patterns</strong></h4><p>The first tip I have for you is to remember design patterns. Is this code in the MVC pattern? How about MVVM or MVP? Does the codebase use service objects? Does it follow the conventions of similar projects? If you know the bug is probably in a model class, try looking there first, and see if the data access layer or API interaction is buggy.</p><p>Now, <em>hopefully</em>, the code base you’re dealing with has some use of design patterns, and if not, well this tip isn’t for you. Remember, you can always ask where a piece of code may be, or ask if a senior could explain the “method to the madness” with regard to code layout. This short introduction will help you form a good mental model of what the codebase looks like, and give you a sense of what does what and where things are.</p><h4>Reason and Deduce</h4><p>The next tip is to reason and deduce about the design patterns. Try to think logically about where a bug may be. Here’s an example of my mind troubleshooting a typical modern web app.</p><blockquote>So the frontend is getting an error, okay, let’s check the JSON that it’s being sent. Cool, that’s wrong too. So lets check the thing creating the JSON response. Ah, that data object has the wrong value, maybe it’s a layer down, perhaps the way the the model is wrong, so I’ll check the construction and it seems fine. Okay, I’ll check the database, ah, the value there is wrong. Hmmm. What’s writing the value into the database then? I’ll search for places where the model is constructed or modified….etc</blockquote><p>This sort of tracing and diving lets you deduce more about the code. You can rule out whole parts of the code base to narrow your search. Of course, you should never have to check line by line of a 50,000 line project. This sort of thinking doesn’t come from day one, it takes a while to accrue. It’ll take time, but if you realise that this thinking is so important, you can work on it, and you should! Soon, you’ll be like Sherlock Holmes making a deduction.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fv0rC-twlrfg%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dv0rC-twlrfg&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fv0rC-twlrfg%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/65a24cf4eb8e85349a7e5adfacdba97d/href">https://medium.com/media/65a24cf4eb8e85349a7e5adfacdba97d/href</a></iframe><h4>Read the Tests</h4><p>In disappointingly rare cases, there may be some tests to go along with the code base. These are typically a great resource for learning what a certain unit of code is meant to do, by reading the tests, you can understand the expected behaviour, and then compare that with what you’re actually seeing. In a pure TDD, you’d write a test for a failing case, but often it’s not that simple, and a bug is shared between interactions of different units. Perhaps an integration test could be added to start the troubleshooting.</p><h4>Use Breakpoints and Stacktraces</h4><p>Of course, the above tips might only work if you know a bit about the codebase, so as last effort to find out what’s going on, it’s time to use breakpoints. Breakpoints stop execution of the code on a certain line, and from there, you can see the stacktrace to how the code got there. You can use that information to find out where the execution came from, and you can inspect local variables to see how they change as the execution continues.</p><p>Some languages (for <em>reasons</em>) don’t let you debug them in this way, so google the way to do it, if possible, for yours.</p><h4>Time</h4><p>I think a lot of juniors, or any new hire, place harsh expectations of themselves for coming up to speed and familiarity with a code base. This sort of thing typically takes not hours, but months of work. Don’t worry, this is built into considerations when you’re hired, and the more junior you are, the longer it is expected to take for you to get up to speed.</p><p>So, you have the time, use it. Slow down, work logically and methodically. Experiment, learn, and explore. The more you focus on learning what’s there versus just trying to fix it, the better you’ll be able to work in the long run. Theres no excuse to say you dont know what the code does when it’s literally in front of you. Slow down. Read. Learn.</p><h4>Ask!</h4><p>Finally, if after all the above (the best programmers take initiative to try before asking), you’re still stuck… then ask! Your team will be able to help.</p><p>And those are my tips! What ones do you have? Hopefully this helps with the daunting task of unfamiliar code. Please try not to stress. Breath, remember these and you’ll be fine!</p><p><em>This is a post in my </em><a href="https://www.samjarman.co.nz/diaries"><em>Junior Developer Diaries</em></a><em> blog series. I’m writing more every week, and you can sign up to hear more and read previous posts on </em><a href="https://www.samjarman.co.nz/diaries/"><em>my website.</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f5426cea552c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hackernoon/tips-for-navigating-large-and-unfamiliar-codebases-f5426cea552c">Tips for Navigating Large and Unfamiliar Codebases</a> was originally published in <a href="https://medium.com/hackernoon">HackerNoon.com</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Should Students Blog?]]></title>
            <link>https://medium.com/hackernoon/should-students-blog-42e718a57a3e?source=rss-a04c5d4125b6------2</link>
            <guid isPermaLink="false">https://medium.com/p/42e718a57a3e</guid>
            <category><![CDATA[documenting]]></category>
            <category><![CDATA[students]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[studying]]></category>
            <category><![CDATA[blogging]]></category>
            <dc:creator><![CDATA[Sam Jarman]]></dc:creator>
            <pubDate>Tue, 14 Nov 2017 07:50:20 GMT</pubDate>
            <atom:updated>2017-11-14T07:50:20.332Z</atom:updated>
            <content:encoded><![CDATA[<p><em>This is a post in my </em><a href="https://www.samjarman.co.nz/diaries"><em>Junior Developer Diaries</em></a><em> blog series. I’m writing more every week, and you can sign up to hear more and read previous posts on </em><a href="https://www.samjarman.co.nz/diaries/"><em>my website.</em></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SrKM-X_AZQLQo7RaLzMK7A.jpeg" /></figure><p>I recently attended a panel with the <a href="https://itp.nz/">ITP</a> at <a href="http://www.weltec.ac.nz/">WelTec</a>, and after the event, a student asked me if they should be blogging, even though they “don’t know anything”.</p><p>The answer is <strong>HECK YES</strong>.</p><p>But they were right. Content is the hard part as a student. You’re kind right, you don’t know much yet, and certainly not at a level that most think they need to be at. But that’s not really the reason I’d visit a student’s blog?</p><p>What I mean is, I want to see your journey. In your blog posts, or vlogs, or tweets, or podcasts, I want to see a few questions answered:</p><ul><li>What are you learning right now?</li><li>What did you find fun?</li><li>What didn’t you like, and why?</li><li>What are you struggling to learn or understand, and what are you doing about it?</li><li>What you need help with from the community?</li><li>Are you doing an internship or part time work relating to software? Tell me what you’ve learned*</li><li>Are you doing any open source or project work? What are you learning there?</li></ul><p>Ultimately, <strong>document your journey.</strong> Now, these wont be the most mind blowing posts, sure. They won’t be on the front page of hacker news, and they wont be shared and viewed countless times. But what it will do is help you more than you think.</p><p>It’ll help you learn. By writing down and digesting your thoughts into a post, you’ll understand the topic better, and therefore remember it better when it comes to exams.</p><p>It’ll help you learn to communicate. One of the really lacking skills for devs is written communication (and I’m no master myself!), so getting in the habit of writing long form will help.</p><p>Finally, it’ll set you up for good habits. I believe great developers blog (or something), so making time for this activity will be helpful as you enter your career.</p><p>Read more: <a href="https://www.samjarman.co.nz/blog/online-presence">Having an Online Presence as a Junior Developer</a></p><p>Best of luck!</p><p>*What you can, some may be commercially sensitive. Check with your manager.</p><p><em>Disclaimer: Blogging, vlogging, etc production as a hobby takes time you might not have. That’s okay. It’s not a ‘hard’ expectation and reasonable employers shouldn’t hold it against you. That said, I urge you to find just </em><strong><em>some</em></strong><em> time to try do a small bit of the above. </em><strong><em>The benefits come with very little time investment.</em></strong><em> A single paragraph once a week is great! Reach out to me if you have questions on this.</em></p><p><em>This is a post in my </em><a href="https://www.samjarman.co.nz/diaries"><em>Junior Developer Diaries</em></a><em> blog series. I’m writing more every week, and you can sign up to hear more and read previous posts on </em><a href="https://www.samjarman.co.nz/diaries/"><em>my website.</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=42e718a57a3e" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hackernoon/should-students-blog-42e718a57a3e">Should Students Blog?</a> was originally published in <a href="https://medium.com/hackernoon">HackerNoon.com</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Dev Chats: Andyy Hope]]></title>
            <link>https://medium.com/@samjarman/dev-chats-andyy-hope-9fe5d57600fe?source=rss-a04c5d4125b6------2</link>
            <guid isPermaLink="false">https://medium.com/p/9fe5d57600fe</guid>
            <category><![CDATA[conference]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[interview]]></category>
            <category><![CDATA[interview-preparation]]></category>
            <category><![CDATA[swift]]></category>
            <dc:creator><![CDATA[Sam Jarman]]></dc:creator>
            <pubDate>Tue, 14 Nov 2017 07:47:46 GMT</pubDate>
            <atom:updated>2017-11-14T07:47:46.047Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3Bka1s2IOB62oIwpWpreCw.jpeg" /><figcaption>Andyy. Always full of hope. #dadjokes</figcaption></figure><h3>Introduce yourself! Who are you? Where do you work?</h3><p>Hey, my name’s Andyy Hope and I’m an Australian iOS Engineer about to start work at Facebook. I’m also the organiser of Playgrounds Conference in Melbourne and the founder of the newly created charity initiative, Wu-Tang Clang.</p><p>In my spare time I like to write a technical blog where I like to give some tips on working with the Swift language and Apple frameworks, and every once in a while I give talks at meet ups or conference whenever given the chance.</p><h3>Who or what got you into programming?</h3><p>In the late 90s, I was introduced to the internet and I was pretty much obsessed ever since. Not long after, I came across AngelFire web hosting which offered a free service for people who wanted to make their own personal websites, they offered great templates for beginners like myself and I took advantage of those.</p><p>One day I stumbled across a feature which allowed me to edit my webpage’s HTML, I remember being absolutely stunned when I first saw the code. Naturally, I tweaked with it and broke a lot of things but it made me want to learn HTML, so I came across a website<a href="http://htmlgoodies.com/"> HTMLGoodies.com</a> which became my go-to place everyday and soon enough I learned some basic HTML for editing my webpage.</p><p>I guess everything I’ve done since, stems from that very time. I kept with programming websites through high school, making Pokemon and Dragonball Z fan pages. But in my late teens/early twenties I fell out of programming and started pursuing a career in the hospitality industry. It took me quite a few years to realise that wasn’t something I wanted to pursue and I eventually went back to focus on tech and programming.</p><h3>What impact has organising Playgrounds Conference had on your career?</h3><p>I’d say it’s done quite a lot. I remember back in December of 2015 at the Melbourne CocoaHeads meetup. No one at the time knew me, and I wanted to change that by becoming more involved with the local community. They were doing introductions for people in the room, I put my hand up and introduced myself and I mentioned to everyone that I wanted to be a bigger part of the community, but I had no idea I’d go on to create a conference for them one year later.</p><p>Playgrounds helped me meet a lot of new people and make a lot of new friends and in our industry, having a larger network is generally a positive thing for most people. A lot of my speakers were from companies in the San Francisco, so when I asked if they could refer me for an interview they were more than happy to help me out. Six months later, I’ve landed a job at Facebook.</p><h3>Similarly, how was writing a lot of great content on Medium helped with your career?</h3><p>Writing blogs on Medium is a great way to learn something yourself, as well as teach it to others. I’ve discovered when I write, I try to assume the reader knows almost nothing. Making this assumption forces me create a deep understanding of the concept so I may convey it in simpler terms for someone else. The more I write, the more I learn.</p><p>“If you can’t explain something simply, you don’t understand it well enough” — Albert Einstein</p><p>Having people send me a comment or a tweet thanking me for writing an article is also a really great feeling. It’s nice to see the work I’ve done help others, and that’s really a driving factor in helping me write more. I guess it’s similar to what you’re doing with your blog posts, right?</p><p>“If you’re teaching someone how to make a pizza, assume they have no idea what cheese is” — Me</p><h3>I see you’ve recently been applying to new jobs, including some study around algorithms and CS. Why do you think that study is important? Did it help?</h3><p>Definitely. I wouldn’t recommend anyone apply for a position in the US without having at least brushed up on their Computer Science (CS) knowledge. Interviews in the US are a very long and arduous process for which candidates will be tested on all sorts of things ranging from general CS knowledge to practical domain experience.</p><p>I recently decided that I wanted to relocate to San Francisco (SF) so I could be close to the action, and I didn’t want to risk failing and having to wait another 6 or 12 months to reapply. So I left my job, moved back to my home city of Perth and studied for six weeks straight. Every day I did multiple white boards, watch numerous algorithm videos on YouTube and bushed up a lot on my CS knowledge.</p><p>A lot of on-site interviews range from four to six hours, and you are questioned on almost everything you’ve ever learned. In my opinion, it’s best to be absolutely prepared and give it all you got so you don’t have to risk repeating the process at a later date, chances are you will forget a lot of stuff by the time you reapply and would have to spend a couple of weeks ramping up again.</p><h3>What has been your toughest lesson to learn in your software career so far?</h3><p>Without a doubt, being a team lead. Throughout my career, I’d always been a solo dev or working with one other person. I’d never really worked in a large team, so there’s some gaps in my experience there.</p><p>At my last role, I was solo dev for about two years until we decided to hire two other people to work on the iOS project with me. As my role changed changed to team lead, I didn’t get to write as much code as I liked because I had to focus my attention to making the team more proficient by removing roadblocks, improving processes, product planning, managing people as well as bunch of other non-coding tasks.</p><p>It was difficult, and I can’t say I was amazing at it. But it’s definitely an eye opening experience and something that I want to get better at in the future. But in the mean time, I’m really excited to be working within a team.</p><h3>What would be your number one piece of advice for a successful software career?</h3><p>I can’t say I have one piece because I feel like my interpretation of being successful is a compound of different things.</p><ul><li>Learn in the open. Write blogs, open-source all your work, give talks at your local meet up.</li><li>Get involved in your local community and participate at events. Having a network of professional friends has the potential to open more doors down the road.</li><li>Pay it forward. When you’re in a position to give something back, you should use that to help others get to where you are. We’re all where we are because of those which came before us.</li></ul><h3>What books/resources would you recommend?</h3><p>I’m a big fan of technical books, and I should be reading more than I have in the past 18 months.</p><ul><li><a href="http://amzn.to/2yVRCsC">Cracking the Code Interview</a>, by Gayle Laakmaan McDowell</li><li><a href="http://amzn.to/2zPq07o">Head First Into Design Patterns</a>, Bert Bates, Kathy Sierra, Eric Freeman, Elisabeth Robson</li><li><a href="http://amzn.to/2hhZ21p">Clean Code</a>, by Robert Cecil Martin</li><li><a href="http://amzn.to/2yUWNZI">Pragmatic Programmer</a>, by Andy Hunt and Dave Thomas</li></ul><h3>Finally, make your shoutout! What would you like the readers to go have a look at?</h3><p>You can follow me on Twitter<a href="http://www.twitter.com/andyyhope"> @andyyhope</a>, check out my Medium posts<a href="http://medium.com/@AndyyHope"> medium.com/@AndyyHope</a>,</p><p>If you want to find out more about Playgrounds, you can follow it on Twitter<a href="http://www.twitter.com/playgroundscon"> @PlaygroundsCon</a> and view the website on<a href="http://playgroundscon.com/"> PlaygroundsCon.com</a></p><p>Or if you’re interested in Wu-Tang Clang initiative, you can follow it on Twitter<a href="http://www.twitter.com/wutang_clang"> @WuTang_Clang</a> or check out the website on<a href="http://wutangclang.org/"> WuTangClang.org</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9fe5d57600fe" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>