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/
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 |
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.
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.
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.
March 2003 - January 2008 (December 2003 onwards at Nokia, as above)
Various projects involving Bluetooth on Series 60. (Symbian C++ and Java JSR82).
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.
1999-2000 at Lancaster University (part-time)
Classroom tutor of Unix (Solaris) and Matlab for first-year maths students.
August 1997 to August 1998, part-time, 6 man-months.
Developing a Java tool for students to test their foreign-language skills.
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.)
1994-1996 at Fearnhill School, Letchworth, Hertfordshire
A in Mathematics, Further Mathematics and Physics, C in Chemistry.