Software Engineer

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:
Home or co-working space (within two time zones of US/Central time GMT-0600)
Date Posted:
September 2017
Date Closing:
Open until filled
Full/Part-Time:
Full-Time
Salary:
Competitive salary based on experience

Required Skills

  • 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.
  • Web Programming - You've got experience writing professional web applications. You understand web-based concepts such as HTTP, URL, HTML, CSS, JavaScript, cookies, sessions, AJAX, caching, authentication, and web services. You've worked with relational databases. You understand MVC architecture.
  • 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.

Additional Skills

These qualifications are desirable but not required.

  • Adobe Experience Manager (fka CQ5) - We maintain a few CQ-based websites for our client that closely integrate with our Wicket+CDI+Hibernate based Learning Management System.
  • 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, and/or Greenhopper.
  • Git - You've used the Git as a distributed source repository. You're well versed in branching and merging in this environment.

Job Details

  • 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.

Read more about our employee benefits and hiring process. Email java_engineer_dice@42lines.net to apply.

Apply