Pickle is hiring.
288 Norfolk St.
Cambridge, MA 02139
Do you want to get in on the ground floor of a fast growing, VC backed, robotic grasping company?
Then join Pickle Robot! Founded by an all ages cast of MIT alum, we are teaching off-the-shelf robot arms how to pick up boxes and play tetris with them. At Pickle, our goal is to work alongside people in the very messy world of the loading dock, reducing the backbreaking human effort that goes into getting your online orders to your door.
Robots can now autonomously move themselves around; the next frontier is doing something useful with their hands when they get somewhere. If you are excited by walking/biking to work in Cambridge, MA to spend the day helping solve software, optimization, machine learning, and autonomy problems with an incredible team of engineers (half of us are women!) then send us a resume!
5% 401k and [5, 15]% team performance bonus
[.1, 1]% equity for the current hiring round
Competitive benefits, PTO, and sabbatical
We’re hiring software engineers to MTS (Member of the Technical Staff) positions across the board of experience levels and interest areas. All candidates must be extremely comfortable writing Python from a Linux dev environment and not be afraid of matrices, polynomials, derivatives, and other basic mathematical concepts. We do not currently have any open roles for: mechanical, electrical, or embedded engineers. However, if your background is in these areas *in addition to* one of our posted roles, please apply!
Member of the Technical Staff - Software Engineering
All candidates, regardless of experience level or interest area can expect:
To learn new skills, continuously sharpen your existing skills, exceed your comfort zone, and solve at least some problems you weren’t sure you could solve at first.
As an early employee, the opportunity to influence both the technical and business aspects of the company’s evolution.
To deploy code to production.
To spend at least some time visiting customers and understanding how our robots are deployed and on-the-ground problems.
To write tests and documentation along with your code.
That making robots behave autonomously is super hard and even more fun.
For Junior level candidates we expect:
Working knowledge of a linux dev environment, bring your own editor (as long as it’s emacs)
Significant working knowledge of programming in Python
Comfortable with basic mathematical concepts like matrices, polynomials, derivatives, etc.
An undergrad engineering degree or 3 years of industry experience writing software.
Familiarity with basic concepts from at least one of the listed technical areas, along with enthusiasm for working in that area.
For Mid level candidates we expect in addition to the Jr. level requirements:
Demonstrated capability in one of the listed technical areas (or similar) through past personal/professional projects or published research.
Interest and ability in helping mentor young engineers to become great engineers, including reviewing other’s code, working through problems at the white board, and occasional pair programming.
Solid professional attitude and work habits, higher than average initiative, and strong references.
3-6 years of experience writing software in either industry or academia.
Good technical judgement when making design decisions and even better debugging abilities.
Optional: Interest and ability in giving technical talks or making technical blog posts.
For Senior level candidates we expect, in addition to the mid-level requirements:
A track record of solving novel problems in one of the listed technical areas (or similar).
A demonstrated ability and interest in either owning large chunks of technical architecture or leading small teams in implementation, testing, and debugging. Taking on significant responsibility for the outcomes of these efforts.
A willingness and ability to help manage the development schedule and set long term commitments.
Even for simple shapes like boxes, autonomously picking things up and putting them down is a bleeding edge challenge. To be successful, we will need to use much of the roboticist’s toolbox on the problem. Given the enormous scale of shipping and fulfillment logistics (14B boxes were loaded into and out of tractor trailers last year...multiple times), we have customers that desperately want us to succeed.
Simulation: We currently use Drake, a C++ (with partial python bindings) toolbox for analyzing the dynamics of our robots and building control systems for them, with a heavy emphasis on optimization-based design/analysis. We don’t expect to be able to capture all the complexities of the real world in simulation, but effort invested in simulation will help prototype new control strategies, generate training data for anything learning-driven, and enable us to use model-based optimization methods where appropriate. Qualified candidates should have experience working with some simulation environment or another, be it simulink, gazebo, mujoco, unity, etc.
Optimization: Optimization is critical to get the robot moving as fast as possible without hitting anything or triggering protective stops. Path planning (in space) and trajectory planning (in time) are generally done in series. Our robots tend to work in fairly structured environments with minimal obstacles, but must move as quickly as possible under a large number of dynamical constraints (like torque limits, joint velocity limits, and contact forces). This means that dynamics must be taken into account from the beginning. The good news is, we have essentially no dynamic obstacles, so much/all of the planning can be done offline. Qualified candidates will be familiar with some of the methods used to solve planning problems in robotics such as sampling based planners like RRT, trajectory optimization methods like direct collocation, or mathematical programming/optimization.
Reinforcement Learning/Computer Vision: At Pickle, we are facing a few key challenges which are potentially well suited for various tools from the machine learning toolbox. The first is determining how to stack boxes on top of one another to form stable pallets and walls. We call this “playing tetris” and so far have had great success using simple heuristics and vanilla REINFORCE to guide box placement. Second, using model-free reinforcement learning techniques to create control policies for grasping and placing may prove more successful than traditional trajectory optimization. Third, we are experimenting with deep reinforcement learning to learn policies representing individual robot skills, for example quickly picking up a box and rotating it, fitting a box into a hole, or grasping a box from a cluttered pile. Finally, deep learning has proved an extremely successful tool for vision tasks, such as identifying boxes and their poses from a cluttered scene, although good-old-fashion machine vision works well for many tasks too! Qualified candidates will have a passion for machine learning, as well as some experience with tensorflow (or equivalent) or openCV, and a passing familiarity with modern reinforcement learning techniques like PPO and DQN, or traditional policy search methods. Familiarity and enthusiasm here is enough, we don’t expect many candidates to have deep expertise in this area.
Behavior: The behavior team puts all these things together to create a fully autonomous robot control system capable of all sorts of box handling tasks demanded by our customer, stacking, unloading, sorting, and collaborating with human collaborators. The behavior team is essentially the application or system integration team for a robot company. Anyone meeting the Jr. MTS qualifications or higher with an interest in autonomy should apply! Those with a background in reactive programming, like games or UI, may find their experience ports nicely to the robotics domain. Everyone on the behavior team should enjoy debugging, as integration is a primary challenge here!