Lead Software Developer

LightSide Labs - Pittsburgh, PA - www.lightsidelabs.com

----

We’re a small machine learning and educational technology company hiring our first Lead Software Developer to manage an existing development team. This role will be a management position to oversee our development process, supervise and support our developers in getting their work done, and define the architecture of our technology for supporting classrooms. You’ll be building a platform to be used in K-12 schools and universities nationwide, as well as directly integrating into 3rd-party software used by millions of students every year.

This role will lead a core team of experienced software developers in a close-knit, friendly work environment. We want someone who is experienced enough in both Python and Javascript to be opinionated about what good code looks like; someone who can spot a bad algorithm, data structure, or code pattern and quickly teach the developers how to do it better; and someone who can work with our product owners, business managers, and third-party customers to define our product roadmap and the path to each release.

This role is being hired locally for our Pittsburgh office. Compensation and benefits will match market rates, dependent on experience.

----

Technical Responsibilities:

- Oversee product releases, agile sprints, and day-to-day deployment of all software development at the company, keeping track of progress of each member of the team without micromanaging.

- Directly contribute to software development initally, growing into a more purely managerial role over time as our team expands.

- Translate business requirements and product design plans into realistically scoped software development tasks, and maintain our team’s development process to deliver on those plans efficiently.

- Work with developers personally every day, on tasks from abstract architecture design to line-by-line code reviews, and find teaching opportunities to build skills.

- Ensure best practices for development are defined, and that team members are following through on them, from high-level product release reviews to commenting practices in individual files.

- Collaborate with technical and nontechnical coworkers in other groups, focusing on product, UX design, quality assurance, R&D, and business development.

- Keep management appropriately aware of development status at all times, including seeing potential problems before they happen and proposing solutions.

- Identify new technologies and platforms to improve our existing infrastructure, balancing new opportunities with stability and scheduling requirements.

- Recruit and evaluate new hires as we expand our technical staff over time.

----

Necessary Requirements:

- 5+ years experience in professional software development.

- Past management experience in a professional context.

- Excellent communication skills, from discussing high-level strategic plans with 3rd-party executives to training and on-boarding new developer hires.

- Deep knowledge of Javascript and Python in a web application context.

- Strong opinions about software development practices, including agile development, code reviews, teamwork, and task management.

- Strong opinions about scalability, code complexity, computational efficiency, and maintaining uptime in an online software application.

- Great interpersonal and management skills to maintain a positive and friendly development culture in the office.

- Excitement about building software in educational technology and using machine learning in applications that support students and teachers in schools.

----

Preferred Experience:

- Scientific Python using the Numpy/Scipy/Scikit-learn toolchain.

- Javascript application frameworks, especially AngularJS.

- Experience with cloud hosting services, especially Amazon Web Services.

- Machine learning and natural language processing experience or interest.

- Continuous integration, source code management, and automated testing tools.