Senior Level Java Software Engineer at 42 Lines, Inc. (allows remote)
42 Lines is seeking a highly skilled Java Engineer to expand our Online Education platform. Join our successful and growing agile team to help build scalable feature-rich web applications customized to our clients' needs. Our current work is focused on the creation of learning management systems in the field of online arts education.
Location Requirement: Must reside within two time zones of US/Central time (GMT-0600)
Salary: Competitive salary based on experience
- Agile - You are able to work in an environment where, rather than expecting a Big Design Up Front, you are constantly collaborating with business analysts and QA testers to refine our collective understanding of the clients' needs. We bite off small chunks of work, define them to the best of our ability, and constantly iterate with the client to refine our understanding of what they want. We are constantly refining our processes in order to achieve extremely ambitious delivery schedules.
- Highly Analytical - You understand how a specification written in the plain language of the client/end-user should be broken down into well-engineered object-oriented code. You are able to search and read a large code-base to learn how to produce new features within the existing framework.
- Organized and Detail Oriented - You can keep track of several threads at once, without losing the details. You notice edge cases, documented or otherwise, and pro-actively address them. You are self-managing.
- Familiar with Component Architecture - You've used some kind of component-based architecture in a professional code-base.
- Java Programming - You're fluent in java programming idioms including servlets, dependency injection, unit testing, and object-relational mapping.
- Not a Cowboy Coder - You are able to articulate design decisions and defend them. You practice test driven development and continuous refactoring. You use a revision control system and engage in peer code review.
- Passionate About Coding - You read software engineering blogs, articles, books, etc. to learn more about your craft. You want to improve your own skills and your team's engineering process. You try new approaches and tools when doing so will help the team improve its output.
These qualifications are desirable but not required.
- Hibernate - You've not only mapped an entity, but you've written your own HQL queries and used MetaModelGen or QueryDSL to write type-safe queries.
- Wicket - You've used the Apache Wicket web application framework. Our entire application is built around Wicket.
- Scalability - You've developed applications that work well in a clustered environment. You know about read-only slave databases. You know the pros and cons of indexing tables, putting data in the session, how to use the second level cache, load balancing, and sticky sessions. You know how to perform load testing with profiling to identify hotspots.
- Maven - You've used the Apache Maven build system and understand how a POM works.
- Atlassian - You've used tools from the Atlassian Suite such as JIRA, Fisheye, Crucible, Bamboo, Confluence.
- Git - You've used the Git as a distributed source repository. You're well versed in branching and merging in this environment.
- Work with business analysts at the earliest stages of requirements gathering to help them understand technical issues of new feature requests.
- Participate in planning and estimation.
- Implement new features in our existing applications.
- Pair with a tester during development to ensure maximum utility from our qa process.
- Be given slack time to explore new ideas and broaden your skills.
depending on your skills and seniority you may also...
- Refactor/improve our build system.
- Contribute improvements to open source projects that we rely on.
- Create new tools that fundamentally improve the whole team's development capabilities.
- Mentor engineers.
- Optimize and refactor existing code.
- Build R&D projects to expand the team's expertise.
Apply for this job