Last updated January 2020
Also available in other formats.

Steve McIntyre - Curriculum Vitae

Name

Date of birth

Nationality

Marital status

Steven Andrew McIntyre 28th May 1974 British Married

Home address


Telephone


Email address

87 Kendal Way
Cambridge
CB4 1LP.
+44 7775 786572 (mobile) steve@einval.com

Summary

I am an experienced professional Software Engineer with wide-ranging background knowledge and skills. I have had an extensive career working in and around Open Source, but I also have a pragmatic approach to problem solving and development in a commercial environment. I am comfortable working at any level of a project: high-level architecture of large complex systems; leading a team to deliver products; deep dives into specific components to solve thorny problems.

Skills

Linux and Open Source

I have been living and breathing Open Source for many years. I started using Linux in 1994 using the Slackware distribution, then switched to Debian in 1996. I almost immediately started developing for Debian and have been doing so ever since. I've been a key member part of the Debian project in many roles since, covering simple package maintenance all the way up to Project Leader (elected twice, 2008-2009 and 2009-2010). I'm currently active in many Debian teams, covering the deeply technical (UEFI, installer, CD/DVD images) to the "softer" things like the Community Team.
I have organised and run lots of events: conferences, development sprints and many social gatherings. I'm also an experienced speaker, presenting at multiple conferences over the years.

Embedded Development

I have worked on a range of embedded devices, covering Network Attached Storagex through to set-top boxes. I have a good knowledge of a range of specialised and general-purpose CPUs (Arm, Intel x86, PowerPC, SuperH), working on everything from bootloader level up to Linux command line and beyond. I have proven ability to deliver working device drivers and environments for application developers to use as a base for a variety of product solutions.

Languages

I have a great deal of experience in C programming on multiple platforms. I have developed and maintained various pieces of software on multiple versions of Unix and Windows, at all levels from simple GUI programming through to device drivers and filesystems at kernel level.
I also have experience of a whole range of other languages. In particular, I have developed and maintained projects in Perl, Python and POSIX shell, and I'm comfortable working in all of them. I have spent time working in lots of others over the years too: C++, SQL, Javascript, awk, sed, etc. I tend to find it quite easy to pick up new languages as needed, typically starting with debugging other people's code!

Tools

My general level of Unix knowledge is very high - over the years I have used and developed on Linux, FreeBSD, NetBSD, and a lot of older proprietary systems. I have expert skills in the common tools and build systems: awk, make, etc.
I am comfortable with a variety of version control systems, from the ancient stuff like RCS and CVS to more modern things like Subversion and Git. I've also helped set up and maintain complicated CI/CD systems on top of these.

Technologies

I have a good working knowledge of networking, from raw ethernet through on-the-wire protocols all the way up to application level. I have set up and maintained various computer networks, from cabling up to user management, system administration and firewalls.
I'm an expert in the area of storage. I have written and maintained code to manipulate a wide range of devices, specialising in jukeboxes, optical drives and CD/DVD drives via SCSI and ATAPI. I have also developed and maintained several filesystems, including implementations of ISO9660, UDF and FAT16 and more specialised optical filesystems.
I've worked a lot with virtualisation and containers in recent years to aid in development and testing.

Education and Qualifications

Sep 1993 - Jun 1997
Churchill College, Cambridge
BA (MA) & MEng: Electrical and Information Sciences Tripos (EIST)
Jan 1988 - Jun 1992
Deanery High School
Wigan
S Levels: Chemistry, Physics
A Levels: P&A Maths, Pure Maths, Applied Maths, Physics, Chemistry, Gen. Studies
AS Level: Physics
GCSE: English Lang., English Lit., Maths, History, French, German, Chemistry, Physics

Employment History

Mar 2010 - Jan 2015
Staff Software Engineer
Jan 2015 onwards
Principal Software Engineer
Arm
Jan 2011 onwards
Technical Architect
Linaro

