WebAssign—the leading service provider for online homework in higher education—is seeking a number of Software Engineers to join our team. The purpose of the Software Engineer role is to design, build, and maintain critical components of WebAssign’s technology. Your first twelve months at WebAssign will be exciting. During that time you might have:
- Created new features that help students learn more effectively
- Designed an API to support new integrations
- Improved the testability of our application
- Mentored less-experienced team members
- Contributed to improvements to our Agile process
Any successful candidate will have most of the following:
- Ability to improve the testability of our application. (This includes the basics of automated unit and functional testing, along with the ability to refactor non-tested portions of our application to make them testable.)
- Significant experience with object-oriented programming. (We use Perl, but experience with Perl is not required.)
- An in-depth understanding of design patterns. (For example, you should feel remarkably comfortable with Model-View-Controller, Gateway, Façade, Singleton, and Factory Method design patterns.)
- Experience with MySQL (or another RDBMS)
- Techniques for solving problems in a high-volume, always-available environment
- In-depth experience with multiple server-side languages, such as Java, Perl, PHP, Ruby, etc.
- A strong desire to be a part of a cross-functional development team
- A passion for automating just about everything, but especially testing, packaging, and deploying
Having a history with and passion for one or more of the following will set you apart from the pack:
- Designing, building, and testing RESTful APIs
- Improving the performance of an application with technologies such as Memcache and Beanstalkd
- Mentoring other developers
- Serving on cross-team committees that establish and promote solid engineering standards
- Using NoSQL to store and retrieve lots of data. Technologies such as MongoDB, Hadoop, BigTable, and Cassandra should be familiar.
- Building software under a continuous integration model
- An in-depth understanding of Agile development. (For instance, you might know the answer to “How are team commitments different in a Scrum culture than they are in a Kanban culture?”)
No job description would be complete without a listing of duties and responsibilities. Here are some:
- Write high-quality software as a member of an Agile team
- Accurately estimate and plan the work necessary to build a new feature or component
- Analyze complex business problems and determine the best technological solution
- Collaborate with fellow developers, test analysts, designers and product managers
- Drink free beer (or another frosty beverage of your choice) every Thursday afternoon
Successful candidates will likely have the following:
- At least 2 years of software development experience, preferably with a web-based, Software-as-a-Service application.
- A passing familiarity with Agile software development.
- A bachelor’s degree (a master’s is a plus) in computer science, computer engineering or related field.
- A passion for helping teachers teach and students learn.
Please send resume and salary requirements to email@example.com. No phone calls please.
WebAssign is proud to be an EEO/AA employer M/F/D/V