News

  • Open iOS source search framework
    My open source iOS and OS X search framework, SearchTouch, is available on Github. Written in pure Objective C, it will enable you to implement fast search of your data on iOS devices and Macs. The code is modular to allow different storage back ends. The main back end uses Core Data.

Introduction

My name is Julian Richardson. I am a software engineer at Google, working on Natural Language Processing and machine learning.

Prior to Google I worked on NLP at Powerset, helping to build a natural language search engine, and at Microsoft after they acquired Powerset. In between Microsoft and Google I explored the other fork in the road, doing iOS development for several startups, and ultimately Google, who hired me to work on the iOS Google+ app.

In my spare time I build things using Arduino and AVR processors, cut things up using a laser, and design and print objects on my home-built Reprap Prusa 3D printer.

Expertise

  • Natural language processing.
  • Machine learning.
  • Software architecture, design and implementation in C++, C, Python, Objective C, Prolog. I can also code in Clojure, Ruby, Java, bash, assembly language and even PHP if the need arises..
  • Artificial Intelligence.
  • Automated software engineering - software risk assessment, program synthesis and transformation.
  • iOS: Core Data, Grand Central Dispatch, multithreading, Core Animation, MapKit, UIWebView, full range of views and view controllers, XCode, building static libraries, OAuth, Facebook integration.
  • Search engine architecture and implementation – please check out my open source iOS/Mac OSX search framework, SearchTouch, on Github.

Publications

My publications principally concern Software risk analysis, requirements modeling, automated theorem proving, program synthesis, transformation and verification, computer games. I also have a number of magazine publications.

Requirements Modeling

"Learning Better IVV Practices" T. Menzies, M. Benson, K. Costello, C. Moats, M. Northey and J. D. C. Richardson, Innovations in Systems and Software Engineering March 2008.

"The Strangest Thing About Software", T. Menzies, D. Owen and J. D. C. Richardson, IEEE Computer, January 2007 (vol. 40 no. 1), pp. 54-60

"Making Sense of Requirements, Sooner", Menzies, T., Richardson, J. D. C., IEEE Computer, October 2006.

"Qualitative Modeling for Requirements Engineering", Menzies, T., Richardson, J. D. C., Proceedings 30th Annual Software Engineering Workshop, Loyola College Graduate Center, Columbia, MD, USA, 25-27 April 2006.

Software Risk Analysis

"Robust Derivation of Risk Reduction Strategies", Julian Richardson, Daniel Port, Martin Feather, Proceedings 2007 IEEE Aerospace Conference.

Optimizing the V&V Process for Critical Systems, James D. Kiper, Julian Richardson, Martin S. Feather, Search-based Software Engineering Workshop paper, 2007 Genetic and Evolutionary Computation Conference

"Robustness of The Strategic Method for Risk Reduction", Julian Richardson, Daniel Port, Martin Feather, presented in the government track at the 17th IEEE International Symposium on Software Reliability Engineering (ISSRE 2006).

"XOMO: Understanding Development Options for Autonomy", Menzies, T., Richardson, J. D. C., 20th International Forum on COCOMO and Software Cost Modeling, October 25-28, 2005, Los Angeles, California.

"Reducing Autonomy Risks through Rational Selection of Verification Strategies", Julian Richardson, Barry Boehm, Ray Madachy, LiGuo Huang, Dan Port, Rick Kazman, 2006 Ground Systems Architecture Workshop, Los Angeles, CA, March 27-29, 2006

Menzies, T. and Richardson, J. D. C., "XOMO: Understanding Development Options for Autonomy", 2005 COCOMO Forum, University of Southern California, 2005.

Synthesis, transformation and verification

Richardson, J. D. C. and Wilson, E., "Flexible Generation of Kalman Filter Code", 2006 IEEE Aerospace Conference.

Richardson, J. D. C., Schumann, J., Fischer, B., and Denney, E. W., "Rapid Exploration of the Design Space During Automatic Generation of Kalman Filter Code", 2005 IEEE Aerospace Conference.

