Dmitri Ivanovich Arkhipov

Dmitri Ivanovich Arkhipov

Irvine, United States
Hire Dmitri
Scroll To View More
Dmitri Ivanovich Arkhipov

Dmitri Ivanovich Arkhipov

Irvine, United States
Member since December 12, 2016
Dmitri has a PhD in computer science from UC Irvine, and he's been involved in tech either as a student, a freelancer, an intern, or an employee for over a decade. Dmitri works primarily in a UNIX/LINUX ecosystems—within which he has developed programs in Python, Java, Scala, C, C++, Perl, JavaScript, and several other languages. His most recent experience has been with Python and Java, but he's willing to adapt.
Dmitri is now available for hire
Portfolio
Experience
  • Java, 10 years
  • Ubuntu Linux, 8 years
  • Python, 7 years
  • Eclipse IDE, 6 years
  • Vim Text Editor, 5 years
  • Git, 3 years
Irvine, United States
Availability
Part-time
Preferred Environment
Ubuntu, Redhat, Centos, Vim, Eclipse, Git, Maven
The most amazing...
...project I worked on was my dissertation on optimally choosing advertisement request orders to maximize expected return given a time threshold (bounded sub opt).
Employment
  • Postdoctoral Researcher
    Donald Bren School of Information and Computer Sciences | University of California, Irvine
    2016 - PRESENT
    • Involved with the ongoing research of combinatorial optimization in online advertising.
    • Created novel concurrency and inter-process synchronization methods for parallel and distributed computing.
    • Developed batch size selection for stochastic gradient descent.
    • Designed spot market clearing mechanisms for transportation spot markets.
    • Built an agent-based framework for general distributed computation.
    Technologies: Python, Java, Bash
  • Graduate Student Researcher | Teaching Assistant
    Donald Bren School of Information and Computer Sciences | University of California, Irvine
    2010 - 2016
    • Worked on several optimization and parallel execution themed papers.
    • Participated in several smart city projects with researchers in China and the UK.
    • Developed a mathematical model and analysis of sequential ad polling. Implemented an algorithm making use of the model that guaranteed bounded sub-optimality (with respect to expected value given a time budget). Wrote a conference paper, journal paper, and a dissertation with these findings.
    • Assisted in introductory computer programming, and discrete mathematics courses. In particular I have worked on introductory and intermediate Java, C, and Python courses.
    • Done significant research on thread and process synchronization and low-level inter-thread message passing constructs.
    Technologies: LaTeX, Python, Java, Android, Bash, C
  • Advanced Engineering Intern
    CalAmp Wireless, Inc.
    2015 - 2015
    • Designed, planned, implemented, and tested a new release of the company’s (M2M/MRM) cloud infrastructure back-end.
    • Ensured that the release was fault-tolerant, recoverable, scalable through integration with Amazon Web Services (AWS), and that the message triggered execution was dynamically reconfigurable.
    • Implemented and A/B tested the AWS Kinesis and AWS Simple Queue Service (SQS) based solutions to persist and load-balance incoming traffic.
    • Worked on a project that was a dynamic message router implemented for direct integration into a Spring-integration environment.
    • Developed the router component which was a meta-construction allowing each Spring Integration component to determine what the next procedural step to execute on the output of the current step should be, then routing it.
    Technologies: Java, JUnit, Spring, Spring Boot, Spring Integration, AWS, AWS Kinesis, AWS SQS
  • Software Engineering Intern
    Adaptive Medias, Inc.
    2014 - 2014
    • Developed a heuristic optimization solution for the ad-ordering problem written in Java. The solution was deployed into production for determining advertising waterfalls for users.
    • Wrote a RESTful web application in Python Flask to accept web-domain URLs and classify (using MALLET) the semantic content into IAB tier 1 categories. This was deployed into production as a web service, and was at the heart of the main aim of a sprint.
    • Worked in Scala with the Cloudera package of Hadoop to write Spark code to perform log aggregation. Terrabytes of event logs relating to customer interactions were condensed into life cycle objects and written to disk.
    • Ensured that each of these three projects were released into production as web microservices. Each was developed as a Git branch and successfully integrated into a development and subsequently operating branch.
    • Worked on a team developing and comparing alternative mathematical models for classifications—as part of the classification work.
    Technologies: Python, Flask, Java, Scala, Hadoop, Hive, Cloudera, RESTful Web Services, MALLET Classification (Machine Learning)
  • Web Application Developer
    Intellisurvey Inc.
    2010 - 2010
    • Designed and implemented new features and enhancements to the Intellisurvey software (in Perl and mod_perl).
    • Found and resolved software defects—debugging and feature creation though an in-house ticketing system.
    • Assisted in developing the Intellisurvey infrastructure.
    • Created tools to aid in development, testing, and systems administration.
    • Provided technical support to internal software users and to clients who use licensed Intellisurvey software tools.
    • Added UI features in JavaScript to components of the web system's front-end.
    Technologies: Perl, mod_perl, JavaScript, HTML, CSS, Bash
  • Research Assistant
    University of California, Irvine
    2009 - 2010
    • Installed, configured, and populated a PostGres database with heterogeneous data sources. Developed a JSP front-end.
    • Linked data sources on the basis of common fields and meta information.
    • Optimized MATLAB algorithms for dynamic network flow optimization.
    • Wrote C functions called from the MEX interface of MATLAB.
    • Wrote a highly optimized Djikstras shortest path algorithm in C and bound it into MATLAB—it was over 100X faster than the MATLAB equivalent.
    Technologies: PostGres, JavaScript, Bash, C, UNIX, JSP, MATLAB, Python
