Just An Application


Personal Details

E-mail: simonjameslewis@gmail.com
Blog: justanapplication.wordpress.com

Career History

Samsung Research

Jan -Jul 2016

Investigating techniques and tools for improving operating system performance with respect to CPU usage, memory usage and power consumption, including work on

  • the memory usage characteristics of DEX and OAT files in the Android Runtime (ART)

  • the behaviour of Android application management in low memory situations

  • tool for static analysis of Java source code for identifying in App and cross App optimization opportunities

  • a tool for extraction and analysis of Android systrace/ftrace events capable of generating

    • graphical timelines for individual Apps with respect to activity, CPU usage and occupancy
    • graphical timelines for CPUs and CPU clusters with respect to activity and idle states and changes in frequency

New Model Software

2014 – 2015

  • iOS/Mac OS X MWG compliant framework for reading and writing image metadata

    • Written in Objective-C

    • Supported metadata formats
      • Read/Write

        • EXIF

        • IPTC-IIM

        • IPTC XMP Core v 1.2

        • IPTC XMP Extension v 1.2

        • MWG regions

        • XMP

      • Read

        • EXIF Makernote, for example

          • Apple

          • Canon

          • Fuji

          • Nikon

          • Olympus

          • Panasonic

          • Sony

        • Flashpix

        • ICC Colour Profile

        • JFIF

        • MPF

    • Supported image formats

      • Read/Write

        • JPEG

        • PNG

      • Read only

        • DNG

        • RAW, for example,

          • Canon

          • Nikon

          • Sony

        • TIFF

  • iOS/Mac OS X framework for adding/deleting/editing image metadata using Photos API .

    • written in Objective-C

    • uses image metadata framework described above</p

  • Command line tool for generating runtime schema describing manufacturer specific EXIF Makernote formats

    • Written in Objective-C

    • EXIF Makernote formats specified in XML

  • TableKit

    iOS Objective-C framework providing schema based dynamic runtime generation of UI for
    viewing/editing tabular data using UITableView, UITableViewCell,UITableViewController, UITableViewDataSource, UITableViewDelegate etc.

    Supported features include

    • addition/deletion of sections

    • addition/deletion/editing of cells

    • sub-tables

  • Command line tool for generating Objective-C TableKit runtime schema from definition of table schema written in XML

  • iOS App(Universal)/Photo editing extension for reading and writing image metadata to photos stored in Photos App.

    • Written in Objective-C

    • Implemented using frameworks described above and hence supports all image types and metadata formats described above

    • GPS location can be added using current location (if allowed) or selected from a map.

    • Photos are searchable by added/edited image metadata

  • iOS App (Universal) for remote control of Sony cameras supporting the Sony Camera Remote API.

    • Originally written in Objective-C, re-written in Swift.

    • Includes implementation of
      • Multicast UDP sockets.

      • Device discovery using UPnP SSDP

      • JSON RPC over HTTP

    • Application dynamically adapts supported functionality on the basis of information supplied by camera

    • Currently supports up to version 2.10 of Sony Camera Remote API.

    • Supported features include

      • liveview (Sony proprietary protocol over HTTP)

      • transfer of images from camera storage (when supported by camera) (JSON RPC over HTTP/GET)

      • remote playback (when supported by camera) (Sony proprietary protocol over HTTP)

  • Command line tool for generating runtime API schema from XML description of Sony Camera Remote API.


Jul – Dec 2010

Apr – Dec 2011

Nov – Mar 2012/13

  • Port of Webkit/Linux based navigation product to new TI OMAP hardware using Gumstix board.

  • Exploratory port of Linux/C++ based navigation product back-end to Android.

  • New modular make based build system for Android version of Linux/C++ based navigation product

  • Investigation into performance issues in cmake based product build system.

  • Performance optimisation of cmake based product build system.

  • Maintenance/Defect fixing for navigation product front-end. Webkit/HTML/CSS/Javascript.

  • Integration of 3rd-party Bluetooth stack into Android based navigation product.

  • Framework for incorporating Android widgets into home screen of in-car Android based navigation product,

  • Investigation into ‘memory leak’ originating in Android IPC implementation. (Binder/BinderProxy/Distributed GC issue).

  • Investigation into Android font handling issues with navigation product specific font family.

  • Command Line Tool, implemented in Java, for analysis of output of sequential runs of Calabash-Android based test suite run under Jenkins.

  • Investigation into Calabash-Android test framework concurrency and performance issues when run under Jenkins using
    multiple Android devices.

  • Optimized Pico HTTP server for use on Android devices under test using Calabash-Android test framework.

