Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
About Víctor Pérez - (MetalBlueberry)
I’m a passionate developer with experience working on critical real-time environments like payments.
I have over 5 years of experience writing highly scalable systems with Go, which I not only consider my main area of expertise but also a language I genuinely enjoy working with. My enthusiasm for coding extends to other languages such as Python and JavaScript. My current skill level allows me to abstract the design patterns to be applied to any environment, independently of the programming language.
I have been working remotely since 2020 and I’ve learned how to bring people together. I can build a fully remote team that works way better than a physical team, encouraging interaction across team members and making sure no one feels isolated.
I love sharing knowledge, which leads to people around me asking questions that eventually contribute to my own knowledge expanding. This feedback loop is what makes it easy for me to become the lead naturally.
Experience
- Lead a remote team of 10 Engineers from different nationalities and locations
- Ensure code quality and give technical advice
- Critical incident management
- Manage the communication across different teams
- Fully remote work environment with people with different nationalities.
- Maintain Faster Payments Service connectivity improving stability and automation. (Alerting, Automatic incident responses)
- Work on a highly available and secure environment.
- Produce documentation.
- Leading a full-stack team (6 People) (Java/[Go]/Angular)
- Implementing best practices (Testing, SonarQube, Pair Programming, Daily stand up…)
- Set up CI/CD pipelines. (GitLab, Docker, Docker Swarm)
- Knowledge sharing among the organization (Talks, Workshop, Documentation)
- Mentoring the team to learn Go
- Migrate legacy cloud infrastructure from Java to Go (AWS Lambda, Dynamo, S3)
- Collect metrics to understand current limitations and design future architecture accordingly (AWS Cloud Watch).
read more
- Understand, Define, Structure and Quality Control of data generated by Large Format Printers.
- Build Jupyter notebooks to present the information (Python/Pandas/Plotly)
- Build dashboards for monitoring (PowerBI/Plotly-Dash)
- Build scripts for unstructured log processing (Logstash, regex)
- Create a data warehouse (Amazon S3, Parquet, CSV)
read more
- Bridge between business requirements and development team.
- Write technical documents documenting business rules for implementation. (Markdown/Jira)
- Support QA team during quality checks. (SQL)
- Develop POCs for new proposals before delivering the task to the development team (Python, Go)
read more
- Develop an automation software for Escape Room management(C#,WPF. State Machine)
- Develop PCB for DAQ based on Atmega328 (Arduino) over TCP/UDP (Atmel Studio, Altium)
- Develop a user screen to play videos, messages and receive user input (Qt, QML)
- Design games for the Escape room
Technical background
Since 2021, I’ve been working with the following stack to manage real time critical systems that are designed to be highly available.
- Language: Go
- OS: Linux
- Messaging system: NATS Jetstream
- Persistence: CocroachDB
- Github
- Slack
- Infrastructure tooling: Terraform, kubernetes, flux, kustomize…
- Monitoring and alerting: Grafana, Prometheus, logz.io
According to my peers, I’m a reference in terms of writing idiomatic Go code and designing monitoring systems.
My personality helps me to be on top of software development. I love reading about new updates and working on small projects to keep my skills up to date.
My background as a Data Engineer1 give me those needed skills to understand deferent means to report, process, store and consume data. My contributions designing dashboards to monitor the system were widely adopted across the company and had a direct impact on the confidence engineers had monitoring the environment.
See more
As a developer, the following is a list of technologies, tools, frameworks… that I’m familiar with, sorted by how comfortable I feel using them. A higher position means more comfortable.
-
Fluent (used last year)
- [Go] - Since go 1.8 (2017)
- Linux
- [Git] - GitHub
- [VSCode]
- Slack
- GitLab CI/CD
- Terraform
- [Docker]
- HTML/CSS/JS (This blog)
- CockroachDB
- NATS Jetstream
- AWS - S3
- AWS - Lambda
- Vue
- SQL
-
A bit rusty (more than a year without update)
- Java
- [Python] - Dash
- [Python] - Flask
- Redis
-
A long time ago (more than 3 years without update)
- Traefik
- AWS - Dynamo
- Jupyter notebook
- AWS - CloudWatch
- MongoDB
- Web Assembly (Go)
- [Ebiten] (Go game engine)
- MQTT
- C/C++ for micro controllers (Arduino)
- Qt/QML
- Rabbit MQ
- Unity 3D game engine
- Blender 3D modeling software
- SolidWorks
- C# with WPF for windows
- Godot 2D game engine
Soft Skills
I have multiple years of experience as a Tech Lead2. During this time I put concious effort on improving my communication skills to be the best lead I could be. During this process I’ve learn a lot about how to give feedback, comunícate ideas electively and to build strong teams.
The progress I’ve made improving emotional inteligente3 makes me realise a few years ago I was just a child on an adult body. This has been a critical change not only on how I work, but to every interaction I have.
I have no problem speaking in public and I’ve been doing workshops, talks, and courses in front of many people since the university. I love sharing knowledge.
I have been working with people on countries and time zones like US and India. I know what it means to have a different time zone and customs.
I consider myself a person that does things with passion and with a lot of patience.
I speak English fluently and Spanish. I tried to learn Japanese a few years ago, but failed.
I don’t hate Mondays. I like to read the documentation and I always read the instructions before using any new device. But I have to admit that I almost never read “Terms and conditions”.
See more
Academical background
You can check my LinkedIn for more info about my academic background.
-
Data Engineers are the data professionals who prepare the “big data” infrastructure to be analyzed by Data Scientists. They are software engineers who design, build, integrate data from various resources, and manage big data. Then, they write complex queries on that, make sure it is easily accessible, works smoothly, and their goal is optimizing the performance of their company’s big data ecosystem. ↩︎
-
Tech Lead is a software engineer responsible for leading a team and alignment of the technical direction. Providing a strong technical direction involves establishing a technical vision, resolving technical disagreements and managing the technical quality of team deliverables. Effective technical leadership ensures the team uses appropriate engineering practices (such as CD or automated testing), invests in continual improvements to tooling or technical debt, and that the system evolves to meet its changing needs and environment. ↩︎
-
Emotional Inteligence is the ability to manage both your own emotions and understand the emotions of people around you. ↩︎