Curriculum Vitæ Summary: Phil Carmody
||+358 40 5734741
|Year of Birth:
||Appointed Apple Cooperative Researcher under the supervision of
Professor Richard Crandall of Apple's Advanced Computation Group
to investigate high-performance numeric computation, specifically
on the Power Architecture.
||B.A. Hons. (Class 2:1) in Mathematics, Trinity College, Oxford.
||4 G.C.E. 'A' Levels, all grade 'A':
Mathematics, Further Mathematics, Physics, Chemistry.
2 Special Papers, both 'Distinction':
Further Mathematics, Physics.
February 2005 - December 2006
Field Application Engineer, Freescale Semiconductor
- Onsite engineer supporting a customer's 2.5G GSM project. Embedded
for the critical last 6 months of the project to assist with various
aspects of their software development and testing process. Documentation
creation, (customer) documentation review, (customer) code review, and
debugging and maintenance of Freescale's platform code (C/RTOS).
- Local support for all Linux-based mobile telephony and other
portable devices, based on Freescale's iMX31 and related platforms, in
Finland. Hands-on assistance customising kernel, bootloaders, etc. for
project-specific hardware configurations. Real fun.
- Local support for flagship Symbian-based mobile phone project
with major Finnish partner. Specific responsibilities included verifying
integrity of deliverables, documentation and code review, and onsite
assistance at integration camps.
March 2004 - February 2005
Consultant, Mobliz Ltd., a telecommunications consultancy.
- Software specification, design, implementation, and testing in projects including:
All using PHP and MySQL.
- Database backend for GSM and WAP content provision.
- Web-based administration tools for the above.
- Bespoke helpdesk management system.
- Tools in Perl and sh.
- Version control using CVS.
July 2002 - February 2004
Sabbatical - Research in the field of Computational Number Theory.
Implementation of client, server, and client payloads for distributed computing
project. It was mostly this private research that was behind my appointment as
a Cooperative Researcher in Apple's Advanced Computation Group.
Freelance PHP/SQL web consultancy.
December 1998 - February 2000 - June 2002
Software Engineer at Nokia Networks (Cambridge) which became Marconi,
and subsequently Nokia Networks (Kilo, Finland)
- Design and implementation of ASW-layer software for broadband and narrowband communication equipment, including:
all of which were in C++.
- Termination point handlers for SDH, PDH, and RF access nodes.
- Generic software architecure behind all ASW components.
- Maintenance of historical common libraries.
- Ad hoc customer requirements for V52 access node.
- Maintenance of a script-based simulation/testing platform for multi-slot racks in Perl.
- Version control in ClearCase.
- Defect management in ARS.
November 1997 - October 1998
Software Engineer at TTPCom Ltd., Cambridge, GSM Mobile Application Group
(formerly The Technology Partnership Ltd.).
- Design, implementation, maintenance, and testing of software for GSM
handsets, including sole responsibility for:
- Graphical user-interface design tool in Borland C++-Builder.
- User-interface component compiler and automatic code generation tools in Perl.
- Optimising 'dirty-rectangle' LCD driver in C.
- Compression/decompresssion and caching libraries in C.
- Build management system in Perl.
- Version control was via DOS PVCS.
August 1996 - November 1997
Consultant at Scientific Generics Ltd., an IT consultancy in Cambridge.
Various roles in various projects:
- Off-line log analysis tools for RF local-loop telephony system in C/C++/Perl.
- Web-based front end for those tools using CGI and gnuplot.
- Productivity tools in Perl.
- Automatic code generation tools to generate C source/headers and ASN.1 from a common MIB.
- PCI drivers for a VOD (MPEG2) streaming system.
- Version control was via ClearCase and the NT version of PVCS.
December 1994 - August 1996
DSP Software Engineer at Loughborough Sound Images plc. (who became
Blue Wave Systems, and were later absorbed into Motorola).
- Software specification, design, implementation, and testing for:
- OS for H.320 videophone card in C on TI's C80 DSP.
- Double-buffering screen driver for the above.
- Maintenance of C microkernel.
- Automated build configuration in Perl.
- Productivity tools in Perl, sh, LISP, and SQL.
- Version control was via CMVC.
July 1994 - December 1994
Freelance artist and computer-art consultant.
Worked on Public Art projects for Manchester City Council, using a
wide range of PC- and Mac-based products.
September 1993 - March 1994
Visiting lecturer in C++ and Object-Oriented Programming at 3 Institutes
of Technology in Helsinki and Espoo, Finland.
- Lectured students who were already familiar with C or other imperative languages in:
- Object-Oriented Programming.
- Practical (real-world) programming.
- Assistance with students' (bachelor's) theses in English.
- Supervised lab sessions, and gave 1-on-1 tutorials on programming-related aspects of their projects.
July 1991 - September 1993
Analyst Programmer and team leader at Pinn Cowdery Ltd., a computer graphics consultancy in London.
- Responsible for specification, design, implementation, and testing of various projects:
- Image compression tools for large (A0) bi-level images.
- Hypermedia database in C/C++/SQL.
- Image rectification utility for straightening scanned images such as maps.
- Low-level drivers for various printer manufacturers.
- Supervised teams of placement students.
Fields of Expertise
- Platforms: Unix (Linux/BSD), various embedded/realtime.
- Processors: x86, ARM, 68K, PPC, Alpha.
- Development Tools: make, ClearCase, CVS, CMVC, PVCS.
- Expertise as above.
- Familiarity with: LISP, sed, Java, Python, Tcl, Tk, awk, Mathematica, GP.
- Linux - programming, network programming, administration, network administration, and use.
- Embedded/realtime - VxWorks and various vendor-specific OSes - HI, TI.
- Windows - mostly console programming.
- Expertise as above.
- Familiarity with: Sparc, POWER, HPPA, TI C80(DSP).
- HTML, XHTML
- XML, XSLT
- HTML preprocessors - PHP, ePerl
- Java applets
- Apache administration
- Client/server distributed computing