Skip to main content

About me

Education

Experience

  • C3.ai - Guadalajara, Jalisco, México

    Software Solution Engineer | October 2023 - Present

    • Productionalization of custom-made proprietary ML/AI applications delivering clear business value for a variety of industries (Energy Management, Demand Forecasting, Process Optimization) while establishing communication with key stakeholders (task planning, requirement clarification, presentations) and close collaboration with Data Engineers, Data Scientists, DevOps, QA, Designers and Project Managers
  • SoftServe - Guadalajara, Jalisco, México

    Fullstack Software Engineer | August 2022 - September 2023

    • Worked on a real-time WebApp using the PETAL stack (Phoenix, Elixir, TailwindCSS, Alpine.js, LiveView) with PostgreSQL + Ecto leveraging the OTP architecture with custom GenServers and unit tests with ExUnit
    • Designed REST APIs in Python (FastAPI) with Azure CosmosDB + Azure Data Explorer + KQL and frontend UI’s in React / Redux + TailwindCSS.
  • Hewlett-Packard (HP, inc) - Guadalajara, Jalisco, México

    R&D Software Engineer Intern | June 2021 - July 2022

    • Implementation of a Serverless architecture, reducing operational costs and improving scalability. Utilized AWS Lambda (Go) , API Gateway , S3 , DynamoDB , and CloudWatch for a fully Serverless stack.
    • Developed and refactored internal tools using React/Redux/MaterialUI with collaboration of multi-national and cross-functional teams using Agile.
  • Uber México - Guadalajara, Jalisco, México

    Software Engineering Academic Apprenticeship | March 2021 - June 2021

    • Helped the Analytics Team refactor Jupyter Notebooks into a microservice with Python/FastAPI and deployed using Docker by analyzing critical parts of the codebase and making a fully working internal service.

Technical Skills

  • Programming Languages
    • Elixir
    • Go
    • Python
    • JavaScript
    • SQL
    • Bash
  • WebDev:
    • Phoenix/LiveView
    • React/Native/NextJS
    • FastAPI
    • TailwindCSS
    • HTML5/CSS3
  • Data/Databases:
    • Databases: PostgreSQL/PostGIS/TimescaleDB/Ecto
    • Queues: SQS, RMQ
    • Object Storage: S3
    • Job Scheduling: Oban
    • Data Analytics: DuckDB
    • Data Visualization: Vega-Lite
    • Data Manipulation: Explorer/Polars/Dplyr
    • Data ingestion and Data processing pipelines: Broadway
  • Networking:
    • RESTful API’s
    • OpenAPI/Swagger
    • WebSockets: Phoenix Channels
    • GraphQL: Absinthe
    • Phoenix Pub/Sub
  • Testing:
    • TDD
    • Unit Testing: ExUnit
    • E2E Testing: Playwright & Wallaby
    • Performance/Load Testing
  • DevOps/Cloud:
    • AWS
    • Fly.io
    • Docker
    • GNU/Linux
    • Grafana
    • CI/CD
    • Systemd
    • Serverless (Lambda)
  • Security:
    • JWT
    • OAuth/OIDC
  • Other:
    • Git/GitHub
    • Figma
    • Agile/Scrum
    • Distributed Computing (BEAM Clustering)
    • Parallel Programming (Erlang OTP)

Languages

  • Spanish
  • English

Relevant Coursework & Certifications

  • AWS Certified Developer Associate
  • IT Automation with Python Professional Certificate by Google/Coursera
  • Project Management: Professional Certificate by Google/Coursera
  • Open Source Software Development, Linux and Git Specialization by The Linux Foundation

PGP Public Key

