Profile Employment history Education

Steve Cotton

Contract roles only please.
Due to the 24-month rule, I will not consider roles within 10 miles of Heathrow.

Email: steve0001@s.cotton.clara.co.uk
Website: http://www.s.cotton.clara.co.uk/

Profile

Nine years commercial experience developing software for smartphones and PDAs. Mainly writing the Java-and-C or Java-and-C++ libraries in the firmware which let pure Java applications use the phone's features.

C 4 years on Nokia Series 40, J2ME I/O libraries
6 months on Android, porting a SIP-based stack
C++ 3 years on Symbian, many projects
4 months on Android using OpenGL
Java 4 years on Nokia Series 40, J2ME libraries, demonstrations and tests
18 months on Android (12 months UI, 6 months SIP)
2 years Java SE, many projects
Perl Used as a general development and automation tool in every role
Android 22 months, from Eclair through Honeycomb (Android 2.1, 2.2, 2.3 and 3.0)
OpenGL ES 4 months (Android)
STL and Boost 4 months on Android, using Boost's threading and interprocess libraries
Networking 3 years as the main programmer for the Java to native TCP and UDP stack layer on Nokia Series 40
6 months SIP (Android clients)
Source control 4 years CM/Synergy
2 years Git
1 year Perforce
4 months Gerrit (Git with integrated code review tool)
Design UML, JavaDoc / Doxygen
People and project skills Daily scrum (within waterfall-model projects),
Providing time estimations / basic project planning,
Communicating with corporate customers
Office MSOffice (Word, Excel and Outlook), Lotus Notes

Employment history

Contract software developer (Android Java, C and C++)

October 2009 - August 2011
Client is a major phone manufacturer

4 months OpenGL concentrating on smooth animation and responsiveness. Mainly C++ with some Java and JNI.

12 months on Android's UI framework and application handling. Mainly Java, some C++ and minor kernel alterations.

No further details of the above will be given until the devices have been on the market for a reasonable time. For interview I can discuss the standard Android graphics stack and application framework without describing the client's additions.

6 months implementing Rich Communication Suite on Android (RCS is a GSMA standard for a vendor-neutral equivalent of Skype; it was the next big thing in 2009). Porting a C implementation of the SIP-based protocol suite to Android, and adding a Java interface. I was the primary JNI person on an eight-person team that worked on the porting and lower Java layers. We worked with a larger offshore team who developed the UI application and test suites.

Career break and open-source development

In 2008 I took a break to travel. Returning in a recession, the break turned out longer than originally planned. I contributed to several open-source projects, leading to a diverse set of experiences in coding, source control and team dynamics.

Senior software developer for Nokia (C and Java ME)

December 2003 - January 2008

Java API implementation, libraries that extend multi-threaded J2ME code, but interact with the rest of the system as a single-threaded C program. The majority of the code is written in C.

My role was primarily network I/O:

Specification, design and implementation of a new proprietary Java API. Working with both internal and external teams for requirements gathering, testing and integration. Also providing requirements to ensure that the Java to C layer could be implemented using the C interfaces provided by other teams.

Refactor of the TCP and UDP implementation to allow many Java threads to access it simultaneously; followed by a second project to support multiple midlets running simultaneously.

For the final year I mentored a less experienced (but very capable) developer. When planning to leave, I gave extended notice (two months more than required), so that the team could have a long handover time with him concentrating on the design and implementation role while I took over his maintenance work.

Software developer for Teleca (Symbian OS C++ and Java ME)

March 2003 - January 2008 (December 2003 onwards at Nokia, as above)

Various projects involving Bluetooth on Series 60. (Symbian C++ and Java JSR82).

Software developer for Psion (Symbian OS C++ and Java SE)

January 2001 - February 2003

Everything from the kernel to demonstration applications for handhelds running Symbian OS Release 5 on StrongARM processors.

Build-manager for the SDK, and sharing build-manager duties for the ROM images.

Java Native Interface wrappers to various peripherals, including a laser barcode scanner (for which I progressively took over maintenance for each C++ layer down to the device driver).

Face to face client interaction included a week on-site in Malaysia doing integration; and several sales-support visits in the UK and continental Europe.

Student tutor

1999-2000 at Lancaster University (part-time)

Classroom tutor of Unix (Solaris) and Matlab for first-year maths students.

Software developer for Dialang (Java SE)

August 1997 to August 1998, part-time, 6 man-months.

Developing a Java tool for students to test their foreign-language skills.

Education

MMath degree (2ii Master's)

1996-2000 at Lancaster University, including 1998-1999 exchange at Texas A&M

Pure Mathematics, including group theory, wavelets, number theory, topology and cryptography.

(No bachelor's degree - the MMath is a four-year course directly to a master's degree.)

A Levels

1994-1996 at Fearnhill School, Letchworth, Hertfordshire

A in Mathematics, Further Mathematics and Physics, C in Chemistry.