Long version of resume available in MSWord format here.

Short version of resume available in MSWord format here.

Curriculum Vitae
Of
Denis Joseph Barrow

Personal Details

Name:

Denis Joseph Barrow

Date of birth:

13-11-68

Address:

Poundys Cross,
Scarra,
Glantane,
Mallow,
Co. Cork,
Ireland.

Telephone:

+353-86-1715438

Nationality:

Irish

Email:

dj_barrow@ariasoft.ie

Martial Status:

Single

Qualifications:

B. Eng. Electronics

Objective

I am B.Eng. Electronics with 24 years professional programming experience over 18 as a Linux Kernel Developer. I enjoy Electronics & Physics as well as programming. I like programming Android and in a GNU/Linux environment & would particularly enjoy a job which appealed to my other interests too ( Physics, Electronics, VHDL, Android/iPhone programming). I am primarily interested in contract or permanent work near home in Cork.

Computer Skills

Operating Systems:

Unix (Linux, AIX, MacOS X, iPhone),PSOS, Mac OS, Windows (3.x, 9x, 2K, NT 4.0, XP, NT, Vista, 7), S/390 ZSeries VM & CMS, DOS, Mach Microkernel.

High Level Languages:

C, C++, PHP, Javascript, SQL, Open Firmware / Forth, VHDL, Java, Basic, HTML, Shell Scripting, Objective C, Perl, Pascal, Python.

Assembly Languages:

Cell Processor ( as on the Playstation 3),Power4(970),MIPS,PowerPC, 680x0, S/390 & z/Architecture, 80x86, Z80, 6502 and 6800, Mips 32 & 64 Bit, ARM.

GUI Frameworks:

Qt, MacOS X Xcode, Gnome, GTK+, GDK, AWT, X-Windows. Athena, Powerplant, OWL, Visual C++

Networking Skills:

TCP/IP, AJAX, AppleTalk, Ethernet, ATM, Token Ring, FDDI, CGI.

Other

Git, SVN, CVS , Eclipse IDE, Microsoft Visual Studio

Client

Position

Synopsis

Period

Aria Enterprises,
Poundys Cross,
Scarra,
Glantane,
Mallow, Co. Cork,
Ireland.
Android Linux, Mac, Windows Developer, Electronics Repair Technician, Builder, Farm Labourer.
Developed a frequency generator which is on google play ( search for frequency generator Denis Joseph Barrow on google play ). Investigating improving the android contact manager for google added voice tags & accessibility options to make text large so a blind or nearly blind person can make phone calls reliably. Did voice recognition project using pocketsphinx got so I could make a voice controlled set top box for television prototype. Freelance programming on www.freelancer.com, repairing Electric Fencers and investigating trading them, helped build my own house, also worked as a Farm Labourer during the busy seasons. Aug'13-

Client

Position

Synopsis

Period

Wolfson Electronics,
Westfield House,
26 Westfield Road,
Edinburgh EH11 2QB,
Scotland
Contract Linux/Android Kernel Engineer
Developed, maintained & tested the next generation of the WM5110 Audio System On Chip (AsoC) drivers as used by Samsung Microelectronics on their Android mobile phones. Got Kernel GDB working the Samsung based platform to save a small fortune on Lauterbach Debugger licences. May'13-Aug'13

Client

Position

Synopsis

Period

Avoca Water Softener Services Ltd.,
Ballylough,
Mitchelstown,
Co. Cork,
Ireland
Part Time Contract Hardware Engineer & Scientist
Acquired parts & developed electronics for a Water Softener System. Investigated effects of doing alternating current electrolysis & using low frequency radio waves on water in an attempt to copy John Kansuis’s experiments on Water. Currently developing an Android Frequency Generator. Oct'12-May'13

Client

Position

Synopsis

Period

