In the series “Job Profiles”, we talk to various members of the InterNations team about their position and the work they do.
For this post, we had a chat with Adam, one of our software engineers and himself an expat from the United States.
Let’s start with the basics! Can you briefly describe your position at InterNations and the work involved?
My official job title is “Lead Engineer”, and I’ve been working here for almost four years, since August 2015. I’m leading one of our Product Experience Teams (PXTs for short). The PXTs unite team members from product development, design, and engineering, who all collaborate on a particular part of our platform. It’s a partnership between these three areas, with none of them necessarily dominating the team.
My PXT is responsible for building the new InterNations mobile app. It’s my task to lead them from both a people management and a technical perspective, and I’m heavily involved in the product development process as well — everything from designing the features of the new app, estimating and prioritizing tasks, and ultimately shipping new features. This means coming up with what our users want and making that available.
Through the collaboration I just mentioned, we come up with the next feature we need to build: how it should function, what it should look like, how much it’ll cost, how long it will probably take, and when to actually go about creating it. Once we are building a feature, I work with the other engineers on the team to discuss the technical aspects, such as what the structure in the code might look like, how we should organize it, and how to test it to make sure it’ll continue to function in the future.
All the engineers in this PXT report to me, so I need to do their performance reviews, have regular one-on-one feedback sessions with each, talk about things that are going well or where there’s still room for improvement, and whatever else comes up. My background is in IT consulting, so while this is my first position as a people manager, it feels a bit like a natural extension of my previous work. In addition to giving technical directions, I’m now trying to help people develop professionally and personally.
Did you start out at InterNations in this role? Or how did you get into developing mobile apps?
When I first started at InterNations I was hired to work on the front end of our website — the “front end” is the part of the website application which runs in the user’s browser — which is different from what I’m doing now, working on a native mobile app. My responsibilities have changed quite a bit!
While working in front-end development, I started playing around with a technology called React Native in my free time. This is an open-source mobile application framework that allows you to write apps for iOS and Android devices simultaneously, using a single codebase that relies on JavaScript. Without this tool, you’d have to build a native app once for iOS, then forget about everything you did, and start from scratch on an Android version of the same app. React Native solves this particular problem.
To try my hand at this technology, I built an early unofficial version of our Guest List Manager app, just for fun. I’d attended one of our events and had seen people checking in with printed-out guestlists on paper, and I thought, “Okay, this is kind of ridiculous!” So, I came up with the idea of creating an app to tackle this issue: It helps our InterNations Ambassadors and Consuls — the people who host official events and activities for our members — to welcome and check in our event attendees faster.
I demoed this prototype at the office, and everyone was suitably thrilled that we could do this. I then got a couple of engineers to officially work on the Guest List Manager app and push it out the door. This was a learning experience for me, getting into mobile app development for the first time.
After that, InterNations decided to replace our hybrid mobile apps. Hybrid apps combine web-based apps and native technology targeted towards specific mobile platforms. They still need to be rendered in a web browser on your tablet or smartphone, and they can be slower in speed and performance. Our new InterNations apps are therefore native apps rather than hybrid ones, and I was asked to take over the team responsible for building them, using React Native again.
As I’ve just mentioned, React Native technology is based on JavaScript. This also solves an organizational problem we had. Our hybrid apps were developed by external contractors and written in Objective-C and Java, a technology stack that’s unfamiliar to the web engineers working at InterNations. But the engineering department is obviously used to JavaScript, and so we can easily use the React Native tech stack going forward with our new apps.
Can you tell us more about your typical day at work?
I definitely don’t have a typical day at the office, and that’s great! But I can tell you what I’m working on right now: Our current team effort involves making the new native app available to everybody, but we’re not quite there yet. We’re presently in a kind of limbo state where some people are still using the old hybrid apps.
We are working on several aspects at the moment: First, we are measuring certain key performance indicators from a business perspective. For example, we keep track of how many messages are sent on the hybrid vs. native app, how many people sign up for our events, or how many upgrade to our premium Albatross Membership. We want to make sure that these numbers don’t go down as our users switch from the old app to the new one. Second, we are trying to collect as much user feedback as possible and figure out what they like (or don’t like) about the new version.
And lastly, we’re currently busy migrating all our users to the new app. We started the rollout process by targeting specific user groups. For instance, in the beginning, our native mobile application had groups, events, a messaging feature, and all that stuff before it offered the ability to upgrade to a premium membership plan. So, for obvious reasons, our Albatross Members, who have already upgraded, got to try it first.
By now, though, we apply looser criteria. Newly registered members have a 50% chance of landing in the new app instead of the old hybrid one. We’re doing this in order to make a comparison regarding the respective business performance, as I just explained. But hopefully, the entire rollout and migration process will be done shortly, and all InterNations members can enjoy our new app!
What did you do before moving to Munich and working at InterNations?
I have a long technical background that now stretches back 16 years. I got interested in technology by doing things like programming my calculator, and then I was building websites in my free time, teaching myself HTML, CSS, some JavaScript, and other programming languages.
I then started working in the tech industry at age 15, with a side job at a small manufacturing consulting company. My official title was “webmaster”, back in the day when “webmasters” were still a thing! Since then, when I was just a freshman in high school, I’ve worked for about half a dozen different companies, everything from multi-billion-dollar corporations to small start-ups that no one’s ever heard of. InterNations is my first medium-sized company, which is quite a new experience for me.
It’s also the first time I’ve lived abroad. I had traveled a lot, but I’d never lived outside of Minnesota before. I came to Munich in 2015, moving together with my then girlfriend — now wife — who’d just accepted a job as a counselor at an international school in the area. She had applied to various schools all over the world and happened to get an offer from Munich.
I connected with InterNations and did an interview via Skype before we moved — I think I found out about the company on Stack Overflow — and I received the job offer shortly after arriving in Germany. I actually remember the interview pretty well: It was a video call involving Lars, our CTO, and Vitor, a former colleague from front-end development. At the time, Lars had blueish-green hair for some reason, and Vitor was sporting those impressive full sleeve tattoos on both arms, so I got quite the first impression of the company culture at InterNations.
How do you like expat life in Munich so far?
Munich is a great place to live: rather small, fairly green, and not that far from the mountains. Living so close to the Alps is probably the best part of expat life in Bavaria for me.
My home state, Minnesota, is more or less completely flat, mostly forests and lakes, but without any major elevation, so Munich makes for a nice change. I spend as much time in the mountains as possible, hiking, climbing, and mountaineering. I especially love the Klettersteige (via ferrate), protected climbing routes which are typical of the Alps, but barely exist in North America. If you can, you should really try one of those!
When I’m not off to the mountains, I’m also involved in the local tech community, like the JavaScript Coding Nights or a meet-up group for everyone interested in the React / React Native technology. Recently, before Easter, I was also speaking about our experience with building the InterNations app at this year’s React Amsterdam, the largest React conference worldwide. You can watch my talk on You Tube if you’re interested.
Why should other engineers come and work for InterNations?
As I mentioned before, InterNations is the first medium-sized business I’ve ever worked for, and I rather like it.
Compared to a big corporation, the advantage is that hierarchies are much flatter. You do have the possibility to change the direction of where things are going, to make an impact. You also have direct access to C-level management, which is just not possible when you’re part of a mega-corporation. However, it’s more relaxed than a start-up where it’s important to ship as fast as possible, otherwise the lights get shut off — here there’s a better balance between speed and quality.
InterNations occupies a kind of nice middle ground between those two extremes. There’s still a drive to get things done and be successful, of course, but you have more time to think about how to make new features or code maintainable in the long term, more of an emphasis on quality.
This is one of the things I particularly appreciate about InterNations from an engineering perspective, the focus on quality and maintainability. I like to joke that it’s a bit like German engineering principles applied to software development. German engineering still tends to mean something to people, things like reliability or performance, and we definitely have those values here — testability, automation, coding standards, and so on. I think we’ve really built a good culture around that.