-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBGHxkSIBEACnofdDf9MhtN4DIMp0mkOdKfBqS3cTyVDE64YQ3QQbjih5nXIB
nvt8r7aplm2t0BCKRijKDeTasR3/+VRsppzbhD8kAzTAcLoDBKa9ifZlFRcnCOtL
K0AgesmAfWI164XqGuvObBDGnJPCC0+dBWfdQlROwXfgTvDbRtuD5TgLQ2Q5LFbd
oQU7hWAD0E1tXJnz7mnODkHmI2PclJaDNDzvKKtBhA588ljllqY+3xKoCoPmiaqx
dCI+X3ZmRpapD7+MsuHGerlpTVHkasRscIYvO/lMZ7rzLEKGAgg/1cTZtvUqkKpq
RNjQ3lw3ZZUzASNw6dU+qj84KqDhW93oBmoq07kR0/j1oXRfTjIy1cx8eyK8e6gL
AebWQPYAZ6bbbhlI/WdvJJhutE6Si/JimIR0SGNmdOgTu4e4xy8VSTCV5JytAn9p
qdSx1avLJkL0u/iTy4ThpG41bOKY4XdT1msjBA4719Qw++aY9BkEUhRyN3Fw+vZh
DGspnzsoCRzJBHDsrpzjKPn6IQQi3JJ+wXs6OyI24KGduL1/o+muRSX9401CWtXX
G40iOyKAMIFGb6CQfchotkH/qKcgodHl6eNhgJsLMpbCXAVTfLSVohZPH+iSZVYG
9Bzb9gOtV+DZiskEsSob04sOm2FlYmGJBGUcuC7YPvmIcPQNZzwR0ZaY/QARAQAB
tDZEYW5pZWwgRWZyw6luIFZlbMOhenF1ZXogTGFyYSA8ZGFuaWVsdmVsYXJhQGdt
YWlsLmNvbT6JAk4EEwEIADgWIQSGMf4QaSQY24MaCRTm4kmtYSt7CwUCYfGRIgIb
AwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRDm4kmtYSt7C4JjD/9ePplJ1AiN
MFSRlMw0yADBVx1NT9XNLfNpizXBgITAkiv2oP/xVnEWbJ833b8m6zqDpjcJUC7L
tmprem81dGnevYdZIRtjPbzDmkPaQmisWjHLgbg243PwKdObTFMYJQmKsfkZ3t2l
i1Y6+614ofmnR8rvX1LLFQW5tjBP3fc4zvFK+pNUaEp47OrgIphw09x6ZPPvCRRg
Pk6FFtGJz/x51HPvNXSztygrzBQH2wPwKEVU+9ONBa8O54fphY2uoe+irUzJEBlH
r+rsUp3MxAMzEp5P24JFJCWmWzhLnd4gYoXLapjs1BgUdJ4zjWSYjmS5fJ19SdAx
Df4kQiY6S9jCsYmcM6VbBRNn0uMld5s3HZyJ5f8uP69zAuPaVJVZVeDig7L1qqFa
qX7QWlgRpSIg5sTeSjrsih8smJH7XvfN+251/4fmx+JGvBmDX03p23PISLv9D1Kd
egKJPQtTsEPDwEPwcon8ojuDIT7clF1mW/E3VZRHdhEX0lKekk0GLOQfFvdGYSDd
0hssYtBixpy1HIcD1foHJZ3Mxm1S6XdtwTb7eJaDub6HvoFQi+7yh3yiMXmdjGFC
E+FIUhhMzeFSDD45lHnBPEJQMB3m04VAuLDkMu7UaTWsXyC0tv+A4ODNUx/Pk7GO
PDXloiKrpFkbrA7M/uebYMWOTgtyss3wdrkCDQRh8ZEiARAA2MWltrcFqXuHW/Fk
AWBaTn1Dlg3EBYKK1rzf75oQZZx2Ld/5MSGlJG4FWzDMk/q2KmZolL4liSkRGx2L
EkcNde9Cz9N6k00cCK1bDEhVc0NVjgmNQLjzq1HWGQVYImbok/4+JYDP0//IHocM
k58Jvo8msvjv8DJwAuYu7fgM0Z4n1j9fdPaXhDagjbScwgTtCB2uKvEHVz+FHQIj
7AeasNQfeZvpEUYGjShdn49hvC7hS0jS6uDZKYeHBFRq5epLiOUEZQKPa3o9ze6T
dBqo4WJZUTHDR9pRw629n5NCKnoFSwiP9aMIH1dkzL7HFq4pICNbQ88wizPGkPmB
2B8f/hJ2M3Um648n4/rBJMLdWzS4JvOadu/YmCYOIMwQp9VcdZuN+khH52Sn4klE
4JZhH7FLlFqOeq4PF3mXAvTPsH2zlR0lB5+38hf0gdpLaoCIzfs7o2whaaR63/Tq
GPk8oBMkSPOZEXput5OpFzBO6MnMd/tVl3ME40vF58XzqQcTJyHweugNyjTarNEx
szpg7zafK+vI01n1zHk91vPnsZKHaGWKWabJ9vmaRIYZh0A5SYnDtpfdVimhSDFp
jruphRwh9OolR5ap1JJ0h3zGZHuhT6zXGuFpK08Ua+8AyxGDaxB7f0aj0HRVSbNU
Zs75LwVH5mxb7R8sdvXCV/e2a2MAEQEAAYkCNgQYAQgAIBYhBIYx/hBpJBjbgxoJ
FObiSa1hK3sLBQJh8ZEiAhsMAAoJEObiSa1hK3sLRtsQAJxv7Bz5P3HAkxuFEgYA
qlwATeyTdoBSmh16bwJsUFhoyxrlsW/5YyOGmR1OW8KX3x9xxNhycoJJ/ch4MPTb
dstl+tYlq0Mwct1zk706nmKSZULUQqO/bNV4oe5KB5gaEQb2pDDsD/XtSxIC5FVk
jNa2vr8xfRXPeaJbf7i4KBcTHzhmuyHEsbPWYm3ZCqcs0032JtF03zbCRq3r2wbz
kkdfhfJzWMasKkjSxHIWrhzwfGoJ2fty/Uf4Dl+3jMmRAQnynsDeuvX9u8yHafiZ
yavDUQieUv19PGz2Q7q7dhzN5jH2qBR5XSm+F5dalaUIDI4mX5bkoyMPuNinb0jX
Gb3p/qmAaQgMM4N83DX6b6z6CZKVSlm8G7gzizyQSg0fCXOdhS6Of3eGBURSTTpu
/0cUocy1v9+ZEWrAkdn9t1FnI1sVomeOsfUUUyacJzYxa0xsVU/wmwKDnx62PAgq
ChQtBwIMuKKplSHYjKs8dk6KBn0vFPyt78rt+Tj8KaDEl7mvciMaFuunb6pOu3dK
sMZKGkGSZBkaCxkpgrVOdc2iKY4iEToKDbTok0HBQbVZQTSrNgeQvzIAPdpwY/km
gL2+TUBiCsgqzM7m73tupOjrUlO5za7KJ9ayRyaBhZafa36tyErMyj21IwA3N13z
LabYwu+R/7AMdKF9v5GX6B24
=gfFf
-----END PGP PUBLIC KEY BLOCK-----