Groovy/Java/Coldfusion Developer

Are you a Developer seeking an exciting role with a leading software / web agency based in Islington, London?

This is an exciting opportunity to work for Brandworkz, a successful web development company focused on implementing Brand Management web-projects for clients like Red Bull Racing, Epson, Eurostar, ArcelorMittal, and Boots.

If you want to work here, you need show us:

  • technical competence
  • passion for development

We expect you to be able to not only implement code, but also design solutions.  You want to be part of a small focussed team working to deliver great software to blue-chip clients.  You should know what the factory method pattern means without looking it up.  You should want to do the hard work now, so that things are better later.

You should be proficient in one of Java, ColdFusion, Groovy, JavaScript, Node.js, Scala, Rhino and Clojure, and be able to compare and contrast the merits of the rest. You should have a real enthusiasm for development and for finding out random things.

You should be passionate about the internet, with loves and hates in equal measure. You should care about usability. You should hate html tables for everything except tabular data. If you have interests in photography, videography, music or design it might help.

If that sounds like you, drop us an email to careers@brandworkz.com.  I would like a CV, how much you would like to be paid, and your entitlement to work in the UK.

Our hiring process is straightforward: get your info, quick mini-interview via phone, a simple code test, and an on-site interview to meet the team.  Brandworkz pays competitively, and has benefits beyond the salary.  Positions are full time and we expect you to work in the Islington office.  The guys here are reasonable: if you’re the right person, they’ll work hard to ensure things work.

Please respond to http://www.brandworkz.com/careers or careers@brandworkz.com with your CV and a covering letter descriping why you are right for the role.


Web Tester – Islington, London – Permanent

We are looking for a skilled and passionate web tester to join our growing team. If you want to work here, you need show us both technical competence and a passion for testing. Brandworkz is a successful software development company focused on implementing Brand Management for clients like Red Bull Racing, Epson, Eurostar, Arcelor Mittal, and Alliance Boots. We expect you to be able to ensure our Brandworkz technology is both robust and reliable for clients.

Working on projects for blue chip clients, you will develop automated functional tests identifying, prioritising and tracking defects and sign off releases through the deployment cycle in a highly agile development environment.

The role presents an interesting and varied technical challenge in a fast paced informal environment – we are looking for technology lovers with personality!

Requirements:

  • Strong automation testing with tools like HP Quality Centre or Selenium
  • Development and implementation of effective test strategies and test plans for new and existing products, assisting project teams with their approach to testing and creation and management of schedules.
  • Experience of manual and cross browser testing
  • Experience of automating testing for websites (AJAX)
  • Agile methodologies (Scrum)
  • Excellent communication skills, with the ability to negotiate and influence others
  • Desirable:
    • familiarity with JIRA/Java development stack, release, change and configuration management
    • Should have some programming experience
    • Work with developers to establish automated regression testing of software where appropriate.

Location: Islington, London

Salary:
Highly competitive salary and benefits.

We will not accept applications from third parties.

Applications to: careers@brandworkz.com

 

Coldfusion Developer Job – Islington

Coldfusion Developer needed at GlobusMedia who are a successful web application development company, focussed on:

  • Developing Coldfusion-based Brand Management and Marketing software.
  • Implementing projects for enterprise clients

We provide an integrated service that consists of consultancy, design, production, hosting and maintenance.

Working from our office in Islington; a successful candidate will have the ability to plan and architect new functionality and take this through the development stage producing well-structured code. The successful candidate will also be keen to extend their development knowledge. Ability to learn quickly is a must.

We are looking for a candidate who has a strong knowledge of the following:

  • Coldfusion including CFCs (2+ years commercial experience or equivalent)
  • SQL skills preferably using MS SQL Server
  • JavaScript, HTML, CSS
  • Object Oriented Development
  • Source Control Systems

The ideal candidate will also have knowledge of the following:

  • Agile Project Development
  • Experience of Java, Groovy, Rhino, node.js or Closure
  • Modern Development Frameworks ( Coldbox, CFWheels, etc)
  • Java Application Servers (Tomcat, Glassfish)
  • Design Patterns
  • Code Reviews
  • Continuous Integration
  • Test Driven Development

You will get the opportunity to:

  • Work in a relaxed environment in Angel, Islington
  • Push the boundaries of your development
  • Develop your skills and knowledge.

Please respond to joel@globusmedia.com with your CV, your eligability for roles in the UK  and your salary expectation. No agencies.

Salary: dependent on experience

CFLDAP Issues

I have been occasionally thinking about LDAP recently; in particular the interdependency of LDAP and SQL. (and the cftransaction issues)

As I already noted there is a fundamental problem with using transactions with out of step error conditions.

I have noticed some bizarre and inconsistent behaviour.

1) If you put in a badly formatted filter Coldfusion returns “Connection to ldap server failed.” 84596

The ldap server is returning: searchResDone(2) protocolError (Bad search filter)  [0 results]

The Coldfusion returns an Application Error: “Connection to ldap server failed.” It is throwing a coldfusion.tagext.net.LdapTag UnknownHostException.

This is precisely the same error if you put a nonexistant (invalid) server in. Also the same error if you put a dodgy port number. In fact for all ldap errors the only catches that will catch this are “Application” or “Any”.

