Android/WebRTC Engineer - Inmate Tablet
655 Montgomery Street, 18th Floor San Francisco, CA 94111
You’ ll work in our proprietary Inmate Tablet ecosystem providing the means for Friends-and-Family to visit with Inmates via monitored WebRTC video conferencing. While much of this ecosystem involves Android and iOS applications, inside those application we’ re primarily employing WebViews powered by a combination of Ruby on Rails applications serving as JSON based API’ s to modern front-end stacks such as ReactJS and Angular. Our WebRTC stack is based on Kurento and our custom signaling layer.
Our clients San Francisco office embraces a unique style of Agile software development where each engineer contributes to a fixed set of systems (systems they own) by being staffed to short-lived ad hoc teams that are assembled around single roadmap epics. These teams are fully cross-functional and contain expert contributors from each of the systems touched in the epic. In addition, you’ ll be a member of various System Owner groups which look after individual systems long term. It’ s an exciting combination of highly focused business driven work alongside broader architectural projects centered on a system’ s longer-term technical vision. Our ideal candidate enjoys working cross functionally with Designers and Project Managers and doesn’ t shy away from occasionally doing a bit of everything when needed.
- Intimate understanding and command of one’ s application architectures, data persistence patterns, build pipelines and business rules.
- Participate in backlog grooming, story-mapping, sprint planning, sprint review, and retrospectives for the ad hoc teams assembled around said epics.
- Refine, estimate, and decompose user stories into technical implementation tasks in close collaboration with your peers
- Create quality documentation, including flowcharts, diagrams, and written documentation describing features and functionality.
- Ensure that coded features and functionality meet requirements, including those related to system performance, response, redundancy, security, metrics, and tracking.
- Maintain excellent test coverage for every piece of code you write.
- Participate in Crucible code reviews by offering insightful feedback and direction to your peers.
- Serve as an escalation target for production issues.
- Bachelor' s degree in Computer Science, Engineering or related field; 4 years of equivalent experience in lieu of a degree.
- A minimum of 5 years of experience as a traditional mobile application developer with mastery of the common protocols, paradigms, and patterns.
- Experience in agile methodologies (Scrum, Kanban, etc.)
- Experience deploying and maintaining production applications.
Additional Technical Qualifications:
- Project Management:
- JIRA, or similar ticketing system
- Crucible, or similar code review and collaboration system
- Engineering Tools:
- Git required; Gitlab is a plus
- Jenkins, Crucible, or similar tool is a plus
- Languages, Frameworks, Technologies:
- Android and iOS WebViews
- Ruby on Rails and/or React, Backbone, AngularJS, HTML5, CSS/LESS/SASS
- REST API' s (Bonus points for Ruby on Rails experience)
- WebRTC and/or Kurento
- Android application development
- iOS application development
- Java/Scala/Play Framework