Job Opportunities: Five Engineering Positions Open at Sofar

Sofar is accepting applications for five different engineering positions, all geared toward advancing their dream of building the world’s best ocean data platform. Their team combines expertise in ocean science, technology, and innovation to develop new solutions for ocean exploration and observation.

Date published: 2019/04/01

Who we are

We are a bunch of ocean nerds and keep our offices close to the water (literally). We’re a scrappy startup that values teamwork, transparency, and innovation.  We maintain a work atmosphere that’s light-hearted and jovial, but when we need to get something done, we can switch gears and move fast.

We are deeply passionate about making ocean data widely available to ocean communities and enthusiasts with powerful tools and visualizations.

Note: All positions listed below are full-time contracts based in San Francisco, California.

Senior Embedded Software Engineer

The Position

We’ve got two hardware products currently in production (Spotter and Trident) with several more in the early development stages.  All of our products require some level of embedded software and we’re looking for an experienced team player who can jump in and help out across the board.

Your average day will involve working with our hardware and software teams to make great embedded software possible.  You’ll be designing embedded system architectures, writing code, making implementation decisions, and will take some ownership of our existing software.  We operate in a lightweight kanban flavor of agile development and stay in sync by way of daily standups and generally trying to actively communicate with each other throughout the day.

There’s a leadership aspect of the position as well.  We’ll be leaning on you to responsibly weigh implementation options considering multiple factors such as deadlines, scalability, tech debt, and performance.  We’ll be looking to you as somebody who can share their knowledge and coach others in your coding strengths.

Essential Job Functions

  • Architect, design, and implement embedded system software for our products.
  • Apply working knowledge of VCS’s best practices to develop and maintain code.
  • Help architect embedded systems - from processor selection to application/service layer design.
  • Implement excellent C++ solutions and demonstrate comfort reading code written by others.
  • Write python code.
  • Comfortably work within Linux/Unix systems.
  • Quickly pick up new languages and frameworks.
  • Some relevant experience playing with robotics, drones, IoT, camera, or sensing applications.

Job Qualifications

Minimum:

  • College Degree or equivalent learning experience required.
  • 4+ years of professional experience.
  • Strong interpersonal and communication skills.
  • Deep technical knowledge of common software languages, web systems, technology infrastructure, and technical frameworks.
  • Strong analytical and quantitative skills, with the ability to use data and analytics to understand and improve performance.
  • A flexible work schedule and be on-call during evenings and weekends, as needed.
  • Demonstrate initiative and self-motivation, conscientious and provide complete follow-through on areas of responsibility.

Bonus Points:

  • Experience with video pipelines and streaming.
  • Experience with ROS.
  • Experience with DDS.
  • Expertise with networking.
  • Experience with bare metal and RTOS systems.

Senior Software Engineer

The position

As a senior full stack engineer, you’ll be most heavily engaged with the rest of our software team on a day-to-day basis.  Your projects will vary based on current company priorities - sometimes they shift quickly, but hey, we’re a start-up, that’s expected - and consequently you’ll get a lot of opportunities to work on different technologies, platforms, and layers of our applications.

We have a small fleet of customer-facing apps that are in production - spotter dashboardsofar spotter app, and the trident controller to name a few - and we’ve got a lot more exciting projects in the works that we haven’t made public yet. You’ll get opportunities to apply your engineering talents to all of them and help us build out the supporting infrastructure - think DevOps.  You’ll get ownership of how you write your code (as long as the linter ok’s it) and get to make technical decisions on implementations on all projects you contribute to.

We try to structure our company time with the maker’s schedule in mind - we don’t like to schedule meetings if at all possible.  We’ve implemented a lightweight flavor of a kanban agile environment that only requires attending a daily standup.

As a senior engineer, you’ll get opportunities to demonstrate both technical leadership on our projects as well as being a cultural role model for the team and company.

Essential Job Functions

  • Architect, design, and implement systems applying advanced understanding of backend, database, and APIs/web services best-practices and architecture.
  • Apply working knowledge of VCS’s best practices to develop and maintain code.
  • Demonstrate knowledge of SDLC and Agile software development methodologies.
  • Take projects from idea inception to code complete.
  • Quickly pick up new languages and frameworks.

Job Qualifications

Minimum:

  • College Degree or equivalent learning experience required.
  • 4+ years of professional experience.
  • Strong interpersonal and communication skills.
  • Deep technical knowledge of common software languages, web systems, technology infrastructure, and technical frameworks.
  • Strong analytical and quantitative skills, with ability to use data and analytics to understand and improve performance.
  • A flexible work schedule and be on-call during evenings and weekends, as needed.
  • Demonstrate initiative and self-motivation, conscientious and provide complete follow-through on areas of responsibility.

Bonus Points:

  • Experience with large time series databases.
  • Experience in mathematics, science, or signal processing.
  • Experience with data science and machine learning.
  • Familiarity with front-end frameworks. (Angular, React, Vue, etc.)
  • Experience and/or passion for DevOps and CI.
  • Familiarity with Node.js.

Front End Software Engineer

The position

As a front end software engineer, you’ll get plenty of creative license on all of our company products.  As far as the day-to-day goes, you’ll be mostly working with the other members of the software team and also staying in sync with our branding and marketing team.

