Senior Software Engineer, Android

San Diego, CA, US

Job Description / Skills Required

About GoPro

GoPro, Inc. is transforming the way people capture and share their lives. What began as an idea to help athletes self-document themselves engaged in sport, GoPro has become a mobile storytelling solution that helps the world share itself through immersive content.

GoPro offers a fun and fast-paced work environment with passionate and motivated people who have a drive to learn, innovate and succeed

This position is designed for an awesome, fun, smart, hardworking, creative, friendly, responsible person in order to effectively help GoPro execute on company vision, create great products, and make a great working environment. Senior Software Engineers are responsible for researching, designing, implementing, and testing of software on Android devices; educating other engineers; assisting technical leads and fellows with architectural decisions.

What You Will Do

Design and create software in Java for Android-based phone and tablets
Participate in the software design process by asking questions, documenting, giving and receiving feedback, and applying your experience to improve the quality of designs
Following industry best practices when implementing software
Using visual design, information architecture, and interaction design to assist the writing of working software
Checking code into version control according to company version control policy
Working with databases
Refactoring old code so it runs faster and more efficiently
Testing software via automated methods, including but not limited to writing and running unit tests, functional tests, integration tests, as well as testing using manual methods
Skills We’re Stoked About

At least 8 years of professional experience (or equivalent), including an expert level understanding of Android OS programming with Java
Expert level understanding of object oriented programming concepts and SOLID
Expert level of understanding of threading, networking, and memory management
Understanding of advanced software engineering techniques
Knowledge of multiple areas of software engineering
Speaking intelligently and with authority about a variety of technology topics
Bachelors or Masters degree in Computer Science, Engineering, or Mathematics
Expertise in Java and developing native Android Applications with SDK
Proven successful track record showing an aptitude for engineering and product sense
Experience with JUnit, implementing automated tests, including unit, functional, and integration tests.
Experience with Git, continuous integration, Jenkins, Gradle, Groovy, Maven, ProGuard, and Android builds
Bonus Skills We’re Stoked About

Expertise with XML, JSON and REST-based APIs
Audio, Photo, or Video editing and streaming
Knowledge of wireless connectivity technologies, including Bluetooth LE and WiFi
Experience integrating native modules using Android NDK
Experience with low-level Android device drivers and hardware bring up a plus
Alternate OS: Linux, iOS, OSX, Windows, RTOS
Languages: Groovy, Objective-C, Python, C/C++
Knowledge of OpenGL or Vulcan
Security and encryption protocols such as SSL, TLS, SSH, PKI, AES
Strong debugging and Instruments skills
Experience using Scrum or other Agile processes for software development
Perks

Your own GoPro Camera (Mounts and accessories included)
Live it. Eat it. Love it. – Two dedicated hours during your week to explore your passions and capture it with your GoPro.
Employee commuter shuttles throughout the Bay Area (San Francisco, Oakland, San Jose)
Employee discounts on GoPro products and other industry discounts
Paid Time Off Programs
Medical, Dental & Vision – premiums are fully paid for employees
Life Insurance & Disability Benefits
Company 401(K) Match
LiveHealthy Program – Monthly benefit toward participation in wellness activities
Awesome wellness program including onsite fitness classes, health screenings, farmers market and more!
Subsidized onsite cafeteria
Fully stocked break rooms on each floor!

More Jobs at GoPro