Denney, E. W., Fischer, B., Schumann, J. and Richardson, J. D. C., "Automatic Certification of Kalman Filters for Reliable Code Generation", 2005 IEEE Aerospace Conference.

Richardson, J. D. C. and Green, J. A., Automating Traceability for Generated Software Artifacts, Proceedings of 18th IEEE International Conference on Robust Software Engineering (ASE 2004), IEEE Press, 2004.

Richardson, J. D. C. and Green, J. A., Traceability Through Program Synthesis, 2nd International Workshop on Traceability in Emerging Forms of Software Engineering (TEFSE), Montréal, Canada, 7th October 2003

Stacy Nelson, Nelson Consulting, Bernd Fischer, Ewen Denney, Johann Schumann, Julian Richardson, Phil Oh, "Product-oriented Software Certification Process for Software Synthesis", NASA Technical Report, September 2003.

Hnich, B., Richardson, J. D. C. and Flener , P., Towards Automatic Generation and Evaluation of Implied Constraints, Uppsala University Department of Information Technology Technical report 2003-014, March 2003

Richardson, J. D. C. and Flener, P., Program Schemas as Proof Methods, Uppsala University Department of Information Technology Technical report 2003-008

"Proof Planning and Program Synthesis: a Survey", Richardson, J. D. C., Logic-Based Program Synthesis: State-of-the-Art & Future Trends, AAAI 2002 Spring Symposium, March 25-27, 2002, Stanford University, Stanford, CA. PostScript. [ppsynthsurvey]

"Logic Program Synthesis in a Higher Order Setting," Lacey, D., Richardson, J. D. C. and Smaill, A., proceedings of the First International Conference on Computational Logic (CL2000), Lloyd, J., Dahl, V., Furbach, U., Stuckey, P.J. (editors), LNCS Vol 1861, pp. 87-100, Springer Verlag, 2000, Paper [LRS00]

Notes for ASE tutorial on Schema-guided Generation of Correctly Reusable Programs, Pierre Flener, Kung-Kiu Lau, Mario Ornaghi, Julian Richardson, 14th IEEE International Conference on Software Engineering, Florida, USA, October 1999. [ase-tutorial]

"An Abstract Formalisation of Correct Schemas for Program Synthesis", Flener, P., Lau, K.-K., Ornaghi, M., Richardson, J. D. C., Journal of Symbolic Computation, volume 30 number 1, July 2000, pp. 93-127, ISSN 0747-7171.  Abstract, paper. [flor_jsc]

"Deductive Synthesis of Recursive Plans in Linear Logic", Cresswell, S., Smaill, A. and Richardson, J. D. C., 5th European Conference on Planning (ECP-99), Durham, England, September 8 - 10, 1999, Lecture Notes in Artificial Intelligence volume 1809, Springer Verlag, to appear. [cresswell-ecp] Abstract, paper.

"A Unified View of Programming Schemas and Proof Methods (Extended Abstract)", Flener, P., Richardson, J. D. C., presented at LOPSTR'99, Venice, September 1999. Abstract. [schemas-lopstr99] Paper

