D

Mobile Network Engineering on iOS

DDMR
Full-time
On-site
Austin, Texas, United States

Note: We are open to remote, part-time, and non-native English speaking applicants for this specialized role.

About the Mobile Network Engineering on iOS position

You will build the first prototype of our mobile passive metering tool. Your time will be split:

  • 10% sharing your ideas and expertise within your team to help plan and prepare your product initiatives
  • 70% building out a passive metering tool that utilizes an on-device mobile VPN
  • 10% writing tests, doing code reviews, and continuously improving our overall code quality
  • 10% researching and improving your general software development skills


Your job is to help us build and deploy a performant on-device mobile VPN for network-level data collection on iOS. In this role you will: 

  • work with our mobile, data, and front-end engineers to build a design and specification for our mobile metering application
  • build the first version of our mobile passive metering tool allowing us to passively collect network traffic data from our opt-in research panelists
  • iteratively improve application security and performance to ensure a high quality end-user experience
  • deploy the mobile metering application to the TestFlight and the Apple Store so our panelists can begin using it


Candidate need-to-haves:

We expect expert-level understanding of:

  • Swift or Objective-C, the iOS SDK, and publishing apps in the iOS App Store
  • Networking at all layers of the protocol stack, and the iOS internals which power them, 
  • Specifically, the iOS Network Extension Framework and Packet Tunnels
  • TCP/UDP, HTTPS networking, SSL/TLS, VPNs, and forward proxies
  • Man-in-the-middle attacks and associated tools like mitmproxy
  • Certificate-pinning, how it works, and how to detect it


Additionally, we expect significant experience with:

  • a scripting language, like Python or Ruby
  • support tools like Git, CI/CD, Bash, SSH, Charles, Wireshark, and Chrome DevTools


Candidate nice-to-have:

  • Experience in Java or Kotlin, the Android SDK, and publishing apps in the Google Play Store
  • Experience working with Docker containers or other virtualized environments, and with AWS


We don't expect, but would be impressed by:

  • Experience with asynchronous event-driven network application frameworks like netty, libuv, libdispatch, or SwiftNIO
  • Proficiency in C/C++ 
  • Exposure to software like NGINX and Apache Traffic Server (ATS)


We will actively evaluate your:

  • Ability to explain all of the different layers of the network stack
  • Coding in Swift or Objective-C, and if applicable, Python and C/C++
  • Knowledge of the iOS SDK, with a particular focus on it's networking components
  • Ability to manage an iOS development and testing environment


And we're seeking teammates with the following personality traits:

  • You've got a "figure it out" and "get it done" attitude that can break through barriers to execute.
  • You're methodical, process-oriented, and are constantly thinking about ways to increase efficiency and generate leverage.
  • You're ask for forgiveness, not permission, and respond well to direct feedback when you inevitably make a mistake.
  • You communicate very clearly in both spoken and written forms. You're concise, articulate, expressive, and appreciate good grammar whether you're brainstorming with the CEO on Slack or problem-solving with a partner via email.
  • You're progressive, inclusive, and egalitarian. You’re cognizant of your ingrained biases and take steps to mitigate and dispel them.


Here are some characteristics we're looking for in our ideal candidate: technical, good communicator, helper, adaptive, critical thinker, creative thinker, fast on your feet, detail oriented, good design sense, constant learner, analytical.

You know what's up:

  • You're all about that start-up life. You're motivated by success and have an intrinsic bias towards taking action and ownership.
  • You're logical, subscribe to rational thinking, and prefer making data-driven decisions whenever possible.
  • You can naturally distill complexity. You break down complicated ideas into their fundamental components for analysis.
  • You see both the forest and the trees. You can understand the implications of small changes to the big picture, and can also create a plan for bringing a big picture to fruition one task at a time.
  • You understand the cost of indecision and can break through decision paralysis, even when faced with ambiguity.


You may be a good fit for this role if other positions of interest include: mobile developer, Android developer, iOS developer, network engineer



Legalese: DDMR is not accepting unsolicited assistance from search firms for this employment opportunity. Please, no phone calls or emails. All resumes submitted by search firms to any employee at DDMR via email, the Internet or in any form and/or method without a valid written search agreement in place for this position will be deemed the sole property of DDMR. No fee will be paid in the event the candidate is hired by DDMR as a result of the referral or through other means. Notice to Applicants: We reserve the right to research relevant facts about you which are public on social media platforms or other sources over the Internet. We will retain such data only as long as reasonably needed.