Software Developer, Functional Programming
Location: Philadelphia, PA
Azavea is a Philadelphia-based B Corporation (explanation) that is seeking to expand their software development team. The company specializes in building web or mobile tools and applications that enable the visualization of geographic data, with a heavy focus on projects with strong social and civic value. Clients include local government, non-profit, and academic entities from across the US. The company is a strong supporter and contributor to open source software, as their GitHub account demonstrates.
This position with the GeoTrellis team is a unique opportunity to work on a sizable open source project with complex technical and algorithmic challenges.
Azavea is based in Philadelphia, and we are looking to grow their GeoTrellis team, which develops an open source software framework, GeoTrellis, a low latency geospatial data processing framework based on Scala and Akka.
You are …
… a software engineer who enjoys being constantly challenged to solve tough problems using the best tools available. You want to write open source software in an open source environment. You challenge the status quo of software development by keeping up to speed with cutting edge techniques and technologies. You understand or are eager to learn why functional programming is a great way to write beautiful code.
The GeoTrellis team develops an open source software development framework that supports low latency, distributed processing of raster geospatial data. The software is based on Scala and Akka and is used in many types of web applications, including public transit travel-sheds, economic development and business siting, watershed modeling, processing satellite imagery and digital humanities research. They are about to release version 0.9, have recently submitted to the Eclipse Foundation’s LocationTech working group, are beginning to integrate Spark, and have many other plans for growing the framework over the next few years.
GeoTrellis is growing, and we need your help to expand the framework and make it more useful to other developers.
What You’ll Do:
- Know how to architect scalable back-end software where performance is critical.
- Implement new features, algorithms, data processing operations, benchmarks and tests for a large Scala-based software framework.
- Engage in multidisciplinary work that applies an agile process (scrum board, daily stand-ups and two-week iterations) to design, architecture, development, testing and deployment.
- Support the development of an open source community around the GeoTrellis project.
- Contribute to both a growing company and to the open source communities that support their work.
- Be excited about code, be interested in reading about code, and go to conferences about code.
- Want to constantly learn in order to help a bleeding edge open source project stay on that edge.
- Demonstrate fluency with at least one functional programming language such as Scala, Clojure or Haskell.
- Interested in working with a small, collaborative team on meaningful projects.
- Get excited about contributing to a large, complex open source project.
You get extra points for:
- Experience with Akka, Spark, or other Scala-based distributed processing frameworks.
- Having work with distributed data processing frameworks, like Hadoop, Amazon MR, etc.
- Demonstrating your open source or other community service contributions.
- Strong background in algorithm development where performance is critical.
Developers at Azavea will use high-performance Linux or Windows workstations and at least two monitors, and generally work a 40-45 hour week with flex time.
Azavea offers a salary commensurate with skills and experience and a benefits package that includes: profit-sharing bonus, health, dental, vision, retirement plan, flexible hours, and over 30 days of combined paid time off. We welcome candidates from all walks of life and value diversity in our company and do not discriminate based on race, religion, ancestry, national origin, sex, sexual orientation, age, disability, marital status or domestic partner status.