Farzad Sadeghi

2023/01/28

https://terminaldweller.com
devi@terminaldweller.com
thabogre@gmail.com
Tehran, Iran

Professional Experience

Zharfpouyan Tous (Tehran, Iran)
March 2021–June 2022
14 months
Developing/Maintaining code for a network device running on a unix-like operating system(openssh,linux-pam,busybox).Mostly C and shell scripts.

Erfan Salamat (Tehran, Iran)
Nov. 2020–Feb. 2021
4 months
Backened Developer. Developed a GIS and Notification microservice using Golang. Containerized the entire required stack for the said microservices with Docker.

Maharan International (Tehran, Iran)
Feb. 2019–Oct. 2020
19 months
Requirement manager, designer and developer for ERTMS/ETCS DMI for a safety-ciritcal system written in C.

Truebit (Remote, 3 time-zones)
July 2017–Nov. 2017
5 months
developed Truebit’s WASM interpreter and smart contracts. Also managed the CI for the repositories.

NEAT (Rome, Italy)
May 2016–July 2016
3 months
Wrote an automatic refactoring tool using Clang(Libtooling) in C++. The tool would be the last piece of an automated model-driven development process for safety-critical systems.
Crouse (Tehran, Iran)
July 2014–March 2016
21 months
Embedded software developer, Safety-critical applications: Design, implementation and automation. The Software team’s ISO 26262 representative.
Safir Language Academy (Tehran, Iran)
August 2010–March 2012
20 months
English Teacher - Later on specifically IELTS teacher.

Skills

Programming Languages: C, Python, C++, Go
Other: Linux, docker

Hobby

I maintain my own local kubernetes cluster with k3s on my raspberry pis along with a bunch of VPSs that I run my services on(Docker, not swarm)).

Languages

Persian: Native
English: Native-like
German: Beginner

Education

2021–Now Master’s in Computer Science, Azad University, Science and Research Branch, Tehran, Iran. Currently working on my thesis
2007–2013 Bachelor’s in Electrical Engineering, Iran University of Science and Technology, Tehran, Iran.
Thesis: Determining the frequency of an audio signal using phase derivation in real time, design and implementation using an FPGA.

Role Breakdown

Backend Developer
Developed a GIS microservice based on the OSM stack. Containerized an entire geoserver stack (geoserver, tile server, static image server, DB) so that we could rely on our own stack. Developed a notification microservice using golang and Mongodb(with Percona memory engine).

ERTMS / ETCS DMI Development
Split the DMI into two subsystems. Designed and implemented the software for the component on the "kernel" side. Wrote a tool that made the requirements’ traceability files by gathering special comments from the C source files. Wrote a tool that determines all the sub-fields of aggregate types used in the function and the functions it calls(required for testing).

Embedded Safety-Critical Development
Wrote the SRS and the SDD for the DSP algorithm, then implemented the DSP algorithm for a safety-critical hard real-time embedded system.

Code Generation

Automation and Tooling

Automatic Refactoring
Wrote an automatic refactoring tool using Clang’s Libtooling for C.

Defensive Programming / Safety-Aware Software Design
Studied/Implemented defensive programming practices, coding style and guidelines. Explored the use of FMEA and FTA for the software domain.

AUTOSAR
Studied AUTOSAR SWC and RTE.

ISO 26262
Studied the software section of the standard. I was also the software group’s representative for the study/review meetings held with the hardware and system teams on ISO 26262.

Links

terminaldweller.com My personal web page.
Github My Github page.
hived A tiny and fast crypto API server.
magni Upscales the images in a webpage and serves them back locally.
cgrep Grep for C-family source files.
devourer A little helper API server. Extracts, summarizes and vocalizes articles on the web.
mdrtl A minimal RTL markdown editor.
blog Source code for my blog.
Linkedin My Linkedin page.