Dan walking with his three children

Dan Jakob Ofer

Father / Husband / Passionate Software Developer who uses AI to resolve problems (but against vibe-coding)

Current Experience

Thomson Reuters - Site Reliability Tech Lead

January 2022 – Present

Our objective is to automate all manual processes.

Artificial Intelligence

  1. Summarize change release reports with Claude Opus using artificial intelligence
  2. Vibe-coded an authorization endpoint for a RAG-chain backed chatbot that uses artificial intelligence
  3. Find solutions to new problems by prompting Claude Sonnet using Claude Code
  4. Review GitHub Pull Requests using GitHub Copilot (configured via ./.github/copilot-instructions.md)
  5. Review GitHub Pull Requests using Claude Code using Sonnet (configured via ./CLAUDE.md) together with the GitHub MCP Server to improve both my own code and colleagues

GitHub Actions

  1. Use GitHub Actions to start new sprints
  2. GitHub Actions deploy to testing environments on cronjob schedule
  3. GitHub Actions to deploy to Production and User Acceptance Environments
  4. GitHub Actions that automatically validate that unit tests pass and code quality

Adobe Cloud Manager

  1. Used Adobe Cloud Manager for Continuous Deployments

Post-Deployment Lambda Actions

  1. Post-Deployment actions written in Python are executed on AWS Lambda Functions
  2. Adobe Cloud Manager executes them after a deployment has (either successfully or unsuccessfully) finished
  3. Clear the Dispatcher (the Apache HTTPd server) and the AWS CloudFront (CDN) caches
  4. Notify stakeholders by sending emails
  5. Notify stakeholders and developers within a Microsoft Teams channel

Datadog

  1. Send our logs (Adobe Experience Manager), Dispatcher, Firewall (WAF), CloudFront (CDN), automated testing, AWS S3 Buckets, and Google Lighthouse to Datadog
  2. Use Application Performance Monitoring (APM) to correlate logs and errors
  3. Use APM tags to tag heartbeat monitors and infrastructure per environment
  4. Trace HTTP requests from AEM to other third-party services
  5. Logs from automated testing and Google Lighthouse were sent to S3 Buckets
  6. Used the Datadog S3 Forwarder Lambda Function to send logs from S3 Buckets
  7. Built Grok processors to process logs into Facets and Metrics
  8. Built Dashboards to make data accessible to Application Teams
  9. Built Heartbeat monitors (using Synthetic Tests) to ensure that websites are running
  10. Use PagerDuty to notify by email if website or server is down
  11. Use ServiceNow to communicate with stakeholders

Personal Projects

Some software developers claim they are "passionate".
I can actually prove it.

Virtual Machine and Jack Compiler

November 2024 to Present

GitHub
Virtual Machine Compiler / Jack Language / Operating Systems
https://github.com/ofer987/nand2tetris-part02

Develop compilers and operating systems for the nand2tetris project

Development

  1. Currently developing the Jack compiler that translates the Jack language to virtual machine instructions, using the Ruby language
  2. Developed a compiler that translates virtual machine instructions to Hack-computer assembly, using the Ruby language

The Hack Computer and Assembly

September to November 2024

GitHub
The Hack Computer and Assembly
https://github.com/ofer987/nand2tetris

Design the Hack Computer and Develop an Assembler for the nand2tetris project

Development

  1. Designed the 16-bit Hack Computer with three registers and 24 kilobytes of memory using a simplified Hardware Description Language (HDL)
  2. Developed the assembler that converts assembly language to 16-bit instructions

Snake with Graphics

April to May 2025

GitHub
Snake with Graphics
https://github.com/ofer987/snake-sdl

For the love of the Nokia phone classic

Development

  1. Developed in Xcode in C using the SDL3 graphics engine

Snake with Terminal Graphics / developed in C

January to March 2025

GitHub
Snake with Terminal Graphics / developed in C
https://github.com/ofer987/c-code/tree/master/snake

For the love of the Nokia phone classic

Development

  1. Developed in C using the terminal graphics
  2. Compiled using GCC

Snake with Terminal Graphics / developed in Go

May 2024

GitHub
Snake with Terminal Graphics / developed in Go
https://github.com/ofer987/chatgpt35-snake

For the love of the Nokia phone classic

Development

  1. Developed in Go using the terminal graphics
  2. Used Go goroutines to share memory using channels

Nearest Transit Stops

March 2024

GitHub
Transit
https://transit.ofer.to

To know where the nearest Toronto Transit Commission's stops/stations are located

Development

  1. Built using HTML, Sass, and TypeScript in Svelte
  2. A C# ASP.NET server retrieves all of the TTC's routes using
    https://www.ttc.ca/ttcapi/routedetail/listroutes
  3. Then retrieves each routes details using
    https://www.ttc.ca/ttcapi/routedetail/get
  4. A client-side application, in this case https://transit.ofer.to, displays the nearest stops / stations within a 500-metre radius using the browser's Geolocation

Sudoku

February 2024

GitHub
Sudoku
https://sudo.ofer.to

A have always wanted to build an online game

Development

  1. Built using HTML, Sass, and TypeScript
  2. Used Mucahid Yazar's Sudoku game generator solution
  3. Players can resume their games by copying the URL

