We were so excited to get the chance to catch up with Software Engineer Oskar Wickström. Find out a bit more about Oskar and his journey as a Software Engineer.
What's your background? Where did you grow up?
I'm from the countryside in southern Sweden, about an hour's trip from Malmö. Growing up, I spent a lot of time outdoors, especially before me and my friends got hold of computers and starting arranging LAN parties. During my teens and early twenties, I focused on music, studying jazz and rock for some years. Our '80s hard rock band needed a band website, so there I was, learning PHP, HTML, and CSS. From there it went on to .NET, Java, and NodeJS, doing contracting work for a few years, before I decided to go full-time doing functional programming.
When did you first become interested in Functional Programming?
My initial encounter with functional programming was when my first mentor introduced me to Scala. Taking his advice, I went all-in on learning the language. Lambdas and higher-order functions felt like magical superpowers, and I wanted to learn all there was. Not long thereafter, I discovered Haskell and GHC, and it has stuck with me ever since.
What’s your favourite functional language?
Haskell is my language of choice. I also enjoy PureScript, Idris, Racket, and CSS. Yes, CSS.
How do you stay up to date on all things functional and new technologies?
I try to speak at and attend multiple software conferences every year, maybe around five or six of them. Other than that I follow a lot of people on Twitter, subscribe to some newsletters, and actively try to get out of my bubble by following technology news outside the functional programming space. In addition, GHC Haskell is a quickly evolving language and ecosystem, and I try to keep up with research by reading papers from ICFP and other academic conferences covering functional programming.
What is your current job title?
Something like "Software Engineer" would probably be most accurate, but there is no formal title.
What would be your favourite part of the role?
I enjoy working with system design at a higher level, instead of focusing too much on specific libraries and frameworks. Carefully designing system architectures, finding ways to evolve existing systems, pulling things apart that shouldn't be coupled, bringing things together that are closely related, and improving the testing of software, are all part of the work I enjoy doing. Finding an elegant solution in Haskell code is very rewarding, but it's in the more abstract, or higher-level, part of the work that I feel the most at home.
Do you contribute to the community? If yes, how?
A couple of years after picking up Haskell I started teaching internally at the company I was working, and externally at local ClojureBridge events. I got involved in online communities and started speaking at meet-ups and conferences, writing blog posts (see wickstrom.tech), doing screencasts (see Haskell at Work), and maintaining various open-source projects.
Have you been to any conferences? What is your favourite? Or if not which one would you love to go to?
I've been going to conferences regularly over the last three years or so, often by giving a talk myself. Lambda World in Cádiz is one of my favourite conferences, along with Øredev in my hometown Malmö. I also had a great time at Strange Loop in St Louis when I went there in 2014.
Do you have a favourite speaker?
The art of giving entertaining conference talks with deep theoretical and technical depth is mastered by Simon Peyton Jones, no doubt. I also love John Hughes talks on QuickCheck and property-based testing. Finally, Rich Hickey's early talks on Clojure and Datomic had a great impact on me. But if have to pick one, it's SPJ.
What advice would you give to someone looking to start a career in software engineering?
Don't be afraid to explore new and old ideas, and try to see past the marketing and hype to learn about the underlying foundations. Try out all kinds of things and figure out what in software makes you excited. Finally, the best way that I've found to learn is to teach, so I highly recommend sharing your knowledge.
Keep up to date with Oskar Wickström on his Twitter page here.
You can also read our last Q&A blog which was with Scala Developer at Drivetribe, Hamish Dickson.