Digisoft.tv,
Building 4200,
Cork Airport Business Park,
Cork,
Ireland.
Contract Software Engineer
Enhanced & refactored 2 hardware accelerated video players used in a small MIPS based embedded computing platform to made them suitable for use with Digisofts Sigma Designs set top box platform & related products. I was the initial main bringup developer of a WebKit (Google Chrome/Safari ) based web browser using DirectFB & Enlightenment Window manager working on a SetTop box which involved gaining understanding & fixing bugs in 5,000,000 lines of code & getting the memory requirements down. Also interfaced the Hardware Accelerated video player into WebKit as a HTML5 video player for Digisofts browser. As well as some experimentation with V8 Javascript Engine. Jan'11-Oct'12

Client

Position

Synopsis

Period

Aria Enterprises,
C/O Mary Ryan,
Knocknamona,
Glantane,
Mallow,
Co. Cork,
Ireland
Software Engineer
Developed an iPhone app in Objective C which fixes iPhone WIFI connectivity to some Irish broadband routers this was developed because some iPhones modem & phone circuitry simply isn’t good enough to work on rural phone networks in normal circumstances. This program is available in the Cydia iPhone Appstore. Wrote a multi platform MP3 to sheet music converter capable of running on Linux,Windows & Mac OSX using Qt libraries,portaudio cross platform sound playing/recording libraries like ffmpeg sound decoding libraries. Developed a working prototype software solution using open source software (ffmpeg/VLC among others) which I enhanced to allow farmers the possibility of watching animals e.g. Cows giving birth over the internet on the iPhone among other platforms so farmers can get on with their life & return home to deliver the baby just in time & among other platforms. Also investigating marketing solutions made by others & sourcing components to make the solution as cheap as possible. May'09-Dec'10

Client

Position

Synopsis

Period

Option NV,
Gaston Geenslaan 14,
B-3001,
Leuven,
Belgium
Contract Linux Kernel Engineer
Maintained Developed & Enhanced ( over 50 bugfixes & enhancements ) the HSO USB 3G modem driver in the Linux Kernel. Also developed substantial portions of a new SPI connected 3G modem driver for Option. July'08-Jan'09

Client

Position

Synopsis

Period

Aria Enterprises,
C/O Mary Ryan,
Knocknamona,
Glantane,
Mallow,
Co. Cork,
Ireland
Software Engineer
Developed a program to convert audio music into a simplified form of sheet music, to do this I invented a frequency analysis technique which is superior to fourier transforms for music frequency analysis this program was developed using Gnome GTK+ & GDK. May'08-June'08

Client

Position

Synopsis

Period

Sony network and technology centre europe,
The corporate village,
Da Vincilaan 7-D1,
B-1935 Zaventem,
Belgium
Contract Software Developer Refactored & modularised performance monitoring software, oprofile on Linux for the Playstation 3. Bugfixed another peice of performance monitoring software called Perfmon2 also for the Playstation 3. Wrote test code for the SPU's on the Playstation 3's Cell Processor. Feb'08-Apr'08

Client

Position

Synopsis

Period

Aria Enterprises,
C/O Mary Ryan,
Knocknamona,
Glantane,
Mallow,
Co. Cork,
Ireland
Software Developer/
Business development manager/ Hardware Engineer
Completed developing V1.0 of the travelsmart carpooling website, it is online at http://www.travelsmart.ie. Currently marketing & business developing the website got on Irelands no.1 Radio Show the Gerry Ryan Show to promote it, also the Corkman & Irish Examiner Newspapers. I enhanced gnu pcb, a open source pcb design tool so that it was capable of working with SMT ( surface mount technology components ) and developed a PCI board with a Xilinx XCS40XL FPGA to be marketed for use by students doing final year college projects. I also developed the VHDL for the PCI interface to the board & hardware for the serial flash required for downloading to the FPGA on bootup. Dec'06-Jan'08

Client

Position

Synopsis

Period

