Senior Software Engineer - Mobile Virtual Device Cloud (m/f/d) (Remote)
- IT, Software development, System Engineering Jobs
Description
About Us
In today’s software-centric economy, speed is everything. Before Sauce, testing took too long, it was tedious, expensive to maintain and placed focus only on monotonous infrastructure issues. With Sauce, developers are free to innovate and accelerate their software development cycles, improve quality, deploy with confidence and reduce costs. Our automated testing cloud gives our customers the ability to deliver a flawless digital experience to their customers by ensuring the web and mobile applications people use every day work on any browser or device. We call that automated testing, but you’ll probably just call it awesome!
The Role
As a Senior Software Engineer in the Emulator/Simulator Cloud team, you will get the opportunity to solve a unique problem set at the junction of virtualization and emulated mobile operating systems. You will develop a unique understanding of the interactions of every layer of abstraction in the LXC and QEMU stacks underlying our Android and iOS products. You will also be challenged to optimize for RAM consumption, CPU usage and dig into the protocols underlying the Android Studio and Xcode IDE tools.
Working in this nascent space means no two days will be the same. As part of this small dynamic team, you will engage with your teammates on tackling complex tasks using known as well as unfamiliar methods. From debugging system-level issues and coding components for our platform to automating new ways of producing system images to eliminate manual tasks, you'll have immense opportunity for learning and growth. You'll also work with Product to discuss new product features, contribute to defining product features, product roadmap planning and collaborate cross-functionally with other teams across Sauce.
Our engineering culture is strong where having ownership, respecting individuality, ideas over hierarchy, engineering excellence and a willingness to help your teammates through collaboration and feedback is not only encouraged but emphasized. Working on this well-defined feature, you will not only see the impact of your work not only at Sauce Labs but also on thousands of the world's largest global brands.
Responsibilities
- Participate in the entire development life cycle, from planning through implementation, documentation, testing, and deployment, all the way to monitoring
- Understanding of the interactions of every layer of abstraction in the LXC and QEMU stacks underlying our Android and iOS products
- Optimise RAM consumption, CPU usage of our Emulators and Simulators
- automating new ways of producing system images to eliminate manual tasks
- Make intelligent choices for the adoption of new technologies based on your experience.
- Ensure high observability standards for services and systems through the application of monitoring tools and methodologies.
- Strive for constant improvement and contribute to the power of our agile development culture.
- Be part of an on-call rotation
Responsibilities
- Experience coding in Python or any other scripting language
- Expertise developing and debugging system software, analyzing system-wide functional and performance regressions, tracing and profiling applications
- Familiarity with OS and filesystem-level tools; profilers (perf, pprof), debuggers (gdb) and tracers (ptrace, linux bpf, dtrace)
- Experience with container technologies like LXC or Docker
- Having worked with tools like Ansible, Puppet, Chef or Terraform
- Experience with cloud infrastructure (AWS, GCE or Azure)
- “Security-first-and-foremost” way of thinking
Nice To Haves
- Experience setting up CI systems (Jenkins, TravisCI, CircleCI, etc)
- Expertise in KVM, QEMU or other virtualization platforms
- Being comfortable with Linux environments and/or mobile (iOS/Android) development and tooling
- Kubernetes experience
Hard Skills
- Coding and Programming (Python, C#, Java, PHP, etc
- Operating Systems
- Quality assurance
- Software development
- Process improvement
Soft Skills
- Communication
- Adaptability
- Team-oriented
- Responsible
- Attention to detail