Sveriges vassaste utvecklare - 7 Snabba med Henrik Joreteg
Henrik är en senior Fullstackutvecklare som jobbat med utveckling sedan 2008, men hans intresse för programmering startade redan 2005. Henrik har både hunnit med att skriva böcker, vart aktiv som lärare inom programmering och även hållit föredrag på stora programmeringskonferenser.
Berätta om din karriär och vad du gör just nu?
I taught myself how to program in 2005 by following a Coldfusion tutorial on Lynda.com, then taught myself Python and Django. A few years later I landed my first real developer job in 2008. Shortly thereafter I fell in love with JS. I've been trying to build app-like experiences in JS ever since. But now, finally... we have PWAs (Progressive Web App)! If you want to hear more about all that, I recently did an interview for a podcast called "My JavaScript Story" that gives a lot more of my background: https://devchat.tv/my-javascript-story/mjs-066-henrik-joreteg
These days I'm doing a lot less open source work and conference talks than I once did, but have kept quite busy. I recently spent 18 months contracting with Starbucks, helping them re-platform their stack from .net to node.js, react, and redux. I talked them into building a progressive web app, then helped them prototype then build it out. That work was featured extensively at both Google I/O and Microsoft Build. So that was all very exciting.
But since then I've written a book about building apps with Redux.
Kan du berätta lite mer om boken?
The book is called "Human Redux" and its focused on real-world patterns and approaches for building simple, reliable apps with redux. Many of these patterns have proven their usefulness in the Starbucks PWA and I pull in some anecdotes and example from there to support my points.
The entire book is actually available to read online for free here: https://read.reduxbook.com. If you find it useful, I'd ask you to buy the e-book version to support the rather enormous amount of work that went into it.
But since then I've written a book about building apps with Redux.
Kan du berätta om några av dina mest spännande projekt?
Architecting the PWA for Starbucks was a big deal for me career-wise. I wish I could tell you about my current clients, but that will have to wait until those things are public.
I've also built a few products of my own, most recently I've partnered with a Dentist who performs sedation (anesthesia) on patients. With his input we've built a PWA for tracking all aspects of Anesthesia procedures and produce the medical records as required by insurance companies in the U.S. It's easily the most complex application I've ever built. Even more so than the Starbucks app, it's been a test of the concepts and patterns I discussed in the book. We're just at a point where we're ready to start selling that, so I'm very excited about the prospects of that.
Vad har du för tips för att utvecklas och hålla sig i framkant som utvecklare?
Lots of people spend time doing something, but never actually get significantly better at it. In order to grow and improve you must do something that resembles deliberate practice. If you're just doing what you already know how to do you're not actually improving. Keep trying new things and learning. If you can't do that in your current job/role... make a switch. Make sure you're not the smartest person you're working with.
Vilka personliga egenskaper anser du är viktiga för att kunna bli en bra utvecklare?
This one is simple. You have to be stubborn. Few things will test your patience like tracking down the seemingly-impossible bugs. If you're not stubborn, you'll just get frustrated and quit. Software development is like an epic battle between you and the computer... you can't let the computer win.
Vad anser du är viktigt på en arbetsplats för att kunna utvecklas?
I kind of said this already, but you have to do things that are beyond your current skill set in order to grow. If you're not being challenged, leave.
Vad ser du för trender inom tech inför 2018?
It's all JavaScript at this point. Get really good at building PWAs and get a deep understanding of using ServiceWorker, and I don't think you'll struggle to find work.
Har du några nya tekniker eller kodspråk på din bucketlist?
It's not so much new languages, or techniques. It's just doing crazy things with the tools I already know. For example, I have some rather unique approaches to cache management and application versioning in ServiceWorkers that I want to keep developing and experimenting with. I think this is an area where collectively we're just starting to scratch the surface.
Progressive Web Apps are just where it's at. The actual business impact numbers are just starting to come in. Pinterest, for example saw 843% increase in signups since launching their: link. There's a list of other rather amazing stats here: https://www.pwastats.com
It's a no-brainer. It just makes simple business sense as I outlined in my blog: https://joreteg.com/blog/betting-on-the-web
Vilka nyhets- eller utbildningssajter inom Tech följer du och kan rekommendera?
Personally, I get 90% of my info about new developer-related stuff from Twitter. The ~400 people I follow on twitter are like a personal news-feed of qualified opinions. I'm very picky about whom I follow. Everything else I read seems to be stuff I got linked to from those folks.
Har du några tips på verktyg och tjänster som du använder dagligen och som gör vardagen enklare?
I'm fairly boring in this regard. I rely heavily on Google Inbox especially its ability to delay things and be reminded of them later (just ask Samuel from Demando, I get around to things eventually even if I've delayed them for weeks because I'm busy). I also have Google home devices around my house that I can ask to remind me of things, or I pull out my Pixel 2 and ask it to remind me of things. These show up in my inbox along with mail i need to respond to and these reminders can be pushed out just like mail. So, my Google Inbox ends up being my todo list and have become very central to my workflow.
I try to minimize "noise" and so I really try to avoid using too many different systems for things. I also try to automate all the boring, mundane stuff in my life. One of my favorite little productivity hacks is something I like to call "crap day" as described here: link where I batch things that matter less, but can't be automated.
I use Github and Github Issues for issue tracking on my personal projects/businesses. Again, this is just because Github is where my code is anyway and I just don't want yet-another-thing-to-check.
It all comes down to the tweet I've had pinned on my profile for years. It really extends beyond code, it's essentially the philosophy I try to live by:
"If you don’t actively fight for simplicity in software, complexity will win.
…and it will suck."