Wednesday, 17 August 2011

Agile team seeks talented Software Developer

Are you a recent Software Engineering graduate looking to join an Agile team? Or do you have 3 years industry experience and a passion for learning?

We're a fast-paced, well-funded Web 2.0 business looking for a pro-active software developer to join our talented, self-organizing software development team.

About you

  • You are hungry to learn: You actively seek change — always looking for opportunities to improve professionally, and to help your team develop. You read software-related publications, welcome criticism of your work and offer your colleagues honest feedback.
  • You're willing to try new things: Want to try your hand at requirements gathering or UI design? If the idea of becoming a Generalizing Specialist appeals, this could be the right job for you.
  • You have excellent communication skills: You're comfortable communicating verbally, graphically or in written text, and you’re happy explaining technical concepts to non-technical people.
  • You’re qualified and/or experienced: You have a Software Engineering degree, an equivalent certificate from a leading organization (e.g.: IEEE-CS, BCS) or have at least 3 years experience.
  • You appreciate a sociable, friendly and supportive working environment: We value technical expertise and encourage developers to exercise their initiative and engage with the business as a whole.
This is primarily a Web Development role. Experience or knowledge of Python, Django, GNU/Linux, Git, jQuery, Solr, Postgres and Agile development methodologies is a big plus, but is not required. We simply want someone with the right attitude and we'll help you get up to speed with anything you're not familiar with!

About 2degrees

2degrees is the world leading online community for sustainability professionals. We aim to help businesses accelerate their implementation of sustainability and carbon reduction strategies on a global scale.

With offices in Oxford, UK and New York City, we work with leading companies including HSBC, Coca-Cola, BASF, Sony, Marks & Spencer, BP, Shell, Eurostar, Sainsbury’s, Hewlett Packard and Royal Mail.

Working for 2degrees, you'll enjoy:
  • A nice office in a great location in Oxford, full of people who are free to be themselves.
  • Managers and business people who appreciate technical staff.
  • Support in your continuing professional development.
  • A competitive salary (dependent upon experience).

About the Software Development Team

  • We're in the process of adopting Scrum and have successfully embedded Agile techniques such as Pair Programming, Test-Driven Development and daily stand up meetings.
  • We contribute to the Free Software we use and publish our own on GitHub.
  • Our recent and current projects include surfacing popular content, simplification of our sign-up process, generation of business reports on site usage, and a major rework of content access permissions which allows us to expose valuable content to non-authenticated users.
  • Future projects include a content recommendation system, integration with the Campaign Monitor mailing service, a re-work of our subscription model, user tracking and metrics, and major design and UX improvements across the whole site.

How to apply

To apply for this role, please send us your CV and tell us why you think you're the right person for this job (don't forget to mention any Free Software contributions you've made).

Thursday, 14 April 2011

Announcing jquery.select2autocomplete

Ever had a select that was getting ungainly due the number of options it contains? Thought it might be good to convert this into an auto-complete field, and didn't want to write any code to handle the AJAX request to do the completion on the server?

If so, then jquery.select2autocomplete could be the answer you're looking for. This is a jQuery UI widget we've been working on to convert any select element into an auto-complete widget. In contrast to jQuery UI's autocomplete widget, this constrains the value to one of the elements in the select and updates the underlying form element in place. It offers much greater speed than an AJAX request even with 30,000+ options in the select.

The source is available on github. We'd welcome any feedback you have at this point on how we could improve the widget and integrate it more tightly with the UI themes.

Tuesday, 25 January 2011

Announcing djeneralize

We're pleased to announce the first alpha release of a new package, djeneralize, to augment the model inheritance available in Django. djeneralize allows you to define specializations of general case models and then have these specializations returned from querying the database. For example:

This allows all the fruit in the database to be returned as the specialized fruit model instances rather than general Fruit model instances. We hope this functionality will allow the grouping of content types with common fields and allow rapid access to the specific model instances so that list views can be easily built which reflect the diversity of specialized content.

djeneralize handles all the database lookups that you would need to perform behind the scenes and allows the vast majority of Django query syntax to be used. It supports multiple-levels of specialization to allow querying of sub-generalizations.

We are planning on integrating this work into a current project to allow fine-grained categorization of all content on the 2degrees platform and hope this will offer us all the power and flexibility we need.

To get djeneralize either clone the source from github, or install it via easy_install:
$ easy_install djeneralize
Further information and full documentation is also available.

Tuesday, 21 September 2010

Looking for a disciplined Software Developer

At 2degrees we're looking for an experienced and disciplined Software Developer to work on the Django-based back-end of our Web site, as well as implement AJAX-based functionality from time to time.

Prior Python, Django or JavaScript experience is desirable but not strictly necessary as we are looking to hire the best Software Developer we find regardless of the technologies they've used in the past.

Learn more about this position and contact us if you're interested!

Thursday, 22 July 2010

twod.wsgi 1.0 is out! (Enhanced WSGI support for Django applications)

I'm very pleased to announce that twod.wsgi 1.0 has been released, after several months of production use and preview releases! No bug has been found in the release candidate and therefore the final release has the same code as the candidate one.

twod.wsgi allows Django developers to take advantage of the wealth of existing WSGI software, as the other popular Python frameworks do. It won’t break you existing Django applications because it’s 100% compatible with Django and you can start using the functionality offered by this library progressively.

Get it while it's hot!

Wednesday, 28 April 2010

Announcing django-audit

As part of some work at 2degrees on ensuring an audit trail for our Django models, we have been working on a project to add under-the-hood auditing to the Django Model class.

We've published an early alpha of this code on launchpad, and hope to have a final release for this package around the end of May to coincide with the deployment of our internal code.

If you can't wait for the documentation, then checkout the code and have a read of the source. Otherwise documentation will be coming along shortly.

Monday, 8 March 2010

Announcing twod.wsgi: Better WSGI support for Django

We are very pleased to announce the first alpha release of twod.wsgi, a library to make WSGI a first-class citizen in Django applications.

twod.wsgi allows Django developers to take advantage of the huge array of existing WSGI software, to integrate 3rd party components which suit your needs or just to improve things which are not within the scope of a Web application framework.

It ships with a PasteDeploy application factory (which gives the enterprise some of what it needs) and full-featured request objects extended by WebOb. It also gives you the ability to serve WSGI applications inside Django, so you can filter the requests they get and/or the responses they return (e.g., to implement Single Sign-On mechanisms). And there's more!

For example, if you wanted to integrate your authentication mechanisms with your Trac application, you could do it in 11 lines of code:

from django.shortcuts import redirect
from django.conf import settings

from twod.wsgi import call_wsgi_app
from trac.web.main import dispatch_request as trac_app

def make_trac(request, path_info):

    if path_info.startswith("/login"):
        return redirect(request.script_name + "/login")
    elif path_info.startswith("/logout"):
        return redirect(request.script_name + "/logout")

    request.environ['trac.env_path'] = settings.TRAC_PATH
    return call_wsgi_app(trac_app, request, path_info)

Don't be fooled by the "first alpha release": It's rock-solid. We've been using it for months in our Web site and it's never ever failed. It just means the API might change in a backwards incompatible way by the final release -- Which is very unlikely given how simple it is.

It's also comprehensively documented and tested. For all these reasons, we believe it's safe to say it's production ready.

Be warned, WSGI is very addictive! If you like it, please support it.