"Proof Planning with Schema Frameworks", Richardson, J.D.C., Presented at the Eighth International Workshop on Logic Program Synthesis and Transformation (LOPSTR'98), Manchester, United Kingdom, 15 - 19 June 1998. Technical Report {UMCS-98-6-1}, Department of Computer Science, University of Manchester. Abstract (text), Paper (PostScript, 95k). [richardson-lopstr98]

"Development of Correct Transformation Schemata for Prolog Programs", Richardson, J.D.C. and Fuchs, N. E., LOPSTR '97: Proceedings of the Seventh International Workshop on Logic Program Synthesis and Transformation, Leuven, Belgium, July 10-12 1997, Lecture Notes in Computer Science volume 1463, N. E. Fuchs Editor, Springer Verlag, 1998, abstract, PostScript. [richardson-lopstr97]

"Symbolic verification with gap-order constraints", Fribourg, L. and Richardson, J.D.C., LOPSTR '96: Proceedings of the Sixth International Workshop on Logic Program Synthesis and Transformation, Stockholm, Sweden, August 1996, Lecture Notes in Computer Science volume 1207, J. P. Gallagher Editor, Springer Verlag, 1997, ISSN 0302-9743. PostScript. A longer, but older, version is available as Technical report LIENS - 96 - 3. Abstract (in English), français, paper . [pub-richardson-fribourg]

"Automating Changes of Data Type in Functional Programs", Richardson, J.D.C., Department of Artificial Intelligence Research Paper 767, Department of Artificial Intelligence, Oct. 1995. Abstract (text file), paper . A shorter version was presented at KBSE-95, Boston USA, 12-15 November 1995, proceedings published by the IEEE Computer Society. [richardson-rp767, richardson-kbse]

"The Use of Proof Plans for Transformation of Functional Programs by Changes of Data Type", Richardson, J.D.C., PhD Thesis, University of Edinburgh, September 1995. Abstract [richardson-thesis] (text file), full thesis.

"The Application of Proof Plans to the Transformation of Prolog Programs", Richardson, J.D.C., MSc Thesis, University of Edinburgh, September 1989. Abstract (text file), full thesis. [richardson_msc]

Automated theorem proving

"A Semantics for Proof Plans with Applications to Interactive Proof Planning", Richardson, J. D. C., Proceedings of 9th International Conference on Logic for Programming Artificial Intelligence and Reasoning (LPAR 2002), October 14-18th, 2002, Tbilisi, Georgia. Proceedings to appear as an LNAI volume, Springer Verlag. Abstract, Paper.

"Continuations of Proof Strategies", Richardson, J. D. C. and Smaill, A., Short Papers of International Joint Conference on Automated Reasoning Siena, Italy, June 2001, Rajeev Goré, Alexander Leitsch, Tobias Nipkov (Eds.). Paper [richardson-continuations].

"Proof Planning Methods as Schemas", Bundy, A. and Richardson, J. D. C., Informatics Research Paper 949, University of Edinburgh, 1999. Abstract, Paper.

"Proofs About Lists Using Ellipsis", Bundy, A., Richardson, J. D. C., In H. Ganzinger, D. McAllester, and A. Voronkov, editors, Proceedings of the 6th International Conference on Logic for Programming and Automated Reasoning, pages 1-12. Lecture Notes in Artificial Intelligence vol 1705, Springer-Verlag, 1999, ISBN 3-540-66492-0. Abstract. Paper [lpar_ellipsis]

"System description: proof planning in higher-order logic with LambdaCLAM", Richardson, J.D.C. and Smaill, A., and Green, I.M., Proceedings of the 15th International Conference on Automated Deduction, Lindau, Germany, July 1998, Lecture Notes in Artificial Intelligence volume 1421, C. Kirchner and H. Kirchner Editors, Springer Verlag, 1998. Paper. [Richardson+98] an updated version of the paper is available (Postscript)

Games

"Memory-Based Problem Solving and Schema Induction in Go," Alex Heneveld, Alan Bundy, Michael Ramscar, Julian Richardson, 22nd Annual Meeting of the Cognitive Science Society, 13-15 August 2000, Institute for Research in Cognitive Science University of Pennsylvania Philadelphia, PA USA. [HBRR00]

"Applying Adversarial Planning Techniques to Go", Willmott, S., Richardson, J. D. C., Bundy, A., Levine, J. M., Journal of Theoretical Computer Science, 252 (1-2) (2001) pp. 45-82. Abstract, Paper . [willmott-tcs]

"An Adversarial Planning Approach to Go", Willmott, S., Richardson, J. D. C., Bundy, A., Levine, J. M., Proceedings of The First International Conference on Computers and Games (CG'98), Tsukuba, Japan, November 11-12, 1998, Lecture Notes in Artificial Intelligence volume 1558, H. Jaap van den Herik and Hiroyuki Iida Editors, Springer Verlag, 1999. Abstract, paper . [pubcg98]

"Adversarial Planning in Complex Domains", Willmott, S. and Bundy, A. and Levine, J. M. and Richardson, J.D.C., Department of Artificial Intelligence Research Paper 887, February 1998. Abstract, PostScript.

Other

"POETIC: A system for gathering and disseminating traffic information", R. Evans, R. Gaisauskas, L. J. Cahill, J. Walker, J. D. C. Richardson, Journal of Natural Language Engineering 1 (4), 1995, pp 363-387.

Magazine Publications

"Microscopic Simulation with Paramics", Richardson, J. D. C., feature article, CADCAM Magazine, June 1998.

"The 1996 European Digital Automation Conference", Richardson, J. D. C., report, CADCAM Magazine, November 1996.

"Synthesis [of Computer Hardware]", Richardson, J. D. C., feature article, CADCAM Magazine, October 1996.

Contact

Blog

You can read my posts on my Mindmash blog (click through for startling design change!).

Pythagoras Clock

I have open sourced the designs and code for my Pythagoras Clock, a clock based on the pythagorean triple 3, 4, 5 and its relationship to the numbers of hours in a day and minutes in an hour. You can find more details at my Pythagoras Clock blog page or on the Github page.

SearchTouch – Open Source Search

SearchTouch is an open search framework for iOS and Mac which provides fast on-device search.

Books and other medium-sized document sets easily fit on iOS devices. Using SearchTouch, your app can avoid the dependence on a server for search facilities. Search remains available offline, and can be much more responsive than server-side search. You can download the code from https://github.com/spoogle/SearchTouch.

SearchTouch has been developed by Julian Richardson. Contributions are very welcome. Please contact me by email at julianrichardson@acm.org if you would like to contribute, or if you have bug reports, questions or suggestions.

Short resume

Please contact me for the full version. You could also check out my LinkedIn profile.

Julian Richardson, PhD, short resume:

  • February 2013 - present: Software Engineer, Google Inc. Since February 2014, I have been performing applied research in Natural Language Processing and machine learning. Prior to that I worked on the Google+ iOS app.
  • March 2011 - February 2013: iOS developer and consultant. Contracts have involved extensive interaction between iOS and a server back end, processing Facebook and Twitter feeds, OAuth, Core Data, building static libraries, custom UIWebViews, Testflight amongst other technologies.
  • Dec 2009 - Oct 2010: Senior Research Software Development Engineer, Microsoft (Powerset), working on natural language processing and machine learning applications.
  • July 2008 - Dec 2009: Lead Research Software Development Engineer, Microsoft (Powerset).
  • Led Front End and User Experience Group – team of 6 developers and designers responsible for Powerset.com front end, mid tier, and interface to Microsoft's Bing search engine. Led new features through concept, user studies and implementation. Improved process and reduced errors for runtime deployment and execution.
  • Led Natural Language Tools Group – team of 7 developers developing and maintaining core natural language components and related runtime and test infrastructure. Improved reliability of core NL components. Led development of scalable, extensible and reliable regression testing framework for NL components.
  • May 2007 - July 2008: Senior Software Engineer, Powerset
  • Jan 2003 - Apr 2007: Scientist, RIACS, NASA Ames Research Center. Conceived and wrote a successful $3.5M NASA proposal in 2004. Manager and Principal Investigator, May-December 2005, with 5 external subcontracts, 2 research scientists. Planning, coordination and execution of follow-up research project with 3 external subcontracts, 2 student interns. Formulation and review of software development standards for new NASA space vehicles. Research in code generation for Kalman filters – design and implementation in Prolog of facility for adapting autogenerated code to fit into target architectures. Conception, writing and review of research proposals and scientific publications, student supervision, serving on conference program committees.
Previous academic career:
  • Lecturer, Dept. Computing & Electrical Engineering, Heriot-Watt University.
  • Research fellow: University of Edinburgh, Division of Informatics, Institut für Informatik der Universität Zürich, Switzerland.
  • Marie Curie Fellow, Département de Mathématiques et Informatique, École Normale Supérieure, Paris, France.
  • PhD, MSc, University of Edinburgh, Scotland
  • BA, MA, Mathematics, Cambridge University, England