New Model Software

Jan 08 – Jun 2010

  • Design and implementation of next generation pure Java/OS independent JME MIDP3 platform

  • Design and implementation of next-generation JME JSRs

    • UI Customization (JSR 258)

    • WebServices/ServiceConnection (JSR 279)

    • JME XML API (JSR 280)

    • JME Scalable 2D Vector Graphics API 2.0 (JSR 287)

  • Standalone (Android independent) ports of the Dalvik Java VM to

    • MacOS X

    • Linux (Maemo/N800)

    • Symbian OS (Emulator only)

  • Standalone (Dalvik independent) pure Java port of the Android runtime to MacOS X/JSE

  • MIDlets for Android: a Java MIDP solution for running MIDlets on Android

Symbian Software Ltd, London

Sept ’97 – Dec ’07

  • Ported the Bitflash implementation of JSR226 SVG to Symbian Java.

  • Designed and implemented Symbian’s support of JSR177 Appendix A support in Java including PKCS#15 parsing.

  • Designed and implemented Java and native parts of Symbian’s SATSA-PKI JSR177 optional package support including Java implementations of both CMS and PKCS#10 and using the Unified Certificate and Key Stores to provide a default Security Element implementation

  • Designed and implemented Java and native parts of Symbian’s Content Handler API (JSR211) support for MIDP 2.0, following participation in the JSR expert group.

  • Implemented MIDP 2.0 Security Recommended Practice, including definition of trust root binding policy file format using Relax NG/XML schema, PKCS#15 crypto token access, MIDlet suite signing tool.

  • Modified Symbian’s MIDP 2.0 implementation to fully support the JTWIr1 (JSR185) security policy.

  • Designed and implemented the SystemAMS and MIDletSuite AMS components of Symbian’s MIDP 2.0 implementation (as shipped on the Nokia 6600 and Sony-Ericsson P900). The SystemAMS is a standalone executable responsible or parsing and verifying MIDlet suite metadata during installation, and upgrade, and for managing installed MIDlet suites and their associated resources, e.g.,statically and dynamically registered ‘push connections’ and alarms, in collaboration with the MIDlet Suite AMS component of the MIDP 2.0 runtime itself.

  • Participated on behalf of Symbian in the definition of the MIDP 2.0 specification (JSR 118) and commented extensively on the Recommended Security Policy for GSM/UMTS Compliant Devices during its definition.

  • Designed and implemented the runtime/MIDlet suite lifecycle support for Symbian’s MIDP 1.0 implementation (as shipped on the Nokia 7650 and Sony-Ericsson P800)

  • Full pure Java implementation of client-side JPDA architecture, including JDWP and all com.sun.jdi classes,including TCP/IP and Serial connectors.

  • Low-level changes to PJava VM to achieve CLDC/’Blue Book’ compliance.

  • Implementation of a ‘MIDP 1.0 compatibility framework’ on top of PJava, including dynamic class re-writing, SecurityManager, etc.

  • Implementation of C++ libraries to suport Jar files, including support
    for signed Jars.

  • Implementation of the javax.comm Java extension on Symbian OS (Epoc).

  • Port of Sun’s KVM ‘micro edition’ VM to Symbian OS (Epoc).

  • Port of Sun PJava 3.1 VM implementation to Symbian OS (Epoc).

  • Port of Sun PJava 3.0.1 VM implementation to Symbian OS (Epoc), including addition of support for JDWP based debugging via a serial port.

  • Work on port of JavaSoft ‘classic’ Java VM (JDK 1.1 & 1.2) to Symbian’s Epoc OS including Java based tool for generating ROM based Java classes, and numerous other Java based tools for the analysis of Java classes, e.g., dependency graph generation

Zuno Limited, London

April ’96 – Aug ’97

  • Design and implementation of SGML parser in Objective-C and Java

  • Design and implementation of IIOP based CORBA ORB in Objective-C

  • Design and implementation of CORBA compliant Name Service in Objective-C

  • Design and implementation of CORBA compliant multi-threaded Trader in Java using OrbixWeb

  • Design and implementation of CORBA compliant multi-threaded Trader in
    C++ using SUN Visual Workshop C++ and Orbix(MT) for Solaris

