Designing and implementing Scala microservices with Lightbend Reactive Platform (Akka Actor Systems), Scala & Java non-blocking reactive systems on JVM, Apache Cassandra, Apache Kafka, Docker & Kubernetes, Swagger, DataDog metrics. Agile distributed teams.
Driving technology & architecture alternatives together with a colleague. Participating in another team for technologies research and spreading technical knowledge across the teams.
Designed and implemented security areas including OpenId Connect flows e.g. authorization code flow, client credentials and implicit flow, across multiple microservices using JWT tokens.
Architected and supervised prototyping/implementation of a processing/ real-time computing pipeline with exactly-once processing guarantee, using KafkaStreams and KafkaConsumer alongside Cassandra.
Organizing knowledge sharing in the areas of functional programming (FP) with practical Scala accent (organized a Scala reading group based on Coursera course progfun1), reactive programming and distributed systems, Apache Kafka, RxJava and other topics.
Graduated ISAQB course & certification for foundation-architecture. Became a Quora Top Writer for 2018 for my technical answers on the questions site. Started contributing to Akka distributed data (conflict-free replicated data structures) - the cross data center feature.
Developing event-driven middleware for complex enterprise processes for financial or other institutions. Local expert in Reactive & Functional programming as well as distributed systems. Involved in performance analysis with thread dumps, VisualVM profiling, heap dump analysis.
Coaching and mentoring colleagues in Java programming, functional and reactive programming, programming in distributed asynchronous systems. Holding trainings. Publishing articles. Participating in design. Giving feedback related to architecture and putting forward ideas. I go where I am most needed by my team and project, urgency or grunt work included.
Some achievements: Contributed to Continuous Integration/Deployment system. Refactored a component to reactive compositional style and ed it to the team. Wrote an article on InfoQ about refactoring a legacy application into functional reactive non blocking paradigm.
Technologies: Event sourcing, CQRS, staged event driven architecture (zetta), in-memory compute grid, micro services. Functional programming in Java 8. AWS, Docker. Async non-blocking. Elastic compute-grid based technology - Apache Ignite / GridGain (e.g. sending java closures remote). Server- less architecture (similar to AWS Lambda), event sourcing, consul, docker ecosystem, NoSql MongoDB, reactive programming with RXJava Observables transformations and compositions, Vertex as non blocking HTTP server, data grid & grid computing with Apache Ignite (GridGain), AWS, Spring Boot, Git, Gradle, Mockito. Java 8, asynchronous event driven middleware, ReactiveX, Vert.x non blocking event loop server.
Context: Distributed reactive system (framework) for financial middleware (off- loader and feature accelerator).
Team qualities: agile, pair programming, offering help in multiple zones, coaching junior colleagues, continuous learning, commitment to team goals, design/technical sharing sessions, ation to students, proactive and involved, authentic and self driven.
Distributed/cloud applications with JVM & Spring Boot, Spring Cloud + HashiCorp stack: Serf, Consul, Vagrant. Orchestration with Consul (gossip, Raft, integrated service discovery with gossip failure detection and health checks) + optionally Mesos, Docker. Prototyping such setups for high availability, smart service discovery. RESTful remoting automation. Computing infrastructure. Contributing to open source in Java (Spring Cloud Consul), Scala (Apache Kafka), hopefully soon Go (tried a Docker fix, but no feedback to continue). Participating in design sessions and enjoying that. Focusing on distributed apps infrastructure, tradeoffs in design spaces such as CAP theorem, scaling persistence layer with NewSQL/BigSQL, HAT not CAP, causal consistency, and other distributed primitives for resilient, agile and intuitive services.
The team was 8 people. I offered coaching / mentoring to colleagues, proposed solutions to crisis situations, as well as technologies to adopt or not adopt, and suggested voting as a means to technical consensus when mutual convincing did not reach group alignment on technology selection.
Java 7, JEE-7, JBoss/Wildfly, Tomcat, semantic web RDF(S)/OWL persistence.
Suggesting design changes and frameworks adoption. Succeeded in convincing team to adopt Mockito. Generated meaningful discussion about Spring adoption. Quality and priority driven. Agile, prototyping based incremental improvements/refactorings, feedback and code reviews. OOP & Functional. RESTful services, semantic web, graph database. Authentication & Authorization. CMIS/JCR integration, JPA "dynamic fields", Jasper Report Server Jax-Rs integration, J2EE 7.
There were functional specification documents and persons you can reach for details, there were technical design documents and architect to reach. I generated a number of times meaningful discussions with the architect, and the product owner in (re)discussing decisions and background, to ensure a proper handling for each scenario, and a proper application of technology or standards e.g. discussing which HTTP codes or methods are appropriate, or full multi-request cycle for async flows.
In my free time I experimented with Scala, Java 8 and Haskell. Took online courses, continued contributing to Apache Kafka, solved Project Euler problems, understood more of the monadic style composition and played with other declarative programming and type systems goodies.
The team was ~10 people. I coached 2 guys on technical matters, I convinced the team to adopt mockito, and git rebase for local work, and gave feedback on various technical and non technical grounds, which were very well received by the team.
As a Java server-side software engineer in 3 Adobe teams, I learned interesting things about designing, coding, testing parts of the systems as well as learned more to communicate with other developers and other stakeholders. My experience grew on both low-level aspects such as TCP life cycle as well as high-level design of RESTful distributed services. I am proud of working with highly talented enthusiastic engineers and want to reach an interesting stable project in distributed systems. Another project involved BigData aimed to solved both real-time problems (low latency from event sourcing until reaching OLAP-like indexes), and batch map-reduce problems (high throughput on large volumes of daily event logs to recompute indexes), based on a stack including Hadoop, HBase, Kafka, Zookeeper, CouchBase, Storm, Spring, Netty, Jetty, maintained with Puppet, Rundeck, Jenkins, shell scripts and Git.
Special attention was on the performance (latency percentiles, throughput 20K/s per node) and of course resilience in general. I gained experience both as a developer to design and code for performance as well as how to test a system to find its limits, and developed an intuition around system behavior, bottlenecks identification, profiling, and load/stress testing.
Latest projects were: - stabilizing the memory consumption of an HBase aggregation query system - made the aggregation incremental - prototyping an ad-hoc query system with Druid DB and Apache Spark Streaming as ETL
I graduated an FP course with implementations in Scala language and a Reactive Programming course building on the first one, with a final homework of creating a simplified version of a distributed replicated key-value database with Akka actors.
Frameworks/Platforms: Spring 3, Hadoop, HBase, Zookeeper, Storm, Kafka. Interests: distributed fault-tolerant systems, Scala/actors, Kafka. Context: Some subsystems did map-reduce batch processing while others were building real-time pipelines.
Analysis of business level or functional level application requirements and of the less obvious non-functional (quality related) requirements (including making decisions on quality dimension tradeoffs, such as between speed and simplicity).
UML OOD and Java OOP development; database designer, DBA and database programmer knowledge and skills. For DBA I mention performance profiling and SQL optimisation; good relational database arhitecture understanding, Oracle multi versioning, transactions behaviour, including reciprocal influences (such as those handled by the transaction isolation level), normalization and integrity concepts and generally broad database background.
Politehnica University of BucharestFebruary 2001 - January 2003
Experimenting algorithms with different operations order for dense matrix computations with Matlab, C and compare with Fortran LAPACK.
Parralel computing resonance frequencies. Optimizing sparse matrix ops by finding a custom quasi diagonal structure making dot products efficient by spatial and temporal locality, compact cohesive at every level of memory hierarchy.
Dimension reduction for dense and sparse linear systems.
TA for matrix computations, automation engineering computing and distributed HPC with MPI and ScaLAPACK.
As Pentalog’s Talent Sourcing branch, SkillValue relies on a pool of 400,000+ Tech & Marketing Specialists – including 15,000+ Freelancers, a comprehensive catalog of IT assessments, available projects and job opportunities. Our SkillValue consultants are always ready and willing to help you boost your career.
Stay in the know with Pentalog tech & business updates
WHAT WE'RE ABOUT
Pentalog is a digital services platform dedicated to helping companies access world-class software engineering and product talent. With a global workforce spanning more than 16 locations, our staffing solutions and digital services power client success.