Kaveh Mousavi Zamani, Berlin, Germany
I am a Software Engineer with several years of experience in coding, system administration, dba and cloud. I am a problem solver and familiar with those aspects of software environment that defines success and failure for projects and teams. I like challenging problems. My passion is cleaning code, simplifying systems and SRE practices.
Team Leader (Devops/Go), Fit Analytics Berlin, Germany 2018 Jan - Now
- Designing and developing a high performance micro-service to abstract code access to different data layers in Redis and Aerospike (gPRC, Protobuf, Golang).
- Complete automaton of non-existing staging, production, … environments in google cloud (Terraform)
- Creating an automated Kubernetes deployments process and its components (Cloud build, Kubernetes, Helm), auto-scaling, preemptible instances.
- Writing/refactoring/optimizing our Go codes and converting the nodejs ones to Go.
- Introducing SRE concepts.
Software Developer (Devops Team),Travel Audience GmbH, Berlin, Germany 2017 June - 2018 Jan
- Moving a complex set of apps, services, postgres, redis and Aearospike to Kubernetes.
- Working on a Go app required for performance benchmarking
- Automation using Ansible and Terraform
- PostgreSQL and Aerospike DBA, optimization and automated management.
Software Developer (Team Leader), Binary Services Ltd, Berlin, Germany 2016 December - May
- Developing and optimizing pricing code (mainly Perl).
- Establishing a pricing server implemented in Perl, using JSON-RPC.
- Automation of company cloud setup using Terraform in AWS and GC.
- Introducing role-only (with mandatory 2FA) access to devops team for AWS. Minor task (https://goo.gl/6TAkuX).
- Introducing knockd with temporary ports to close port 22. Minor task( (https://goo.gl/ZPD3oa).
- Upgrading 35 Postgres cluster each near and above 1TB with less than 3 minutes downtime. AWS, non-RDS (https://goo.gl/QjzBp0).
Software Developer, Travel Audience, Berlin, Germany 2016 August - 2016 November
- Working on different Go projects.
- Automatic setup of Cloudera hadoop cluster in Gcloud.
- Converting manual setup of redis clusters to Ansible.
- Cloudera Impala optimization.
- Handling message delivery for processing application logs using Go and RabbitMQ.
Software Developer (Team Leader), Binary Services Ltd, Cyberjaya, Malaysia, 2013 July - 2016 July
- Leading a project to move our old infrastructure to the cloud (AWS in this case), to handle several hundred request per second.
- Working on JSON-RPC project to add async calls to websocket-api and separating the layers so websocket connections don’t need restart while underlying code changes.
- Developing a websocket stress testing app.
- Realtime DB notifications, using Postgres Notify/Listen and Redis Pub/Sub to publish realtime data change to be consumed in API (rate of ~500/s)
- Refactoring a monolithic, old fashion code base to an state of the art platform.
- Design and implementation of configuration and deployment system using Chef.
- Design and setup of development environment using vagrant and Chef.
- Setting up one push to build for development boxes and one push to release for production.
- Setup and integration of continuous integration system (Jenkins, TeamCity,TravisCI)
- Implementing Redis clusters, replication and monitoring.
- Establishing streaming replication in Postgres, replacing Bucardo, PITR backups.
- Record of having negative KLOCs while developing new systems and adding features.
- Developing and integrating several monitoring and metric collection systems (data dog, scout app, pager duty, cron monitoring).
- Design and implementation of zero-access backup.
- Short stay. Working on some small projects.
Software Developer (Team Leader), Binary Services Ltd (RMG Technology (M) Sdn Bhd), Cyberjaya, Malaysia, 2009 July - 2013 June
- Re-factoring Perl code. Improving architecture and design of the code.
- Migrating a large scale legacy file based system to PostgreSQL with no down-time.
- Establishing a trigger based Bucardo replication (master/master and master/slave) between several clusters in 5 continents.
- Establishing a schema versioning and migration system, based on Ruby::Migrations model but in Perl.
- Establishing an OLAP/Cube data analysis system (OLAP).
Software Developer (Team Leader), Optimer.net,Tehran branch, Iran — 2001-2009
- Web development based on free technologies.
- Several custom projects for clients.
- Remote administration of company servers.
- Software developments based on a customized XP methodology (customized with user-centered design).
- Implementation of thin-client systems LTSP.
- Improving and customization of a free shopping-cart project named Zencart for two years.
- Developing an interface for ClamAV anti-virus, using Java, and making a customized USB boot-able GNU/Linux for it.
- A management application in C# (Mono Framework) for a factory.
- Developing a Hot-spot Appliance including, customized router (dd-wrt), web site and free-radius AAA servers. The job included web programming, server side programming, networking. Also a Windows based GUI for users using C++ and wxWidgets.
- Azad University, South Branch Tehran, Iran — Bio Electrical Engineering , 1999
- Azad University, South Branch, Tehran, Iran — Bachelor of Software Engineering, 2008
- JSON-RPC, gRPC, protobuf
System Administration and DBA:
- Gnu/Linux (18Y): Debian, Fedora, Slackware. Building live Debian based OS. Administration and Network management.
- Terraform, Chef, Ansible
- Kubernetes, helm
- Docker(compose,swarm), LXC, OpenVZ, Virtualbox, Vagrant
- Cloudera, Impala (Hadoop)
- Apache, ngnix
- PostgreSQL, Aerospike, Redis, Bucardo, MySQL, SQLite
- AWS, GC
- TravisCI, Jenkins, Teamcity, Nagios, ZenOSS, coveralls, sysdig
- eXtreme Programming, SCRUM, Lean Software Development, Kanban
What I read
- HN, Go Specs, Clean Code
- SQL and Relational Theory, (C.J Date)
- Member of Technical Committee of “National Operating System Of Iran” for about two years.
- National Computer Olympiad candidate, 1992.