Do you pride yourself on understanding projects top to bottom? Do you like to take a challenge and help build a complete solution? Do you hate being micromanaged? Teamwork and communication is important, but we need software engineers who can do more than take orders, and can work independently as well.
As a full stack software engineer, you’ll be involved in every aspect of building and supporting our application.
We embrace the full-stack development philosophy because we’ve found it benefits the team and product when an engineer is familiar with the entire stack and has a genuine interest in all our software technology. Full stack engineers know how to make life easier for those around them. We also recognize that each engineer is passionate and skilled in specific layers. We manage to blend the two realities very well.
You’ll design how your feature will work and how it will be implemented, including understanding what the customer and business needs, user experience design, entity design, business logic, and data modeling. You’ll document your approach in a way that allows rapid review and critique by others. You’ll write robust unit tests for all your work. Your designs and code will be reviewed by others in the team and you’ll review others’ work as well.
You’ll use MySQL, myBatis, Java, JUnits, Redis, node and HTML/CSS/JS within our UI framework. Your code will be managed in github, continuously tested with Jenkins, and built and deployed with gradle. Most of us develop on Macs, some use Linux boxes. Our test and production environments are deployed on Linux running in the Amazon Elastic Compute Cloud (EC2).
You have a bachelor’s degree in computer science and at least two years of software development experience on a large-scale web application.
You can analyze a feature story or epic and design a robust and complete solution for it. You’re passionate about good object-oriented design, performance optimization and testing. You write well-designed, reliable code that other people or you will find really easy to understand and modify six months from now. Users love using interfaces you’ve designed.
You know Java, databases and Linux very well. You’re familiar with non-relational data stores and when to use them.
You’ve been using an IDE and source control, build automation and continuous testing tools everyday.
You have really good communication skills. That includes speaking clearly with concision in discussions, writing anything from help content to a user message, and typing fast (we use chat a lot).
Please send a cover letter along with your resume telling us why you think you’re perfect for the team (resumes without a cover letter will not be considered). Tell us what you’re about. And be frank. What have you done? What gets you up in the morning? What excites you? What irritates you? If you have a presence on the web (like a blog or project) or if you contribute to an open source project, or even if you do something interesting outside of work, we’d be interested in hearing about that too.
Send your letter and resume to firstname.lastname@example.org.