(Address omitted from the online version)
steve0001@s.cotton.clara.co.uk
http://www.s.cotton.clara.co.uk/
C |
6 months on Android, porting a SIP-based stack
As part of a 1 year project, Linux and QEMU drivers for phones with two screens 4 years on Nokia Series 40*, J2ME I/O libraries |
---|---|
C++ |
4 months on Android using OpenGL, STL and Boost's threading and interprocess libraries
circa 6 months of contributions to open source (counting only commits/patches that were submitted and accepted) 2.5 years on Symbian, many projects |
Java with JNI |
10 months on Android (Java to C and C++, using native threads)
4 years on Nokia Series 40* (Java to C, using green threads) 1 year on Symbian (Java to C++, using native threads and active objects) |
Source control |
3 years Git
1 year Perforce 4 months Gerrit (Git with integrated code review tool) 4 years Continuus (predecessor of Rational Synergy) |
* C and JNI on Series 40: Because of embedded device constraints, only Nokia themselves can use native code. This is why any programming forum will say that Series 40 doesn't have JNI.
June 2013 - October 2013: I was working on a solo project based on predictions of EU privacy regulation changes, and how those changes would affect the Android ecosystem. My predictions have not happened, and so this project has become simply experience.
To February 2014: I've contributed to Debian and the Linux kernel to refresh my C and C++ knowledge. Projects included:
August 2012 - March 2013
The client is the producer of the O2 Tracks application.
Creating a music application, with both DRM'd subscription content and unrestricted purchased content. My role was the Android client application, focused on the network communication, storage and media playback.
The team used a selection of agile methodology, such as sprints and iteration planning. We also used continuous integration of both the server and the various platforms' apps, with continuous design across the JSON-based client-server network interaction.
June 2012 - July 2012 (8 weeks, renewal offered after starting with the next client)
The client is an advertising agency and design house.
To showcase the Galaxy Note's S Pen input stylus, writing a set of games to pixel-perfect designs, working in close coordination with the artists and designers. The work needed synchronized audio loops, and producing non-rectangular clipped drawing regions from a widget designed for responsive smooth handwriting.
The games are Drop The Beat, Flag Challenge and Star Gazer.
January 2012 - May 2012
The client is a software development house.
3 months updating the My O2 application, which shows information about the user's mobile phone account (balance, calling plan, etc).
2 months writing Samsung Hope Relay, a GPS-based running trainer application, keeping track of how far a user has run. It is no longer in the app store, as it was tied in to sponsorship of the London 2012 Olympic Games.
Both applications were built to client UI designs, coordinated with a release on the other leading smartphone OS.
October 2009 - August 2011
The client is SERI, Samsung's UK research division.
4 months OpenGL concentrating on smooth animation and responsiveness. Mainly C++ with some Java and JNI.
12 months research on Android's UI framework and application handling. Mainly Java, with some C++ and Linux kernel alterations.
Part of the research was about running two applications on the same screen, functionality which can now be seen in the S3 and Galaxy Note.
Part of the research was about using two physical touchscreens, working out which hardware abstraction would be seen by each layer of the graphics and input stacks. This included modifications to the Linux goldfish (simulation) device drivers, and to QEMU's simulation.
6 months implementing Rich Communication Suite on Android (RCS is a GSMA standard for a vendor-neutral equivalent of Skype; it is now marketed as Joyn). Porting a C implementation of the SIP-based protocol suite to Android, and adding a Java interface.
Confidentiality check: all of these identified research features have since been seen in released phones. Two logical screens in the US-only Continuum, and two physical screens on the China-only W999.
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 running on a message-passing RTOS. The majority of the code was written in C.
My role was primarily network I/O, providing access to TCP and UDP via the MIDP2 socket and datagram API, as well as the higher-level HTTP API.
This included a substantial rewrite of the existing TCP and UDP implementation to add asynchronous event safety; followed by a further project to support multiple applications sharing a single Java VM instance.
As part of the normal integration testing, every change was tested with the Java TCK for conformance to the MIDP2 specification. We would also regularly run a smaller set of tests with Purify and Valgrind on a simulation build of the OS, and debug using GDB on this build.
UML state, class and sequence diagrams for were regularly used for documentation, design and reference.
One year of this role was spent on a project for the built-in applications to use after-market extensions written in Java or AS. I was working with both internal and external teams for requirements gathering, testing and integration. This included providing requirements to ensure that the Java to C layer could be implemented using the C interfaces provided by other teams.
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.
August 1997 to August 1998, part-time, 6 man-months.
This is before Java had ME (Micro) and EE (Enterprise) editions, at the time SE (Standard Edition) was simply called Java.
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.