Experience
  • Python Flask Document Categorizer Microservice (Development)
    http://mallet.cs.umass.edu/

    Online advertisers are concerned with Internet Advertising Bureau (IAB) categorizations. These categorizations represents themes or topics and can apply broadly to websites advertisements or other web data objects.

    I developed and deployed a REST-full micro-service using Flask to train and update classifiers learning from web-data and to classify any document into a normalized vector representing the theme breakdown of the document into IAB categories. This service used Flask as the REST service layer, the multiprocessing module for process control, MALLET software (http://mallet.cs.umass.edu/) for classification, beautiful soup for data pre-processing, and Nutch/SOLR for crawling and indexing web data.

  • Ad Ordering with Python (Development)

    Determining the next ad-producer to solicit for a particular ad impression is not trivial. A good algorithm will take many factors into account, the two most immediately noticeable factors are revenue for the publisher (website hosting the advertisement) and the time to fill the ad slot.

    In my work I've developed a suite of algorithms for solving this problem under different assumptions. A version of this work deployed in production use data aggregation over terabytes of log data to build distributions representing how much time a solicitation will take. The deployment used Flask as a RESTful microservice layer, Python, and SciPy for the main algorithms. More advanced research solutions make use of real time dynamic programming to achieve solutions with bounded suboptimality.

  • Remote Object SDN with Python (Development)
    http://ieeexplore.ieee.org/abstract/document/7218384

    As part of SDN research work I developed a basic Software Defined Networking (SDN) solution based on Python, Berkley Sockets, and python remote objects (https://pythonhosted.org/Pyro4/). The SDN is built over TCP/IP and allows dynamically reconfigurable networking paths. In fact, in the paper on this topic the reconfiguration is done based on period flow estimates to ensure that devices are given uncongested networking paths. To our knowledge we are the first group to build an SDN over the remote object paradigm. With this approach, the client requests a connection rather than an address from the gateway. The connection returned is actually a remote object now shared by both the client and the network used for reads and writes by the client and reconfigured by the network administration as network conditions change.

  • Maximum Flow and the Linear Assignment Problem (Publication)
    The Hungarian graph algorithm solves the linear assignment problem in polynomial time. By modeling resources (e.g., contractors and available contracts) as a graph, the Hungarian algorithm can be used to efficiently determine an optimum way of allocating resources.
Skills
  • Languages
    Python, Python 2.7, Java, Bash Script, Python 3, Java 7, Scheme, PHP, Scala, MATLAB, C, C++, C#, Assembler x86, Perl, VHDL, JavaScript, HTML, CSS, Java 8, Pascal
  • Frameworks
    Spring, Spring Integration, JUnit, Apache Spark, Spring JDBC, Apache Hadoop
  • Platforms
    Spring Boot, Android, Ubuntu Linux, AWS Kinesis, Ubuntu, Linux, CentOS, Unix, Hortonworks
  • Libraries/APIs
    Apache Lucene, Apache Hive, OpenGL, Flask-RESTful, Mod_perl, JDBC, Facebook Open Graph API
  • Tools
    Eclipse IDE, LaTeX, ModelSim, Cloudera, Apache Tomcat, Vim Text Editor, Git, Scala IDE, PyDev, AWS SQS, Apache Solr
  • Paradigms
    Linear programming, Distributed Programming, REST, Constraint Programming, Parallel programming, Compiler Design, Software-defined Networking (SDN), Event-driven Programming, Functional Programming, Concurrent Programming, Dynamic Programming
  • Storage
    Databases, PostgreSQL, MySQL, Cassandra, MongoDB, Spring Data JPA
  • Misc
    Computer Science, Computer Graphics, Interpreter Design, Operating Systems, Genetic algorithms, Evolutionary Algorithms, Parallel computing, Metaheuristics, Apache Commons, Machine-to-Machine (M2M), Machine Learning, Networking, Transportation Planning, Mathematical Programming, Combinatorics, Optimization, Research, Distributed Systems, Artificial Intelligence (AI), Mathematical Modeling, AWS S3, JSP, Eclipse CDT, Linux redhat, Decision Trees, Binary Search Trees, Algorithms & Data Structures, Apache Cassandra, Bash Scripting, AWS Lambda, Convex optimization, Mixed Integer Linear Programming
Education
  • PhD in Computer Science (Computational Models for Scheduling in Online Advertising)
    University of California, Irvine - Irvine, CA, USA
    2010 - 2016
  • Master's degree in Computer Science
    University of California, Irvine - Irvine, CA, USA
    2010 - 2011
  • Bachelor's degree in Information and Computer Science: Specializations in Computer Systems, Distributed Systems (Minor: Mathematics)
    University of California, Irvine - Irvine, CA, USA
    2004 - 2009
I really like this profile
Share it with others