2) LDAP Timeout 84595

The ldap timeout seems to me like a whole pile of steaming defication.

One might assume, that the timeout would throw an error, it doesn’t. One might assume that if the timeout expired no results would be found, wrong again.

Like a database in firehose mode data will spew back until the timeout expires. Unlike the database example the CFLDAP tag with a timeout is a dribbly firehose mode; data continues to spew back for a little while; usually about a second. So setting a timeout of 1 microsecond (1/1000 of a second) I would expect to recieve no results (and a timeout). What I get is about 8-20 results – it depends – and obviously no timeout.

If you thought we were doing this before. We weren’t; we were just collecting the requesttimeout; after the ldap request had completed. Long after the page had timed out.

Example Code

If you would like to test this for yourself I enclose the following:

<cfparam name="variables.ServerName" default="<server>">
<cfparam name="variables.BindUserName" default="cn=Directory Manager">
<cfparam name="variables.BindPassword" default="<bind password>">

<cfsetting enablecfoutputonly="yes">

<cftry>
<cfset variables.filter         = "(uid=*****)">
<cfset variables.LDAPDNSuffix     = "ou=<COMPANY>, o=<object>">
<cfset start = gettickcount()>
<!--- Check LDAP --->
<cfldap
server="FAILFAILFAIL#Trim(variables.ServerName)#"
username="#Trim(variables.BindUserName)#"
password="#variables.BindPassword#"
start="#variables.LDAPDNSuffix#"
filter="#variables.filter#"
scope="subtree"
action="query"
name="qPing"
attributes="dn,sn,lc"
timeout="1">
<cfset end = gettickcount()>

<!--- Success --->
<cfdump  var="LDAP processing time #start - end#">
<cfdump var="#qPing#"  top="4">

<!--- Catch --->
<cfcatch type="any">
<cfdump var="#cfcatch.type#">
<cfdump var="#cfcatch#">
<cfabort>
</cfcatch>
</cftry>

How to catch an error

If you want to catch an ldap error:

To catch bad filter strings, invalid hosts, odd ports, invalid usernames or passwords. (usernames and passwords message is different – Authentication failed:[LDAP: error code 49 - Invalid Credentials]. Also the underlying (java) error type is InvalidCredentialsException, although this is not readily available.

you must catch “Application” or “Any”. There is no easy way to seperate the errors. You could parse the messages for authentication problems. But for all the others. You’re basically rudderless.

How to catch a timeout

You can’t really use the timeout. What’s the point in getting the top 8-20,20-100,100-1000 results via the timeout? There is a maxrows attribute. My main concern is that; without an order there is no expectation of consistency.  Unless you have a very very good reason – it’s best to stay well clear.

Is there a solution?

Well I have a proposal; it’s a little convoluted. What I suggest is that we build a ldap.cfm in the CustomTags directory.

This does a CFThread – running the ldap request in a new tag. Killing it from the master, after a sleep, if it doesn’t finish in the specified time.

The final part of my solution is that I have submitted these bugs to Adobe. Votes on:

http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html#bugId=84595

http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html#bugId=84596

would be much appreciated.

Microsoft in talks to buy adobe

As reported in the New York Times; Microsoft head Steve ‘Developers,Developers, Developers’ Ballmer met Adobe head Shantanu Narayen.

http://bits.blogs.nytimes.com/2010/10/07/microsoft-and-adobe-chiefs-meet-to-discuss-partnerships/?scp=2&sq=adobe&st=cse

Shares in Abobe surged 17% before being halted reports Bloomburg http://www.bloomberg.com/news/2010-10-07/adobe-systems-shares-halted-by-circuit-breaker-after-surging-17-.html?cmpid=yhoo

How do people feel:

ColdFusion.net?

Microsoft Flash?

Microsoft Photoshop?

Coldfusion on Wheels – our first journey together

Over the past few weeks, some of the guys at Smarticles have been building some CFWheels on Railo applications.

We have had a few points that we have had problems with, and others that have easy solutions.

Positives

Multiplatform without thinking

Getting the Railo environment ready on Mac, PC and Linux is a doddle. It makes multi-disciplinary teams possible, and easy. I set up the environment on my Mac, and sent the code to a PC guy, it just worked.  I forgot to put transition time into the project plan – so it’s luck that there wasn’t any.

Really Quick to develop in

Once the initial day of head-scratching is over, Wheels is really really quick to develop in.

I love the convention over configuration approach. Its liberating to work with.

Form Handlers

For one of our applications we havent got a page design. But we have build lots of pages using the standard form handlers. We know that the html will be sensible, usable and rational. All we have to do is tweak the css into place.

Negatives

Only a couple:

Redirects

I still haven’t got the redirects to work. I don’t need them on the development environment. So its a backburner issue for me; not really a problem. Also some of the solutions look quite easy.

Contexts

The railo site talks about setting up contexts for each app. For the first app, this isn’t really required, and actually slows down the time to get a developer happy in the environment.

Other Thoughts

Documentation on slow connections

Some of the team work on very slow connections. This means that browsing a website for documentation sometimes slows them down.  The API documentation wasn’t available as a download. We have it as a chm if anyone feels the need.

Partials

When we started development; we didn’t know about partials. If you want connect blocks in your code – partials are what you need.