This Personal website

October 2023 – November 2023

GitHub
ofer.to
https://www.ofer.to

A vanity excuse to learn how to build server-side rendered websites in Svelte

Development

  1. Built in Svelte using HTML, Sass, and TypeScript
  2. Avoid runtime penalties because pages are server-side rendered penalty

Microservice Architecture

  1. Configured a section where users can contact me via email
  2. Emails are sent using the postfix-docker Docker Container using a .NET Core 6.0 (LTS) application

Continuous Integration / Continuous Deployment

  1. Configured GitHub Actions with Bash scripts to automate deployments

Financier

December 2018 – December 2020

GitHub
Financier

Software as a Service that analyses income versus expenses. Taking into account multiple variables, it can predict its users future financial situation, giving them insights whether they should purchase a home today with a smaller downpayment or in the future with a larger downpayment

Development

  1. A C# 9.0 (.NET 5.0 application) ingests the financial into a Postgresql database
  2. Machine-learning software understands the nature of the financial data
  3. A Ruby application retrieves the financial data into predefined financial statement files
  4. A C# 9.0 ASP.NET Core application exposes endpoints to retrieve the financial application
  5. A web application (written in TypeScript using React components) to display the financial analysis

Past Job Experience

Thomson Reuters - Site Reliability Senior Developer

January 2021 – January 2022

I lead a team of software developers to make developing and deploying more efficient for Thomson Reuters' marketing websites, such as Thomson Reuters' home page. We build Continuous Integration environments that enforce linting for Java, TypeScript, and SCSS; testing including code coverage. Our process is so rigorous that Thomson Reuters can afford to hire short-term vendors to build features on demand, while maintaining high-levels of software quality.

We built a release process using GitHub Actions to facilitate deployment by any vendor to our Staging environments.

We use a testing framework built with Cucumber and Selenium to validate new deployments to our Staging and Production environments to guard against regression.

Adobe Experience Manager

  1. Use the Checkstyle Maven plugin for Java linting
  2. Use Prettier and ESLint for TypeScript and SCSS linting
  3. Use the JaCoCo plugin to ensure high test coverage (at least 81 per cent)
  4. Migrated the codebase from Java 8 to Java 11

Release Process

  1. Designed a release process that allows any vendor to easily deploy new software
  2. New software is vetted by both an automated Integration Testing Framework and manually by Project Managers
  3. Code is reviewed by senior internal developers to using GitHub Pull Requests

Integration Testing Framework

  1. High test coverage gives us confidence before a new release goes live
  2. Create a new automated test case when a new version breaks a web page to ensure it does not repeat itself
  3. Used Java for the test functionality (i.e., Steps), Cucumber for the test cases (i.e., Features), and Selenium as the web driver

Thomson Reuters - Senior Software Engineer

January 2019 – January 2021

I am a principal contributor who develops and deploys Thomson Reuters’ marketing websites on the Adobe Experience Manager (AEM) platform. Accomplishments include

Adobe Experience Manager

  1. Consulted on the architecture of new features together with project manager, content authors, and third-party vendors
  2. Developed new features on Adobe Experience Manager
  3. Oversaw the development of new webpages such as Onvio and ONESOURCE
  4. Transitioned the Thomson Reuters Legal page to use Stencil Web Components

Installation

  1. Created a GitHub repository for creating Docker images consisting of an AEM 6.5 installation with the latest packages
  2. Placed the latest AEM packages (application and content) in an AWS S3 Bucket
  3. Wrote GitHub Action pipelines and Bash scripts to automatically update the Docker image and deploy it to JFrog Artifactory

Documentation

  1. Wrote documentation in both GitHub (for software developers) and on Confluence (for managers, content authors, and third-party vendors.)
  2. Set up coding guidelines

Continuous Integration / Continuous Deployment

  1. Configured GitHub Actions with Bash scripts to automate deployments to our Quality Assurance and Pre-production environments
  2. Set up migration scripts to automate migration of new frontend asset versions
  3. Configured our Adobe Experience Manager platform to deploy to Adobe Managed Services

PayOnline

  1. Bug fixes on Thomson Reuters' PayOnline system

Thomson Reuters - Senior Software Engineer

August 2017 – January 2019

Thomson Reuters operates a proprietary Software-as-a-Service (SaaS) platform for running their customers' web applications.

Development

  1. Responsible for adding new web stacks (Java 8 and Node.js 6)
  2. Improved the stability of the system by creating a new automated testing framework
  3. Added a feature to target users to the server closest to their location

Deployment

  1. Used GitLab to maintain our codebase

Trike Apps

January 2017 – July 2017

Trike Apps produces Bellroy's e-commerce platform to sell wallets and carry products

Development

  1. Implemented a smarter caching strategy
  2. Ensured that slower content loaded asynchronously
  3. Used Imgix to reduce image sizes
  4. Extended Bellroy’s templates (written in Liquid) to allow designers to perform A/B testing
  5. Implemented an integration with PayPal, allowing users to pay using PayPal Express Checkout without needing to leave Bellroy’s website
The background photo was taken by my wife Edith when we were walking on the northern edge of High Park in Toronto in the Summer of 2022