Savioke United States Remote
2022-03-22

Remote Python Software Engineer [Apps Team]

Context
Do you love Robots? We do too! Come join us. If you've dreamed of taking your coding [magic] and seeing it come to life in the real world via robot, here is your chance.

[Apps Team]
- We're the team responsible for the UI on the Relay's touch screen, high-level robot behavior including robot personality, and the cloud applications that interact with the robot.
[Remote] - Work from home! We care more about getting the job done than where you do it. Given that we are working with robots in the physical world, you will likely want to interact with the robots directly at some point - coming to visit HQ for a couple of weeks a year or visiting a customer site is recommended. A willingness to travel to customer sites from time to time is a bonus.

Where are you? -
We're flexible but right now, we have a preference for people in the pacific timezone, followed by US timezone, followed by f(t) = abs(1/t) where t is the difference in timezones away from the pacific timezone. i.e. (the eastern timezone would be +3). A lower preference score can be made up for by stronger skills.

Culture
Here at Savioke, we value our collaborative cross-group culture. We all wear many hats and collaborate across groups. Anyone in software engineering is able to make a PR to any other team's repo. If you've got a good idea, and want to take the initiative to implement it if approved, you'll likely get a chance, even if it's with another team. If you love working with a very smart group of people who are focused on working towards company goals in a collaborative environment, you will enjoy working here.

Desired Experience/Skills

You should be fluent in Python 3+. We use a lot of asyncio, so being strong on this front is a huge plus.

Required Experience:
5+ solid years of software engineering/development experience. Why you might ask? In this position, we need someone who is a self-starter and can get a lot of quality code written without much hand-holding. This means you've got experience under your belt where you've been bitten by doing things the wrong way and have had time to learn from it. On the plus side, you'll be joining a team with a minimum of 10+ years of experience, so there will be mentoring involved to help you grow even further. If you have less than 5 years of experience, you may still be considered, but please be ready to show code that shows you're performing above your experience level.

The list of desired experience/skills is below. We recommend being strong in
one or more of the [Tracks] listed below for the best chance of being hired.

Minimum Experience

    • Fluent in Python 3+
    • git/GitHub/PR/merge-conflict
    • pip/pipenv/poetry
    • virtual environments
    • Knowing what an abstraction is why you would or would not want to use one
    • Willingness to learn and adapt
    • Linux / Bash / SSH experience [strongly recommended/+]

Cloud-Backend Experience [Track Cb]

    • FastAPI or other asyncio based web backend framework
    • Django experience [+]
    • DB/ORM experience [+]
    • Crossbar/WAMP/SocketIO/WebSockets [+]
    • REST API creation [+]

Cloud-Frontend Experience [Track Cf]

    • React or similar experience
    • Typescript/Javascript/CSS/HTML
    • UI/UX design experience
    • Webpack or similar experience
    • Redux or similar experience [+]
    • Websockets [+]
    • Web app security [+]

General Python Experience [Track P]

    • asyncio [huge +]
    • ORM experience - preferably tortoise-orm or django-orm [+]
    • ROS experience [huge +]
    • DSL design [+]
    • unittest framework or similar experience [+]
    • jinja templating language experience [+]
    • threading / race-condition battle experience [+]
    • math/pandas/analytics [+]
    • API wrapper creation [+]
    • Software integration (i.e. experience integrating with other software via API) [+]
    • ML/Deep Learning [+]

UI Experience [Track U]

    • Experience with a desktop GUI toolkit such as Qt/QML
    • UI animation [+]
    • Unity [+]
    • Photoshop/GIMP [+]
    • Illustrator/Inkscape [+]

Bonus Experience

    • Docker/Kubernetes/Istio
    • DevOps/Linux System Administration
    • Electronics Tinkering
    • EE, ME, Math/physics
    • Art/Photography skills
    • Game Dev
    • Robotics / Drone
FAQ
Do I need a degree to apply for this position? - No, you don't need a degree to work with us. You do need to be a good coder. Having CS, EE, and/or Math skills is recommended. We value experience and skills over degrees. Degrees do make it easier to know you have a foundation to build on.

Does just graduating from a 4+ year CS degree program count?
- It counts for something for sure, but if you don't have 3+ years of professional programming experience on top of graduating, this isn't the right position for you. In that case, please check if we have any Jr. Software Engineer positions or internships available.

What does [Track X] mean?
- Think of them as optional skill/experience sets. You don't need to be strong in all, but being strong in at least one is important. Being strong in multiple is a huge plus.