I am an experienced developer and application architect, who has been expanding into statistical analysis, machine learning, and deep learning for the past few years. My previous experience developing enterprise Java applications and microservices is proving useful to productize new machine learning applications. For example, I recently implemented some statistical analyses in R and then productized that application for deployment as a web service. My experience as an application architect is especially useful working with data scientists, helping them to turn their preliminary coding into released products.
Jim Tyhurst, Ph.D.
Portland, Oregon, USA
jim@tyhurst.com
Application Architect and Developer (PDF resume)
I have been an independent consultant since 2000, contracting with companies who need to write their own software. I have worked in the roles of machine learning engineer, application architect, R developer, and Enterprise Java developer, writing Java since 1997. Since 2011, I have been designing and developing RESTful web services for enterprise applications. Since 2016, I have been writing R applications for statistical analysis, deployed as RESTful web services. Most recently, I have been working in Python, developing data pipelines and neural networks.
I have used machine learning, rule-based systems, object-oriented design, functional languages, artificial intelligence techniques, relational databases, and NoSQL databases. My understanding of alternative architectures leads to well-structured, maintainable code based on design patterns when appropriate and supported by automated unit tests.
With the recent blossoming of the field of Data Science, many companies assume that their large amount of untapped data is ready to start yielding great insights immediately. Unfortunately, if the company is not already performing statistical analysis or building predictive models with that data, it probably needs quite a bit of work before the company can start deriving more benefits. These companies can start optimizing their data usage by starting with a small team who has expertise in the full range of the software development life cycle while also understanding where data science overlaps and differs from traditional enterprise software.
Expanding your IT team into data science and machine learning involves more than just adding to your database administrator's job description or increasing the workload for your report writers. Both of those roles focus on recording and reporting business transactions. Data science focuses on statistical analysis derived from those transactions to provide business insights. You are probably already doing some statistical analysis for Key Performance Indicators for your business. However, it is likely that you could also benefit from additional statistical analysis of internal data, in order to improve operational processes. Many companies are now exploring how machine learning can use their data to train models that can predict results for new examples of data.
I have worked on web applications, web services, and machine learning applications. I can help organize data sources, implement data pipelines, and productize machine learning applications to provide data-driven improvements for a business:
I can work with your IT team to determine ways in which your untapped data can enhance business processes.
See my LinkedIn profile for a listing of my consulting clients and projects.
Ph.D. in Linguistics
Dissertation: "Logical Forms for English Sentences"
My dissertation investigated the relationship between syntactic structure and semantic interpretation, in order to develop an explicit model of the mapping from surface syntactic forms to a level of Logical Form (LF) and finally to truth values. The mapping from surface structure to LF was done within the framework of the Government and Binding (GB) theory of grammar. A computationally tractable interpretation algorithm was given for mapping logical forms onto truth values within an extensional model-theory semantics. The algorithm for interpreting logical forms was based on work in generalized quantifiers, which enables one to provide a uniform interpretation for a wide range of determiners, including those which are not first-order definable (e.g. "most") and those constructed from Boolean combinations of determiners (e.g. "some but not all", "at least six but not more than twelve"). I also gave an analysis of referentially dependent noun phrases that inherently require a higher-order analysis, such as reciprocals (e.g. "each other", "each other's children").
Honors: W.M. Keck Research Award for "Semantic Representations for English" project on the Connection Machine.
M.A. Linguistics
Thesis: "Tone in Kenyang Noun Phrases"
B.S. Computer Science
B.A. Mathematics
Honors: GraduatedCum Laudein both degrees.
Preparing for Google Cloud Architect Professional Certificate. 2021-11-28. Google 7-Course Specialization. Coursera.
Machine Learning with TensorFlow on Google Cloud. 2018-12-18. Google 5-Course Specialization. Coursera.
Building R Packages. 2018-04-28. Johns Hopkins University. Coursera.
Introduction à la statistique avec R. 2016-11-24. Université Paris-Sud. FUN MOOC.
Web sémantique et Web de données. 2016-05-26. Inria. FUN MOOC.
Data Science and R courses. 2014. Johns Hopkins University. Coursera.
Tyhurst, Jim. 2021-02-23. 10 Git Commands for Collaborating: Learn Just Enough Git and GitHub to Contribute to an Open Source Project. Presented at Portland R User Group, Portland, OR.
Portland R User Group Meetup Announcement.
10-Git-Commands-for-Collaborating.pdf
YouTube recording.
Tyhurst, Jim. 2017. Internationalizing an R application for model parameters that vary per country. Lightening talk presented at CascadiaRConf 2017, Portland, OR. June 3, 2017.
https://cascadiarconf.com/years/2017/
https://github.com/jimtyhurst/i18nr
Tyhurst, Jim. 2011. Model-Theory Semantics implemented in Clojure. Lightning talk presented at Lambda Lounge user group. St. Louis, MO. April 7, 2011.
/static/JimTyhurst-ModelTheorySemantics-20110407-3ef89faaabad7ba295f03f245e2e1291.pdf
https://github.com/jimtyhurst/generalized-quantifiers
Berman, Gerald D., Richard N. Gray, David Liu, and James J. Tyhurst. 2001. "Structured radiology reporting: a 4 year case study of 160,000 reports". Presented at the Integrating the Healthcare Enterprise (IHE) Symposium of the Radiological Society of North America (RSNA) 2001 Annual Meeting, November 25 - 30, 2001.
/static/structurad-rsna-2001-1534609b2b086c2d2c2fd17aa3ad22f4.pdf
Tyhurst, James J. 1990. "Logical Forms for English Sentences". Ph.D. dissertation at the University of California, Los Angeles.
http://www.linguistics.ucla.edu/general/dissertations/Tyhurst.1990.pdf
Tyhurst, James J. 1989. "A semantic characterization of referentially dependent noun phrases". Presented at the 1989 Annual Meeting of the Linguistic Society of America, Washington, DC, December 27-30, 1989.
Abstract on p. 67 of Annual Meeting 1989 Handbook (p. 95/154 of PDF)
Tyhurst, James J. 1989. "Interpreting generalized quantifiers in natural language". Presented at the 15th Annual Minnesota Conference on Language and Linguistics, Minneapolis, Minnesota, October 13-14, 1989.
Tyhurst, James J. 1989. "Complex reciprocals in English". Presented at the ASL/LSA Conference on Logic and Linguistics, University of Arizona, Tucson, July 23-24, 1989.
Tyhurst, James J. 1988. "The role of linguistic and sociolinguistic questionnaires in literacy development programs". Presented at the 19th Annual African Linguistics Conference, Boston University, April 15-17, 1988.
Tyhurst, James J., and Kerry L. Glover. 1988. "A menu-based interface for expert system rules". In Proceedings of the 2nd Annual Expert Systems Conference and Exposition (April 12-14, 1988). Detroit: Engineering Society of Detroit. pp. 203-210.
Proceedings indexed in: OCLC WorldCat.
Tyhurst, James J. 1987. "Accent shift in Seminole nouns". In P. Munro (ed.), Muskogean Linguistics, UCLA Occasional Papers in Linguistics, No. 6. Los Angeles: University of California. pp. 161-170.
Tyhurst, James J. 1986. "Applying linguistic knowledge to engineering notes". In S.C-Y. Lu and R. Komanduri (eds.), Knowledge-Based Expert Systems for Manufacturing (PED-Vol. 24). New York: The American Society of Mechanical Engineers. pp. 131-136.
Proceedings indexed in: OCLC WorldCat.
Tyhurst, James J. 1986. "Natural language processing applied to engineering notes". Ultratech Artificial Intelligence Conference Proceedings (Vol. 1), Long Beach, California. pp. 2-199 to 2-211.
Proceedings indexed in: OCLC WorldCat.
Tyhurst, James J. 1986. "Lexical and phrasal tone patterns: evidence against the Obligatory Contour Principle". Presented at the 17th African Linguistics Conference, Indiana University, April 3-5, 1986.
Tyhurst, James J. 1985. "Tone in Kenyang Noun Phrases". M.A. thesis at the University of California, Los Angeles.
Indexed in OLAC Language Resource Catalog
Tyhurst, James J. 1984. "Phonology of Kenyang". Yaoundé, Cameroon: Société Internationale de Linguistique. 60 pp.
Tyhurst, James J. 1983. "Linguistic survey of the Nyang languages". Yaoundé, Cameroon: Société Internationale de Linguistique. 80 pp.
Tyhurst, James J. 1983. "Cognate rate calculation program: COG User's Guide". Yaoundé, Cameroon: Société Internationale de Linguistique. 24 pp.
Tyhurst, James J., and Janis L. Tyhurst. 1983. "Sociolinguistic survey of Kenyang and Denya". Yaoundé, Cameroon: Société Internationale de Linguistique. 43 pp.
Tyhurst, James J. 2006. Services that reach from the inside out. Presented at Dr. Dobb's Architecture & Design World. Chicago, IL. July 17 - 20, 2006.
/static/Tyhurst_Jim_ServiceGateways_20060719-7d06e5121a088ccc87017bb4a543dad3.pdf
Tyhurst, James J. 2002. Design considerations for applications that use domain-specific languages. Presented at the workshop, "Using Domain Specific Languages to Drive Business Applications". Association for Computing Machinery's Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2002). Seattle, WA. Nov. 4 - 8, 2002.
http://www.oopsla.org/2002/fp/files/wor-26.html
Tyhurst, James J. 2001. Choosing transaction models for enterprise applications. Presented at the workshop, "Three-Tier Architecture Pattern Language". 2001 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2001). Tampa, Florida. October 14 - 18, 2001.
http://www.tyhurst.com/resources/patterns/tx/
http://www.oopsla.org/2001/fp/workshops/23.html
Tyhurst, James J. 1999. Business goals for developing an enterprise application integration framework. Presented at the workshop, "Achieving bottom-line improvements with application and enterprise frameworks". 1999 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '99). Denver, Colorado. November 1 - 5, 1999.
http://classic.sigplan.org/oopsla/oopsla99/2_ap/workshops/ws20.html
Tyhurst, James J. 1998. The risks of developing a framework in an immature domain. Presented at the workshop, "Pragmatic issues in using frameworks: Implications for framework design". 1998 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '98). Vancouver, British Columbia. October 18 - 22, 1998.
Tyhurst, James J. 1998. Case study: Publishing design deliverables on the web. Presented at the workshop, "Web enactment of object-oriented software design". 1998 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '98). Vancouver, British Columbia. October 18-22, 1998.