500px is the leading online network for photographers. Our mission is to connect the worlds photographers & provide them with opportunities to discover inspiration, get exposure & rewarded for their work, & help them learn & grow their skills. Every month, millions of people from around the world use our website & mobile apps to find & share the worlds most inspiring photography.
We take pride in the products we ship & love what we do. Our engineering culture values mentorship, ownership, collaboration, & getting stuff done.
Our technology stack includes: Java, Python, React, GraphQL, Go, MySQL, Redis, Elasticsearch, iOS (Swift), Android, & various Amazon AWS services.
***Please note that we are all currently working remotely until staff feel safe & comfortable returning to the office. Once we do, we expect to continue granting our team the flexibility of choosing to work from home or anytime from our HQ, but will confirm this once our plans are firm.
We are looking for a senior full stack developer to help us continue to improve our 500px platform. You'll have the opportunity to play a pivotal role in 500px's success as part of a passionate engineering team.
It has been a long journey since 500px started back in 2009. Though we had been continuously improving our previous backend, its fundamental design no longer fit our current scale of data & traffic. We have completed the first step in our journey by splitting our Monolith into Rest APIs, but we've only just gotten started. Now we are looking to increase efficiency by implementing protocols like GraphQL, reevaluating API design, & building new features to improve our community for our users. Youll have ownership over the backend, & youll support other developers in building new services & components. You will be an advocate for performance, stability, & scalability across all of 500px, & encourage others to be as well. We are looking for a person who loves collaboration & is excited to take on new challenges.
What you'll be doing:
- Working with product managers/owners, designers, & other developers on product requirements & design
- Lead the design & technical planning of new features & projects
- Building highly scalable architecture, services, & solutions
- Implementing & maintaining high-quality code & documentation
- Coordinating & collaborating with developers across teams (including mobile & remote teams) to ensure the solution is implemented properly end-to-end
- Providing technical mentorship to other team members
- Helping to architect the 500px systems infrastructure
- Providing assessment on risks & evaluating tradeoffs in terms of performance, security, maintainability, etc.
- Participate in on-call rotation
- Demonstrate strong ownership on responsible projects & technical areas
What the ideal candidate will have:
- 3+ years experience working in Java
- 2-3 years experience with Spring framework
- Proficiency in various Java frameworks, libraries & frameworks like Spring Boot, MyBatis, Lombok, Feign
- Proficiency with Restful web services in Spring framework
- Experience integrating web service calls and/or RESTful APIs, some knowledge of GraphQL
- Hands-on experience with projects on Spring Boot on Java 11
- Experience developing Java REST Web Services (Java 11, Spring Boot, API/ Microservices Design, Maven)
- Experience working with Microservice-based architecture
- Experience with AWS based services & Docker/Kubernetes based deployments
- Solid understanding of OOP & some FP concepts
- Knowledge of design patterns (MVC, Strategy, Factory, Singleton) & general design understanding.
- Writing unit & integration tests & mocking of external services
- Proficient understanding of SCM tools & best practices (GIT, Maven, Travis CI)
- Some basic knowledge of infrastructure management tools (such as Terraform, CloudFormation, Anisible, etc)
- Some knowledge of other languages such as Go, Python or Scala
- Experience with relational databases such as MySQL, Postgres, etc.
- Some experience with a NoSql database such as MongoDB, Redis, Memcached, Elasticsearch or DynamoDB
- Experience applying those skills & knowledge to build & maintain high-traffic, consumer-focused web services
- Good architectural sense & a passion for high quality code, honed by experience
- Solid understanding of application monitoring, metrics, & performance optimization such as New Relic & DataDog
- Comfortable providing active technical guidance to other developers
Bonus points for:
- Fluency in Mandarin
- A love of photography (tell us what you shoot!)
- Being a member of the 500px community
- Experience with the photography industry
- Competitive salaries
- Flexible work hours
- Great health & dental benefits starting on day one
- HQ in downtown Toronto within walking distance of TTC & Union Station, lots of great nearby food options, & dogs are welcome
- Professional development opportunities
- Amazing coworkers from around the world (repping 20 countries & 19 languages)
- Generous time off policies for vacations, sick days, birthdays, religious observances, civil involvement, new babies or pets, emergencies, or even if you just need to recharge
- Life-friendly Zoom calls we love to see your pets & hear your kids jokes!
- Phone screen: < 30 min conversation with a hiring manager
- Coding challenge: we'll ask you to complete a short assignment, & then share it with us to review
- Team interviews: 3-5 hours on Zoom where you'll e-meet multiple members of our team
We believe diverse teams perform better, & we seek to increase our overall team diversity. We make active efforts to reduce the impact of unconscious bias in our hiring process.
500px welcomes & encourages applications from people with disabilities. Accommodations are available on request for candidates taking part in all aspects of the selection process.