Thales Computers,
150 Rue Marcelin Berthelot,
Zi Toulon Est,
BP 244,
83078 Toulon,
Cedex 9,
France
Linux Kernel & Application Developer Developed Board Support Packages for Thales PentXM2 motherboards, This included development of kernel modifications to use a common SST gettimeofday timesource between multiple PentXM2 boards on the same VME backplane & an NTP likeclient-server programs for synchronising the timers initially, building RPM packages for distribution of the BSP Packages,a BIOS programmer driver/utility, a real time clock device driver, porting of lm93 lmsensor packages & related SNMP tools to RHEL4, modification of the 6300 south bridge watchdog timer driver to work on the PentXM2 board, a GPIO driver,utility tools to view & modify the BCSR registers on a cPLD on the PentXM2 motherboards & related documentation. Sept'06-Dec'06

Client

Position

Synopsis

Period

Aria Enterprises,
Scarra,
Glantane,
Mallow,
Co. Cork Ireland
Software Developer Developed a carpooling website utilising PHP, MySQL, Javascript, AJAX & Google Maps. May'06-Sept'06

Client

Position

Synopsis

Period

Pace Technologies,
Victoria Rd.,
Saltaire,
West Yorkshire,
BD183LF England
Contract Digital TV Developer Enabled vxWorks low level debugger on a set top box platform. Ported a smartcard device driver to new SPI's. Wrote a dead code analysis tool which works in conjunction with gcc & used it to remove over 300k of unused functions in set top box device drivers. Wrote another tool which finds functions & global variables which can be declared as static this removed symbol table relocation entries saved more memory in a new embedded linux set top box platform. Feb'06-May'06

Client

Position

Synopsis

Period

Aria Software Ireland Ltd,
Scarra,
Glantane,
Mallow,
Co. Cork,
Ireland. Author Wrote a book, "The nerds survival guide", available on Amazon. Sept'05-Feb'06

Client

Position

Synopsis

Period

Silicon & Software Systems,
Cork Business & Technology Park,
Model Farm Road,
Cork,
Ireland Contract PSOS Digital TV Developer Upgraded Humax Digital TV Set Top Box Nagravision Conditional Access Kernel from version 5 to version 6 for tvcabo. For this I recovered unused RAM using an original stack minimisation algorithm, did reverse engineering to find unused RAM in the Set Top Box & recovered 200k of ROM by compressing the .data section of the image. I also worked fixed/worked around several bugs in the compiler to get remote serial debugging working under very tight memory conditions. May'05-Sept'05

Client

Position

Synopsis

Period

Skyguard Technologies,
Turners,
Charles Hill,
Tilford,
Farnham,
Surrey,
GU10 2AT England
Contract Linux Kernel Developer Kernel development of device drivers for GSM phone with GPS capibility called a SkyMinder for use in emergency "man down" situations to call for help, for this I developed a linux video driver for monochrome lcd hardware, made enhancements to an OSS sound driver, keyboard driver & a character driver used to talk to GSM & GPS hardware through a PIC microcontroller. Jan'05-Apr'05

Client

Position

Synopsis

Period

IBM Deutschland GmbH,
Schoenaicher Str. 220,
D-71032 Boeblingen,
Germany.
Contract Linux Kernel Developer Linux kernel & Glibc development, virtualisation technology development & evaluation Oct'02-April'04

Project

Description

Period

Elf loader for OpenFirmware Developed from scratch a Forth Elf loader capable of loading the Linux Kernel for Open Firmware. Feb'04-Mar'04
AltiVec/VMX enablement of PPC64 Linux kernel for GPUL ( PowerPC 970 ). This involved development & porting of AltiVec context switching & enablement & exception handling & bugfixing from the PPC32 Linux Kernel to the PPC64 Linux Kernel. May'03-July'03
Performance evaluation of various virtualisation technologies. This involved performance measurements of VMWare, UML, Xen, Mac On Linux (MOL), and L4 Pistachio, using LMBench & compilation performance, checking code quality stability & feasibility study of porting to GPUL (PowerPC 970). Oct'03-Feb'04
OpenPHYP Development of RPA compliant open source PHYP compatibility layer for Linux, This would allow running of multiple PPC64 Linux kernel images on a single machine. April'03-May'03
User Mode Linux performance enhancements. Developed a UML SKAS2 ( separate kernel address space ) mode speedup for syscalls which halved the syscall overhead for UML ( its main performance bottleneck ) also added SMP support to SKAS2 mode for the 2.4 & 2.6 Linux Kernels. Oct'03-Mar'04

