🌑

Micah D. Cochran, MSCS

Resume

PDF copy of Resume

Micah D. Cochran, MSCS

Springville, Alabama USA
mdcochra@uab.edu
micahcochran
in/micahcochran
256-394-2304
contact info (vCard)

Who Am I

I am software development professional available for hire. I have 16 years experience in land development law and Geographic Information Systems (GIS) working for a municipal Public Works Department. My interests include Geographic Information Systems, Natural Language Processing, and the Semantic Web.


Work Experience

    IT Student Worker

    • Sep. 2021–Apr. 2023
    • University of Alabama at Birmingham, Computer Science Department, Birmingham, AL
    • Duties (expand)
    • Duties: Installed and updated software on lab computers. Set up lab computers for PhD students. Took inventory of computers and phones. Created diagrams and publications. Performed basic computer diagnostics.

    Teaching Assistant

    Sep. 2022–Dec. 2022

    University of Alabama at Birmingham, Computer Science Department, Birmingham, AL

    • Assisted the class CS 221 Web Development, which covered topics HTML, CSS, and JavaScript.
    • Held labs and office hours to help students with assignments.
    • Graded student assignments.
    • Coordinated with the professor on assignments and grading.

    Geospatial Services Contractor

    Aug. 2021–May 2022

    Redrew voting districts based on 2020 Census.

    GIS Administrator/Coordinator

    Feb. 2005–Aug. 2021

    City of Athens, Alabama
    Engineering Services and Community Development Department.

    • Accomplishments:

      • Migrated many maps from paper to online interactive maps.
      • Programmed a Python script that automated routine GIS data requests reducing the processing time by 1 hour; a script that created a combined municipal limits layer from multiple GIS source; and software which would use PDF applications to create agendas and notices.
      • Migrated applications from paper to electronic PDFs. Moved site plan review to digital review and moved to digital document signing.
      • Served as liaison to FEMA during declared disasters in 2011 and 2014.
      • Led a multi-department/agency GIS Consortium that contracted three aerial photography flights and Web GIS services.
    • Regular duties included reviewing civil plans based on city regulations and communicating with developers about regulations, advising customers about how they could modify their plans to comply with local development laws, creating and maintaining Geospatial data, creating and maintaining cartography derived from the data, and distribution of GIS data.
    • Led a multi-department/agency Consortium contracting three countywide aerial photography flights.
    • See GIS Map Portfolio for map examples.

Education

M.S. Computer Science - University of Alabama at Birmingham

4.0 GPA
Aug. 2021 - Apr. 2023, Birmingham, AL
digitally verify (CeDID: 23YV-U4XM-MWNN and First two Letters of my Name: MI)

B.A. Geography - University of North Alabama

Aug. 2001 - Dec. 2004, Florence, AL
Minor: Computer Science

Certificate in Geographic Information Systems - University of North Alabama

Dec. 2004, Florence, Alabama


Technical Skills

  • Language: Python, C, Java, Shell [bash|fish], JavaScript, Racket
  • Database Storage: MongoDB, RDF, SQLite
  • Technology: Flask, MPI, OpenMP, SPARQL, SQL
  • Operating Systems: Linux (multiple distributions) / Windows
  • IDEs: Visual Studio Code, PyCharm, Eclipse, Jupyter Notebook
  • Tools: git / GitHub / GitLab, Docker, Amazon Web Services, pandoc, Vagrant
  • GIS Software: ESRI ArcGIS Desktop, QGIS

Projects

Zoning Ordinance Question Answering

  • Oct.–Dec. 2022
  • Team project created a Knowledge Graph Question Answering System. The software answered natural language questions about Zoning Ordinance laws. The Question Answering System recognized the question matched it to a template, found key words, and filled the key words into slots in the SPARQL query. The queries were executed on a Zoning Ordinance Knowledge Graph to obtain the answer. The class project was for CS 662 Natural Language Processing.

  • Jun. 2022–Aug. 2022
  • Present legal codes in a more usable website. Scraped the Constitution of Alabama using the BeautifulSoup library. Features of this website were displaying legal text, searching, section links, and a user registration system. Technologies used in this project include: Python, Flask, and MongoDB.

Agricultural Drone Dashboard

  • Oct. 2021–Dec. 2021
  • Led a four (4) person team that built software for agricultural drone scanning. The software simulated a flight on the screen and also flew a physical drone. The team explored the software development process with use cases, state charts, and implementing the software in Java and JavaFX. OOP patterns were also incorporated into this project. This was the final project for the CS 520 Software Engineering class.

recipe-crawler

  • June 2021–present
  • A Python web crawler for recipes in HTML https://schema.org/Recipe (Microdata/JSON-LD), which output cookbooks in JSON format for testing recipe software. Uses scrape-schema-recipe library for parsing recipes and Beautiful Soup library for parsing anchor tags.
  • I programmed the software and maintain the repository.

request_builder.py

  • 2020–Aug. 2021
  • Command line software that generates agendas and notices using Word Document templates from applicant requests (PDF files). The Python software used the PDF form data to fill templates of agendas and public notices. Templates were tailored to City’s processes and messaging.
  • Programmer and user of software.