I joined a team at Arm in their recently-formed OSS group, working on improving support for their processors in the Linux and Free Software world. I initially led a project to optimise ChromeOS for Arm, working in conjunction with Google and a key Arm silicon partner. In parallel with that, I took on a key role supporting Debian's multiple Arm ports (porting work, build machine setup and administration, etc.) which has continued to this day.
In January 2011, I was seconded into Linaro as a Technical Architect. I have worked in many of the groups in Linaro since. I started in the Office of the CTO, where I continued with ChromeOS for a short while then took charge of driving a new hard-float ARMv7-based ABI across the major Linux distributions. This included widespread toolchain changes (gcc, binutils, glibc) and lots of the bootstrapping work on the Debian "armhf" port.
In November 2012, I was asked to help found the new Linaro Enterprise Group. I assisted in setting up the group's initial processes then took on one of the first major projects: a large analysis of the Open Source ecosystem to identify key software packages that might need porting and/or optimisation for the new 64-bit ARMv8/AArch64/arm64 architecture.
In March 2013, I moved on to help found the next segment group: the Linaro Networking Group. After setup, I became Technical Lead for one of LNG's key sub-projects, driving efforts to widen and improve support for Big-Endian Linux on a range of Arm-based platforms. In addition, I provided support and mentoring for engineers on LNG's other main project, the Open Data Plane. I also started a cross-Linaro project to improve on-boarding and mentoring for assignees and employees. Finally, I became very involved in LNG's CI and testing infrastructure and this led me to start a new software project called VLANd to control setup and isolation for key networking performance tests.
This VLANd work naturally overlapped with my next role in Linaro in the LAVA team, from early 2016. LAVA is Linaro's Open Source testing automation framework. I joined the team to help as a liaison with the other groups in Linaro, then this role expanded to cover things from architectural review to documentation. I started a series of LAVA User Forums to help get developers and users communicating.
In August 2019, I became Technical Owner of a new Lead Project for Linaro, Devicetree Evolution. This covers a range of sub-projects to improve the Devicetree ecosystem.

Sep 2005 - Jan 2010
Senior Software Engineer
Jan 2010 - Mar 2010
Team Leader
Amino Communications

I was employed as a Senior Software Engineer in the core/platform team, working on a Linux-based IPTV set-top box. I took responsibility for a number of key areas: maintaining the Linux kernels and other core software for a wide range of different platforms/processors; developing and maintaining device drivers; evaluation of new technologies; working with technical partners; supervising and mentoring junior developers. I also helped to manage the Engineering network, including the source code repositories.
In 2010, I was promoted to Team Leader and asked to take charge of a team working on a totally new product at Amino. Despite ludicrously short deadlines and a lack of resources, my team and I made very good progress on the requirements set by the management team.

Jun 1997 - Nov 1998
Software Engineer
Nov 1998 - Apr 2001
Senior Systems Programmer
Apr 2001 - Jul 2003
Lead Systems Developer
Jul 2003 - Sep 2005
Senior Technologist
Allstor Software (Plasmon Connectivity Solutions)

I joined Allstor as a Software Engineer in June 1997 straight from college. I helped in porting existing software from Windows NT to AIX and Solaris and maintaining code on NetBSD. This involved learning about device drivers and filesystems and some SCSI.
During 1999, as Senior Systems Programmer, I took charge in developing some of the features of a new major product release. Doing this meant learning much more about SCSI and filesystems. I also represented the company at several trade shows and other occasions, meeting with customers and business partners. During 2000 I was given sole control of major re-architecture work on the company's main software product. This involved a redesign and rewrite of the data path and many other components.
In 2001 I took the Lead Systems Developer position, where I contributed key work in the design and implementation of several new projects, I was also asked to assist the management team, where I advised in high-level talks about acquisitions and the company's future.
In 2003, the group was re-organised and I was given the role of Senior Technologist. This had a range of responsibilities: providing knowledge and support to the product development teams; evaluating new technologies; liaising with partners and customers; providing technical training and mentoring for other developers; leading key development projects and helping out with development wherever necessary.

Miscellaneous

I have a full clean UK driving licence, and I own a car.
I am a keen role-player. I was heavily involved with CURS, the University Role-Playing Society, when I was in college. I have continued to run and play in games with friends regularly ever since.
I am interested in almost all forms of sport and am willing to try anything, even if I have little skill.
I love travelling to places all over the world with my wife, and I'll happily bore people with stories of our adventures!

References

Available on request
https://www.einval.com/~steve/cv/ January 2020