Client

Position

Synopsis

Period

Asita Technologies Ltd,
Unit 2,
Ballybrit Industrial Estate,
Galway.
Ireland
Contract Software Engineer Port of Linux to a BCM1250 ( MIPS ) embedded environment with firewall hardware accelerated VPN & routing capabilities, the PSB ( PCI security blade ). Mar'02-Sept'02

Project

Description

Period

Packet FIFO driver Modified sb1250 Linux Ethernet driver & kernel code to send Ethernet packets encapsulated in propriatory headers which were kept with the packet while in kernel memory ( skbuffs ) so that hardware accelerated routing decisions could be made when packets were send out over packet FIFO interface again. July'02-Sept'02
BCM1250 interrupt layer & softirq improvements Modified the sb1250 Linux interrupt layer to be fully SMP capable, interrupts in MIPS linux prior to my modifications were always delivered to CPU0, this inadvertently meant that all networking code ( softirq ) code ran on only 1 CPU. I developed 2 policies deliver even IRQS to CPU0 odd IRQS to CPU 1 or else deliver interrupts to both CPUs ( BCM1250 has two processors on one die ) while only handling on one CPU ( hardware limitations on the BCM1250 interrupt controller prevented me developing true floating irqs, this along with more aggressive softirq scheduling vastly improved CPU intensive network performance ( e.g. firewalling ). Apr'02
DES3 implementation on Xilinx Virtex FPGA Developed in VHDL the DES3 portion of an accelerated IPSEC implementation for a PCI board known as a PSB which implemented hardware accelerated firewalling & IPSEC. May'02-June'02
Firewall evaluation of BCM1250 Modified the sb1250 Linux Ethernet driver to handle jumbo packets ( BCM1250 pass 1 hardware had bugs which required overcoming ), Found firewall performance to be bound by the shared L2 cache & memory depending on the number of rules so 1 CPU ran just as fast as 2 cpus if a lot of firewall rules were used. Apr'02-Aug'02
Memory controller bringup on PSB. Got CFE ( Broadcoms Common Firmware Environment, functionally similar to PC's BIOS ) running on PSB by correctly configured BCM1250 memory controller over EJTAG. Also modified of CFE to configure PSB's DRAM chips correctly so that CFE could be booted from Flash. Apr'02-Aug'02
Various MIPS Linux kernel bugfixes & improvements Fixed rarely seen kernel bugs in uaccess.h ( copy to/from user ) & sent fixes to the MIPS mailing list & broadcom which prevented iptables ( Linux firewalling ) from working. Fixed broken machine instruction emulation for unaligned memory accesses in delay slots. Added improvments to do_softirq to improve softirq latency. Fixed generic 2.4.18 kernel race condition in which init_idle was called after being removed from kernel. Wrote code to download Linux kernel & ramdisk over PCI to BCM1250 DRAM. Bugfixes & performance improvements to Linux ISES ( encryption acceleration ) driver. Apr'02-Sept'02
Fixes & improvements to broadcoms tools Found bugs in Socview ( a broadcom bootstrap tool ) which prevented loading of little endian ELF binaries without source code ( reported bug to broadcom ). Found & worked around bug in Socview which prevented gdb remote debugging from working over EJTAG. This was caused by a ommission of clearing of EJTAG debug register starting running of ELF binary posted fixes to broadcom. Apr'02-Sept'02
Flash blower Wrote program to convert Xilinx RBT files to binary & download this with an appended image of CFE to a shared flash on PSB. Apr'02-Sept'02

Client

Position

Synopsis

Period

IBM Deutschland GmbH,
Schoenaicher Str. 220,
D-71032 Boeblingen,
Germany.
Contract Software Engineer Linux for S/390 & z/Series kernel, gdb & driver development, debugging & documentation. Oct'98-Jan'02

Project

Description

Period

LCS Ethernet/Token Ring/FDDI driver This driver is fully operational & has been for a long time, currently testing FDDI & adding multicast support & optimising to improve I/O performance and performing enhancement requests. Jan'99-Dec'02
Channel device layer This is a common code used to initialise & configure all S390 channel devices ( LCS, Gigabit Ethernet, CTC, ESCON & CLAW ). Jan'00-Apr'00
IEEE exception handling IEEE FPU exception handling in glibc & kernel so the kernel can deliver exceptions such as division by zero, overflow, underflow & user programs can temporarily suspend delivery of exceptions or clear them or in critical areas of code & deliver them later or set rounding modes etc. May'00
Debugging on Linux for S/390 & z/Series A tutorial on various techniques available for debugging on Linux for S/390 & z/Series the document is available here. Jan'00
Gdb port to Linux for S/390 & z/Series This involved porting all of the architecture dependent parts of gdb ( the gnu source level debugger) aside from the bfd back end and the disassembler. This includes core dumping support in the kernel & gdbserver remote debugging support. These contributions have been accepted by gnu.org & available in official gdb distributions. Sept'99-Dec'02
SMP Bringup on Linux for S/390. For SMP bringup I wrote the inter processor signalling code & the code to start the other processors. July'99
FPU scheduler support in kernel. This provides correct context switching of IEEE FPU registers ( both emulated & real ) in Linux for S/390 & also correct delivery & restoration or FPU registers in the signal handler code. May'99
Strace port to Linux for S/390 & z/Series Strace is a popular debugging tool on Linux ( & Linux for S/390 & z/Series) & is used for tracing system calls issued by debugged processes more information on Strace is available here. I also extended it to support dual personality debugging of 31 bit S/390 programs on z/Series. Aug'99-Oct'01
Ptrace support This is the Linux for S/390 kernel support used by gdb & strace for debugging user programs i.e. support for single stepping, hardware watchpoints etc. Mar'99
Kernel IP Checksumming This proved more awkward than expected to get going as the interfaces were undocumented, there was no C sample code, & partial checksum routines & unlike other architectures we have separate address spaces so other Linux's could use generic code for copying inside & between address spaces, I eventually got this going by writing a battery of tests porting the LinuxPPC assembly to AIX & comparing the results with S/390 results & refining the S/390 code appropriately. Feb'99
Kernel signal handling support This provides posix signal support in Linux for S/390 including real time signals & allows the kernel & other user programs to notify each other of events or to modify their behaviour. Nov'98 & Dec'99

Employer

Position

Synopsis

Period

Apple Computers Ireland Ltd.,
Hollyhill,
Cork,
Ireland.
Software Engineer Writing system/commercial software, file transfer and compression utilities, software installation tools. Mar'95-Oct'98

Project

Description

Period

AFPD port to Rhapsody A port of the freeware AppleShare server that I previously ported to AIX (described below). AppleShare is Apple’s standard network file transfer protocol. June'98
Berkley FFS TideMark Library A Library to walk the structure of a UFS partition and produce a bitmap of all used disk blocks. This is used by Disk Copy (Apples Standard Disk Imaging Compression Utility) to compress UFS drives. June-July'98
CopyEngine Library / Utility An extremely fast file transfer library / utility which leverages off of the thread manager I wrote for the DriveShare Project ( possibly the fastest file transfer utility / library currently available on Mac OS ). Dec'97-May'98
Data Compression Libraries
(Kencode / Apple Data Compression )
Rewrote an existing compression library (Kencode), speeded it up, improved compression ratios while keeping it backward compatible and removed several bugs. Wrote new compressor (Apple Data Compression) in C, 68000 68020 and PPC Assembly. Its compression ratio is as good as commercial Macintosh compressors with compression speeds of 300k/sec and extremely fast Decompression (10MB/s on 9500/132). Currently used in QuickTime, Disk Copy and System Compressed Resources. Mar'96-Nov'97
AFPD Port to AIX In this project I ported a free AppleShare server to AIX and implemented it using the Apple's Network Server Group AppleTalk stack so that it would support AppleShare IP. Also got an Adaptec ATM25 beta driver with a poorly written installation package running on the Network Server with an ATM155 card so I was able to get AppleShare running over Classical IP. July'97-Sept'97
Software Installation Management Suite ( PicMac ) I took over an incomplete software project, completed it, fixed several bugs and performed enhancement requests. PicMac is used in Apple’s software installation warehouses worldwide and is responsible for increasing throughput of software installation stations in Cork by 50%. Apr'97-July'97
ATM DriveShare Project The objective of this project was to allow drive sharing over ATM networks. The AFPD Port to AIX superseded this project. The Scheduler for the ATM Drive Share project evolved into a thread manager, which is multiprocessor safe. Dec'96-Apr'97
PC drive container cropper / uncropper pair The Cropper program walked the directory structure of SoftWindows / DOS compatibility cards' drive containers, cropped the drive container at the last used sector. The uncropper system extension would expand the drive container to its original size and then delete itself. July'96
PPC / 68k assembly checksum routines I developed new checksum routines for In house software installation tools. The PPC ones had to be linked inside 68k libraries. These were responsible for upping throughput of software installation stations in Cork by 30%. Also wrote ones for Disk Copy. Nov'95
Radio tuner component (Device Driver) for Macintosh Involved developing a system extension for communicating with a FM radio tuner on Apple's TV Tuner Card via IIC. This has been sold in new Macintoshes worldwide. Apr'95-Nov'95

Employer

Position

Synopsis

Period

PCSL Software Ireland Ltd.,
Unit 31,
Whitestown Industrial Estate,
Tallaght,
Dublin 24,
Ireland.
Software Engineer Project co-ordination, programming/designing commercial software. File conversion and product development utilities in C, C++ and assembly language. Apr'92-Mar'95
Projects worked on included:
A Windows Arthritis Image Recognition System. A Windows Multimedia library for playing movies. A Sound Sample compression utility. A Windows Route Planner ( like AutoRoute ) for all of Germany. A supermario style educational arcade game. Low level graphics libaries for VGA,EGA,CGA,Hercules graphic cards. A Sound sample player which performs software emulation of a 5-bit D/A converter using a normal PC speaker. A Soundblaster music driver for PC, this Involved reverse engineering Amiga mod files and writing utilities to convert these files to a suitable format for use in a SoundBlaster/PC Speaker music driver I wrote for use in PC games. Famile Duell: A 68000-assembly language game for the Atari ST. Lingo Z80 assembly language game for the CPC 464.

Education

Third Level

Period

Cork Regional Technical College (now Cork Institute of Technology), Rossa Ave, Bishopstown, Co.Cork, Ireland. Sept'87-July'91

Degree

B. Eng. electronics this is a 4-year degree programme certified by the NCEA.

Final Year Project

Image Processor written in C and 80x86 assembly language. It involved downloading an image from a camera/digitiser via RS232 and using a P.C. to enhance this image, display it on a VDU, send part or all of the image to a printer or saving it to disk for later use.

Secondary

Period

St. Colmans College, Fermoy, Co.Cork, Ireland. Sept'81-July'86

References

Available on request.
About
Contact
Projects
Links
GPL Contributions
Bookmarks
Ebooks

copyright 2000 aria software ireland ltd - all rights reserved

Website Artwork by  Kristian Walsh