You enjoy writing front-end code that will actually be released to production.

You love creating user interfaces that are built entirely with a friendly and easy-to-use customer experience in mind.

You enjoy both plugging in your headphones and jamming out some new code, but also appreciate the time when collaborating and working closely with your teammates.

You have strong opinions about what you’re creating.  You’re comfortable following a designer’s lead on what something should look like, but also have a good sense for when to push back and interject a new idea or a different direction.  Additionally, you’re not afraid to push back on a design if you know the amount of work required to complete it in code is too high an effort.

Essential Job Functions

  • Create amazing data visualizations and customer experiences for all our internal and external facing tools.
  • Form and communicate opinions on what type of user interfaces we should be creating for our customers.
  • Own new front-end interfaces for our applications and support current products by following existing design patterns.
  • Apply deep knowledge of front-end frameworks and able to compare and contrast different tech stacks and libraries to decide which option(s) are best for a given problem.
  • Establish and define integration contracts with backend servers.
  • Take whiteboard discussions to rapid prototypes.
  • Work comfortably in both independent and collaborative efforts.
  • Create data-driven solutions to aid our understanding of user behavior.

Job Qualifications

Minimum:

  • College Degree or equivalent experience required.
  • 3+ years professional experience.
  • Strong interpersonal and communication skills.
  • Deep technical knowledge of common web systems, software languages, technology infrastructure and technical frameworks.
  • Strong analytical and quantitative skills, with ability to use data and analytics to understand and improve performance.
  • A flexible work schedule and be on-call during evenings and weekends, as needed.
  • Demonstrate initiative and self-motivation, conscientious and provide complete follow-through on areas of responsibility.

Bonus Points:

  • Experience with React, Angular, Ionic and/or Vue
  • Experience mapping out user flows
  • Experience making wireframes
  • An eye for basic design principles
  • Familiarity with Agile practices

Software Engineer

The Position

As a full stack software developer, you’ll be most heavily engaged with the rest of our software team on a day-to-day basis.  

We have a small fleet of customer-facing apps that are in production - spotter dashboardsofar spotter app, and the trident controller to name a few - and we’ve got a lot more exciting projects in the works that we haven’t made public yet. You’ll get opportunities to apply your engineering talents to all of them.

You’re curious and want to know how things work.  When things don’t fully make sense, you’re not afraid to ask for more details.

If something doesn’t go according to plan, you can easily adapt and roll with the changes.  Pivoting is an acceptable part of your work environment.

Maybe you’re fresh out of college or have just learned to code over the past couple years – either way, the position is one where you’ll get exciting opportunities to learn new and different technologies and will get to follow existing design patterns to implement new features.  

You’re confident in your abilities, but also have a good sense of when to reach out to your co-workers and ask for guidance on implementation decisions.  You’re not afraid of learning from failure.

Essential Job Functions

  • Follow existing design patterns, independently implement small and medium-sized features/bugfixes and the automated tests that cover them.
  • Own smaller parts of larger feature sets by working with teammates to accomplish the greater goals.
  • Research, compare, and contrast options for 3rd party integrations.
  • Integrate with different software systems (both internal and external systems).
  • Learn and demonstrate a willingness to practice good software development processes.

Job Qualifications

Minimum:

  • Recent computer science college graduate (or a related technical degree) or 2+ years professional experience.
  • Interpersonal and communication skills.
  • A basic knowledge of web technologies and methodologies of how different software systems can work together.
  • A flexible work schedule and be on-call during evenings and weekends, as needed.
  • Demonstrate initiative and self-motivation, conscientious and provide complete follow-through on areas of responsibility.

Bonus Points

  • Experience with Node.js
  • Familiarity with Angular
  • Familiarity with Agile practices
  • Familiarity with signal processing, modeling, and/or data science
  • Familiarity with ocean or environmental sciences

Software Engineering Intern

Who you are

You are a problem-solving, team-player who wants to see their engineering talents have a direct impact on the success of the software team and the greater company.

You’re curious and ask questions about how things work.  When things don’t fully make sense, you’re not afraid to press for more details.

You’re looking for an internship that provides the opportunity to work on meaningful projects, and learn a ton from a talented multidisciplinary team of engineers.

You’re excited to help us make a huge positive impact on our world.

Essential Job Functions

  • Follow existing design patterns to independently implement small coding projects.
  • Observe guidance from, and collaborate with, senior engineers for implementing medium-sized coding projects.
  • Research, compare, and contrast options for 3rd party integrations.
  • Ask questions and learn!

Job Qualifications

Minimum

  • Interpersonal and communication skills.
  • A basic knowledge of web technologies and methodologies of how different software systems can work together.
  • A flexible work schedule and be on-call during evenings and weekends, as needed.
  • Demonstrate initiative and self-motivation, conscientious and provide complete follow-through on areas of responsibility.

Bonus Points

  • Experience with Node.js
  • Familiarity with Angular or other front-end frameworks
  • Familiarity with Agile practices
  • Familiarity with modeling physical systems, data science, signal processing
  • Passion for the world’s oceans

How to Apply

You can find out more about each of the positions on our website. If any of these jobs align with your passion and experience, we would love to hear from you!

Email your resume and a short cover letter explaining why you’re excited about the open position to the recruiting team and we will get back to you ASAP.