scrape-schema-recipe

  • 2018–present
  • Scrapes recipes from HTML https://schema.org/Recipe (Microdata/JSON-LD) into Python dictionaries. This is an open source library that allows others to use this to build software from this tool.
  • Programmed the software and maintain the repository.

pyproj

  • 2016–2019
  • Python library for cartographic projection and spatial transformation that wraps the PROJ C library using Cython to interface between the C library and the Python.
  • Provided support for end users (programmers), wrote documentation, contributed fixes, wrote unit tests, reviewed user contributions, and merged contributions.

combined_municipal_limits_geoprocessing

  • 2014–2016
  • A Python ETL script to combine GIS municipal limit data from four (4) different sources. The data had two (2) projections and four (4) schemas. The script was to create one layer with one projection and one schema. The result was a single layer of municipal limits that covered Limestone County, AL.
  • Programmer and user.

GIS Maps

  • 2004–2022
  • 18 years of creating and maintaining GIS data and cartographic products.

(for other project and miscellaneous open source contributions see GitHub: micahcochran)

Chart shows that Python is used in 7 out of 8 projects and Java is used in 1 out of 8 projects.

Select Coursework

CS 501 – Programming Languages

CS501 is a programming language overview course. The course will discuss computability, lexing, parsing, type systems, and ways to formalize a language's semantics. The course will introduce students to major programming paradigms, such as functional programming and logic programming, and their realization in programming languages. Students will solve problems using different paradigms and study the impact on program design and implementation. The course enables students to assess strengths and weaknesses of different languages for problem solving.

Primary programming language: Racket

CS 520 – Software Engineering

Design and implementation of large-scale software systems, software development life cycle, software requirements and specifications, software design and implementation, verification and validation, project management and team-oriented software development.

Primary programming language: Java

CS 532 – Systems Programming

Unix architecture and internals with an emphasis on Linux, shell scripting, distributions of Linux for various computing platforms including large and desktop computers, and embedded computing devices, introduction to the C programming language, systems programming in C covering signals and process control, networking, I/O, concurrency and synchronization, memory allocation, threads, debugging, library development and usage.

Primary programming language: C

CS 621 – Advance Web Application Development

Introduction to web application design and development. Includes traditional web applications utilizing server-side scripting as well as client/server platforms. Covers responsive design for both mobile and desktop users, as well as hands on server provisioning and configuration. Other topics include web security problems and practices, authentication, database access, application deployment and Web API design, such as REpresentational State Transfer (REST).

Primary programming languages: JavaScript and Python

CS 632 – Parallel Computing

Overview of parallel computing hardware, architectures, & programming paradigms; parallel programming using MPI, Pthreads, and OpenMP; design, development, and analysis of parallel algorithms for matrix computations, FFTs, and Sorting.

Primary programming language: C

CS 633 – Cloud Computing

Introduction to cloud computing architectures and programming paradigms. Theoretical and practical aspects of cloud programming and problem-solving involving compute, storage and network virtualization. Design, development, analysis, and evaluation of solutions in cloud computing space including machine and container virtualization technologies.

CS 652 – Advanced Algorithms and Data Structures

The design and analysis of fundamental algorithms that underpin many fields of importance ranging from data science, business intelligence, finance and cyber security to bioinformatics. Algorithms to be covered include dynamic programming, greedy technique, linear programming, network flow, sequence matching, search and alignment, randomized algorithms, page ranking, data compression, and quantum algorithms. Both time and space complexity of the algorithms are analyzed.

Primary programming language: Java

CS 662 – Natural Language Processing

This course provides a broad introduction to Natural Language Processing (Computational Linguistics) and its applications. Topics covered include language modeling with neural networks, sequence labelling algorithms (segmentation, chunking, tokenization, part-of-speech tagging and others ), syntactic and dependency parsing, vector-based representation models and using Deep Learning in NLP applications. Some application areas covered include information extraction and named entity recognition, semantic role labelling, word sense disambiguation, text generation, information retrieval, question answering, machine translation and other areas as time permits. There will be a focus on Deep Learning approaches using Tensorflow, PyTorch and keras for a major student project. Jupyter Notebooks will be used for assignments.

Primary programming language: Python


For a complete list of courses with descriptions, see the course descriptions.

Chart shows the breakdown of primary programming languages used in coursework, which include the languages C, Java, JavaScript, Python, and Racket. (0.5 denotes more than one primary programming language for a particular course.)

General Skills

  • Creating and maintaining website content.
  • phone and email customer service for the general public and internal employees
  • Designing maps, posters, pamphlets, and forms for use by internal and external audiences and the general public.
  • procuring services through an RFI/RFP process
  • reviewing documents for regulatory compliance
  • training general public over the phone and in person to use online maps

IT Certificates


Volunteer Experiences

  • Athens Pride Coalition

    • Co-Founder (2016–Mar. 2020)
      • Set up organizational structure. Held adult socials. Promoted group.
    • Mentor (2018–Mar. 2020)
      • Served as a mentor for a youth support group (14–18 years old) of gender and sexual minorities from diverse backgrounds in Athens, Alabama.
      • Prepared home cooked meals for the youth and the support staff.
  • Recently, I rediscovered my enjoyment of listening to Heavy Metal music.

Contact Information QR Code

Search

    Made with Hexo Hexo.js . Website's repo.