profile

About Me

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.

Contact Details

Jim Tyhurst, Ph.D.
Portland, Oregon, USA
jim@tyhurst.com

Consulting since 2000

Tyhurst Technology Group, LLC

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.

Current Focus

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:

  • Evidence-based improvement.
  • Statistical analysis of historical trends.
  • Build machine learning prototypes to make predictions based on historical data.
  • Productize machine learning prototypes.
  • Apply enterprise software practices to data science projects.

I can work with your IT team to determine ways in which your untapped data can enhance business processes.

Clients

See my LinkedIn profile for a listing of my consulting clients and projects.

Education

University of California, Los Angeles (UCLA)

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.

University of California, Los Angeles (UCLA)

M.A. Linguistics
Thesis: "Tone in Kenyang Noun Phrases"

University of California, Irvine (UCI)

B.S. Computer Science
B.A. Mathematics
Honors: GraduatedCum Laudein both degrees.

R Programming

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

Linguistics and Natural Language Processing

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.

Enterprise Application Frameworks

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.

Web-Based Development

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.