BNR(Europe)(formerly STC Telecommunications)

Oct ’86 – March ’96

  • Design and implementation of OSI conformant Network Management infrastructure

    • Tool Suite

      • GDMO/ASN.1 Validation Engine: parses and validates GDMO definitions and ASN.1 modules and stores them as an object model in an object-oriented database (ObjectStore)

      • Code Generation Engine: generates classes, methods, functions, types, etc, to implement a given stored object model. Designed to support multiple back-ends, C++ and IDL back-ends were implemented.

      • GDMO/ASN.1 browser: ‘Hyper-text’ browser supporting graphical browsing of all GDMO definitions and ASN.1 modules in any stored object model

    • Runtime Environment

      • persistent C++ representation of GDMO defined objects

      • persistent MIT

      • conditional package instantiation

      • automatic attribute access

      • automatic action invocation

      • automatic notification generation on object creation, deletion and attribute replacement

      • Tcl interface allowing interactive manipulation of managed objects

      • design and implementation are object-oriented enabling application developers to customize and extend implemented functionality

  • Implementation of IDL compiler in C++

    • storage of parsed elements in ObjectStore based Interface Repository as per OMG specification

    • generation of C++ classes, structs, etc as per OMG specification

  • Implementation of IIOP based ORB in C++ as per OMG specification

  • Design of system architecture of distributed fault-tolerant, replicated Network management system using the ISIS Distributed Systems Toolkit

  • Design and implementation of distributed and replicated Object-oriented database system in CLOS/C++, using the ISIS Distributed Systems Toolkit

  • Design and implementation of fault-tolerant, distributed, and replicated event-handling and logging system using the ISIS Distributed Systems Toolkit

  • Port of CFN Network Manager software from Koto/Butress release of InterLisp-D/Loops on Xerox 1186 to Medley/’Loops The Product’ release on Xerox 1186 and Sun 3/60

  • Design and implementation, in Interlisp-D, of hierarchical network manager capable of automatic network topology determination and display; automatic end-to-end routing with constraints, etc

  • Design of Lisp interface to remote X window servers and partial implementation of X windows in InterLisp-D for Xerox 1186

  • Design and implementation, in C under Unix, using Sun RPC, of SQL server for Sun workstation

  • Design and implementation, in InterLisp-D, of Lisp/SQL interface for Xerox 1186

  • Design and implementation, in InterLisp-D, of Sun RPC package for Xerox

  • Design and implementation, in InterLisp-D, of NFS package for Xerox 1186

  • Design and implementation, in InterLisp-D, of ‘Environment Manager component of CFN Network manager including a light-weight reliable RPC package, and an implementation of the Xerox Clearinghouse and Authentication services

  • Design and implementation, in C under Unix, of hardware simulator

  • Design and implementation, in InterLisp-D, of Alarm logging and Alarm log inspection software for CFN1A and 1B Network management systems


Programming Languages

  • C

  • C++

  • Java

  • Lisp

  • Objective-C

  • Ruby

  • Swift


  • Eclipse

  • NetBeans

  • XCode/InterfaceBuilder

Version Control

  • CVS

  • Git

  • Mercurial

  • Perforce

  • Subversion

Operating Systems/Environments

  • Android

  • InterLisp-D

  • iPhone OS

  • NeXTStep/Openstep/MacOS X

  • Symbian OS

  • Linux

    • ARM Embedded, OMAP3, etc

    • Maemo

    • Suse

  • Unix

Window Systems And Toolkits

  • NeXTStep/OpenStep

  • Gtk+/Pango/Cairo

  • Cocoa, Quartz (MacOS X)

  • Qt

  • UIKit (iPhone)



  1. You, Sir, have redefined the meaning of “guru” to me…

    Comment by Gennady — March 5, 2012 @ 10:39 pm

  2. “Design and implementation of OSI conformant Network Management infrastructure”

    Wot, no mention of DSET (or Davey Wavey – ein volk, ein process) ?? 😀

    Comment by The other STC/ANSA/CLOS humanoid still in existence — December 5, 2013 @ 11:50 am

    • some things are better left unsaid 🙂


      Comment by Simon Lewis — December 5, 2013 @ 3:46 pm

      • Q3 TMN GAV linkedin

        will give you a comms channel (should you desire it)

        Hope all is well with you.

        Comment by :-) — December 5, 2013 @ 8:15 pm

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Blog at WordPress.com.

%d bloggers like this: