Oleg Efrem, Developer in London, United Kingdom
Oleg is available for hire
Hire Oleg

Oleg Efrem

Verified Expert  in Engineering

Software Developer

London, United Kingdom

Toptal member since May 24, 2017

Bio

Oleg has nearly a decade and a half of software development experience with Java, Scala, and DevOps, delivering many successful products and projects. He always seeks to understand the project scope and deliver optimal results for stakeholders. He is a team player and likes to engage with colleagues but can also work independently and takes end-to-end responsibility. He has built and led software teams focused on quick delivery and high quality.

Portfolio

HM Revenue and Customs
Amazon Web Services (AWS), Scoverage, JSON, Domain-driven Design (DDD), MongoDB...
Bank of America
Event Sourcing, Scoverage, JSON, Domain-driven Design (DDD), GitHub, DevOps...
Goodlord
Amazon Web Services (AWS), Scoverage, JSON, Domain-driven Design (DDD)...

Experience

Availability

Part-time

Preferred Environment

DevOps, Big Data, Machine Learning, Scala

The most amazing...

...thing I've done is contribute key efforts in securing, developing, and delivering a software product used by tens of millions of people worldwide.

Work Experience

Technical Lead

2020 - PRESENT
HM Revenue and Customs
  • Led several cross-functional teams with a total of 18 people.
  • Led and facilitated technical decisions within the team and across teams.
  • Improved the delivery process to remote waste.
  • Coded in Scala and was involved in pair programming and code reviews.
  • Delivered several projects within tight deadlines.
Technologies: Amazon Web Services (AWS), Scoverage, JSON, Domain-driven Design (DDD), MongoDB, Splunk, Ubuntu Linux, GitHub, DevOps, ScalaMock, Git, Microservices Architecture, Amazon S3 (AWS S3), Heroku, REST APIs, Test-driven Development (TDD), Agile, ScalaTest, Kubernetes, Docker, Play Framework, Scala

Scala Consultant

2019 - 2020
Bank of America
  • Led cross-team technical projects.
  • Bridged business and technical worlds.
  • Implemented new functionality for the obligation settlement lifecycle.
  • Assessed the current codebase and suggested/implemented improvements.
  • Reviewed the deployment pipeline and proposed/implemented improvements to versioning (semantic versioning), testing, branching strategy, deployment, and release process.
Technologies: Event Sourcing, Scoverage, JSON, Domain-driven Design (DDD), GitHub, DevOps, ScalaMock, Git, Big Data, Microservices Architecture, Web Services, Nexus, REST APIs, ScalaCheck, Scrum, Windows, Agile, ScalaTest, Ansible, Apache Avro, Apache Camel, Akka, Scala

Scala Consultant

2019 - 2019
Goodlord
  • Added a new revenue-generating stream for property energy switches.
  • Made referencing app recommendation comments self-servicing, which previously would require developers to change them.
  • Assessed the codebase and suggested and made improvements.
  • Upgraded security integration with a third-party credit check system.
  • Improved performance of the integration with a third-party flow management system.
Technologies: Amazon Web Services (AWS), Scoverage, JSON, Domain-driven Design (DDD), Ubuntu Linux, GitHub, DevOps, ScalaMock, Git, Microservices Architecture, Web Services, Amazon S3 (AWS S3), Heroku, REST APIs, ScalaCheck, Scrum, Agile, ScalaTest, Behavior-driven Development (BDD), Kubernetes, Docker, Akka, Scala

DevOps and Software Consultant

2018 - 2019
Elsevier
  • Led engineering and data science cross-team technical projects.
  • Defined and implemented the branching strategy and pipeline structure with two sub-pipelines (fast and full feedback), fully automated versioning, testing, environment proportion, deployment, and rollback.
  • Asessed and prepared Python code for production readiness with auto code quality checks, auto formatting, code coverage, and unit, benchmark, acceptance, performance, and smoke tests.
  • Made a pipeline to deploy machine learning code reproducibly.
Technologies: Amazon Web Services (AWS), Scoverage, JSON, Splunk, Ubuntu Linux, GitHub, DevOps, ScalaMock, Git, Big Data, Microservices Architecture, Web Services, Amazon S3 (AWS S3), Nexus, REST APIs, Agile, ScalaTest, Behavior-driven Development (BDD), GitLab, Machine Learning, Python, Kubernetes, Docker

Scala Consultant

2017 - 2018
Bank of America
  • Led multiple teams in technical initiatives.
  • Translated between business and technical requirements.
  • Managed the obligation settlement lifecycle in the business domain.
  • Authored the domain-driven design injected into event sourcing concepts, which led to a major refactoring of the codebase to make code simpler, more robust, extendable, and maintainable.
  • Advised and sharing expertise with regards to improving the continuous delivery pipeline.
  • Taught developers by example in Scala, programming concepts, and code review.
  • Assessed the codebase and suggested improvements.
Technologies: Event Sourcing, Scoverage, JSON, Domain-driven Design (DDD), Ubuntu Linux, GitHub, DevOps, ScalaMock, Git, Microservices Architecture, Web Services, Nexus, REST APIs, ScalaCheck, Test-driven Development (TDD), Scrum, Windows, Agile, ScalaTest, Apache Kafka, Akka, Scala

Lead Scala Developer

2016 - 2017
Gumtree.com (eBay)
  • Led the split of a monolithic Java application breaking it into microservices and rewritten to Scala.
  • Used domain-driven design techniques to identify the sub-domains and bounded contexts, mapping them to micro-services.
  • Isolated bounded context in Java code by refactoring and moved one of those to a separate project rewritten in Scala.
  • Provided continuous delivery with test automation on unit and integration levels.
  • Taught people Scala via pair programming and code reviews.
Technologies: Scoverage, Flyway, JSON, Domain-driven Design (DDD), Ubuntu Linux, GitHub, DevOps, ScalaMock, Git, Big Data, Microservices Architecture, Web Services, Nexus, REST APIs, Test-driven Development (TDD), Agile, PostgreSQL, ScalaTest, Behavior-driven Development (BDD), OpenStack, DB, H2, Docker, Consul, Terraform, Confluence, Jira, IntelliJ IDEA, Java, Apache Maven, MacOS, Slick, Liquibase, SBT, Play Framework, Scala

Senior Scala Developer

2015 - 2016
AEVI (Diebold-Wincor Niexdorf)
  • Drove the split of a monolith application to micro-services architecture;
  • Refactored the codebase following OOP/FP best practices.
  • Drove the creation and implementation of a code style guide.
  • Migrated from Cassandra to relational DB by keeping the system DBMS independent.
Technologies: Amazon Web Services (AWS), Scoverage, Flyway, JSON, Domain-driven Design (DDD), Ubuntu Linux, GitHub, DevOps, ScalaMock, Git, Big Data, Microservices Architecture, Web Services, Amazon S3 (AWS S3), Nexus, REST APIs, Test-driven Development (TDD), Scrum, Agile, PostgreSQL, ScalaTest, Behavior-driven Development (BDD), Linux, Slick, Play Evolutions, Gatling, Cucumber, Code Coverage, MySQL, H2, Cassandra, SBT, Play Framework, Scala

Lead Scala Developer

2015 - 2015
HMRC (Accenture)
  • Led a team of eight people (back-end, front-end, testers).
  • Coded in Scala and reviewed code.
  • Guided the team in the refactoring of an existing Scala Play web application (Charities Project), to embrace OOP and FP principles and best practices: http://www.artima.com/weblogs/viewpost.jsp?thread=331531;
  • Set up the foundation a for new web application (Anti Money Laundering) with a package structure featuring a single entry point via Traits to promote encapsulation for testability and extendability.
Technologies: Scoverage, JSON, Domain-driven Design (DDD), MongoDB, Splunk, Ubuntu Linux, GitHub, DevOps, ScalaMock, Git, Microservices Architecture, Web Services, Heroku, Nexus, REST APIs, Test-driven Development (TDD), Scrum, Agile, ScalaTest, Behavior-driven Development (BDD), Puppet, Bintray, Google Analytics, IntelliJ IDEA, Linux, Confluence, Jira, Jenkins, Gatling, BrowserStack, Gherkin, Selenium, Cucumber, CSS, JavaScript, HTML, SBT, Scala

Senior Scala Developer

2013 - 2015
Cellvision
  • Coded in Scala, reviewed code, and oversaw pair programming.
  • Designed and architected in-house software products with stress on system robustness, accountability, extendability, reusability, and capacity.
  • Consulted with in- and out-of-house integrators on integration approaches/architecture.
  • Created APIs for our SOA framework with a focus on extendability and reusability.
  • Led parts of back-end software development.
  • Handled the continuous delivery framework design and implementation which---beside build, release, infrastructure, and configuration management automation---implies design, architecture, and implementation of a test automation framework on all test levels, from unit and integration to user acceptance and capacity.
Technologies: Scoverage, Apache CXF, Domain-driven Design (DDD), Service-oriented Architecture (SOA), DevOps, ScalaMock, Git, Microservices Architecture, Web Services, Nexus, REST APIs, Test-driven Development (TDD), Scrum, Windows, Agile, PostgreSQL, ScalaTest, Behavior-driven Development (BDD), SOAP, Jenkins, Hudson, Java EE, Java SE, JBoss, TeamCity, Subversion (SVN), Apache Maven, MySQL, Microsoft SQL Server, Oracle, Spring, Scala

Scala Developer

2010 - 2013
Cellvision
  • Designed, architected, developed, extended, and integrated of server back-end software products sold to the world's major mobile network operators.
  • Developed several products from the early stages of requirement definition to solution design, architecture, implementation, testing, and deployment.
  • Worked with many back end systems and architectures, giving me a sound understanding of the principle that a high-level software solution design is crucial before starting implementation.
  • Built integrations for other external systems, gaining the ability to quickly understand those systems at the level that allows you to do the job faster and better, thus avoiding the need to redo things.
Technologies: Apache CXF, Domain-driven Design (DDD), Service-oriented Architecture (SOA), DevOps, ScalaMock, Git, Microservices Architecture, Web Services, Nexus, REST APIs, Jetty, Test-driven Development (TDD), Scrum, Windows, Agile, PostgreSQL, ScalaTest, Behavior-driven Development (BDD), SOAP, Eclipse, NetBeans, IntelliJ IDEA, JBoss, TeamCity, Jenkins, Hudson, Subversion (SVN), Apache Maven, MySQL, Microsoft SQL Server, Oracle, Spring, Java EE, Java SE, Scala

Quality Assurance Automation Engineer

2010 - 2010
Allied Testing
  • Pulled double full-time work in a project for a major US investment brokerage company (TD Ameritrade).
  • Developed a few Java applications, including a trading account generator and trading system alert simulator.
  • Helped develop a Java-based stock exchange simulator.
  • Created several JavaScript scripts for the quality assurance automation framework (HP Quality Center, and HP (Mercury) Quick Test Professional).
  • Coded a set of 160 InterSystems cache object script routines to automate the subset process of the cache database when it reaches a certain size (a lot of code). A very challenging task because of the specific database architecture and lack of documentation.
Technologies: Caché ObjectScript, Windows, SOAP, NetBeans, Java, InterSystems Caché, Graph Databases, HP QuickTest Professional (QTP), VBScript, JavaScript

Java Freelance Developer

2006 - 2010
Freelance
  • Helped develop a class scheduling web application for the State University of Moldova,.
  • Built a customer contact management web application for a local IT shop, which could be reused for other businesses since it had quite a generic functionality.
  • Created a warehousing web application for a local furniture factory.
  • Developed a client management application for a beauty salon web application.
  • Built a product sales/warranty management application for a car parts shop web application.
  • Created a wine house production management web application.
  • Developed a farm business management application application.
  • Built a local council public meeting scheduler web application.
  • Created a local school registry web application.
Technologies: SOAP, CSS, XSD, XSL, XML, HTML, Apache, MySQL, PHP, NetBeans, SQL Server 2005, Java

Customer Experience Tickets

A ticket investigating software product for mobile operators that collects data from heterogeneous sources, correlates them to find problems and possible solutions, and automatically communicates the findings to customers and system owners. It reduces the amount of effort needed to find problems, shortening the feedback cycle. The system provides value for tens of millions of users. I was praised by the CTO as being a key contributor for securing the first contract, development, and delivery of the product to Vodafone group.

Subset of Graph DB

https://www.alliedtesting.com/
Our client had the problem of its test data growing to 2TB - 3TB a week but its routine to reduce the size of data without removing meaningful information was not designed for such volumes and thus was taking several days to run. We created a solution that would take no more than two hours, allowing time for other routines to complete over the weekend. The original quote was a development time from six to twelve months. I was given the task, together with a colleague, to have it ready in three. It was a very challenging task because of the specific database architecture, lack of documentation, and a DB with its own programming language. We had to learn the language and architecture, make sense of the data, find the best approach, and have the routine that would leave only 2GB - 3GB of meaningful data without affecting the functionality of other test systems and routines. We split the task, trying two approaches (deleting data and copying data). Copying data and replacing old entities altogether with new ones turned out to be the winning approach. We were praised specifically by the CEO of the 1,200-employee company.

Large-scale Java to Scala Migration

Starting in 2010, when Scala was first getting its grip on the market, we ventured into adopting it with the team, calculating the risks, pros, and cons. Months after our first trial project, we decided to have all new code in Scala, shortly thereafter migrating our whole codebase from Java to Scala. It was an interesting and challenging journey, where we had at times to live with both Java and Scala and make it inter-operate at all levels up to the application server. The result was a codebase with 5x less code that is clearer to read, understand, maintain, and extend. Our calculations on the benefits it will bring over the possible risks proved to be right. The products we built were performing best among all the systems that our customers had.

Beautiful Code

https://www.aevi.com/
I was hired to help the team split up the monolith Scala Play-based application into micro-services and refactor the codebase. The chief architect, who was one of the first developers of the app, praised the results of my work in a couple simple words: "I don't know how he does this, but every code he touches becomes beautiful." It was a reassuring experience that quality as a result of thought, research, and effort does bring results. I've always built code with the reader in mind, and my coding philosophy is that the code should tell you the whole story and be easy to read.
2017 - 2017

Specialization in Big Data

University of California San Diego | via Coursera - Online

2013 - 2015

Master's Degree in Computer Science

State University of Moldova - Moldova

2006 - 2009

Bachelor's Degree in Computer Science

State University of Moldova - Moldova

2001 - 2006

Bachelor's Degree in Theology

Adventist Theological Institute - Romania

APRIL 2017 - PRESENT

Big Data Integration and Processing

University of California

FEBRUARY 2017 - PRESENT

Big Data Modeling and Management Systems

University of California

FEBRUARY 2017 - PRESENT

Introduction to Big Data

University of California

Libraries/APIs

ScalaCheck, Slick, REST APIs, Liquibase

Tools

ScalaTest, SBT, Git, Apache, Subversion (SVN), Hudson, GitHub, IntelliJ IDEA, Scoverage, BrowserStack, Splunk, Google Analytics, HP QuickTest Professional (QTP), InterSystems Caché, GitLab, Apache Avro, Ansible, Confluence, Jetty, Jira, Flyway, Jenkins, Puppet, Terraform, Cucumber, TeamCity, Gatling, Apache Maven

Languages

Scala, Java, PHP, XML, XSL, XSD, CSS, Java SE, Gherkin, VBScript, Python, JavaScript, Caché ObjectScript, HTML

Frameworks

Play Framework, Spring, Selenium, Akka, Apache Camel, Play Evolutions, ScalaMock, Apache CXF

Paradigms

Agile, DevOps, Service-oriented Architecture (SOA), Event Sourcing, Extreme Programming, Behavior-driven Development (BDD), Microservices Architecture, Test-driven Development (TDD), Scrum

Platforms

Oracle, NetBeans, Java EE, Docker, OpenStack, Ubuntu Linux, Eclipse, Apache Kafka, Kubernetes, Amazon Web Services (AWS), Amazon EC2, MacOS, Amazon, Heroku, Windows, Linux, JBoss, Nexus

Storage

PostgreSQL, MySQL, SQL Server 2005, Microsoft SQL Server, DB, MongoDB, Graph Databases, Caché, JSON, Amazon S3 (AWS S3), H2, Cassandra

Other

Akka HTTP, Machine Learning, Web Services, Code Coverage, Bintray, Domain-driven Design (DDD), SOAP, Big Data, Consul

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring