
Álvaro Castro-Castilla
Verified Expert in Engineering
Distributed Systems Developer
Athens, Central Athens, Greece
Toptal member since September 2, 2019
Álvaro has more than 13 years of experience in software development, six specializing in distributed systems, back-end architecture, and microservices. His primary language is Go, but he loves coding in Rust, Clojure, and Python. Thanks to an interdisciplinary background, including entrepreneurship, Álvaro has experience turning ideas into reality, tackling technically challenging projects and leading a small team to accomplish it, as well as effectively developing MVPs.
Portfolio
Experience
- Distributed Systems - 6 years
- Go - 5 years
- Architecture - 3 years
- Microservices - 3 years
- Network Programming - 3 years
- Blockchain - 2 years
- Project Leadership - 2 years
- Rust - 1 year
Availability
Preferred Environment
Tmux, Terminal, Emacs, Linux
The most amazing...
...project I've developed is a protocol for secure multi-party computation with a private blockchain back end and Byzantine Fault Tolerance.
Work Experience
Distributed Systems Engineer and Architect
Toptal Clients
- Built microservices for the back end of a fintech startup, designed the middleware architecture and communications patterns based on Kafka, Pulsar, and AWS SQS, and SNS.
- Led the redesign of the back end for another fintech startup (financial exchange). The new design was event-driven, based on microservices, with a highly reliable and fully auditable architecture. Carefully designed cloud patterns for production.
- Developed critical microservices and middleware of the financial exchange. Implemented optimizations, leading to a 100x improvement in the main exchange transactions algorithm by porting it from SQL to in-memory with a Kafka back end for events.
- Introduced improved procedures for code review, code quality standards, and testing for the team. I helped increase the shared knowledge, systematizing the internal proposals of engineering and spikes, and coverage of the documentation.
- Introduced system health notifications, mesh services, distributed tracing, and other techniques of monitoring in the back end for production. Improved deployment automation via Docker and Kubernetes.
- Developed a blockchain bridging Ethereum and Polkadot, using Substrate with Rust (not on Toptal).
CTO | Co-founder
Off the Grid, Inc.
- Served as the CTO and co-founded this company as well as leading a team of six developers.
- Designed, architected, and led the development of the technology of the company.
- Led the development of the core platform: a distributed system (multiple clusters of around ten servers each), with a custom protocol and client to perform the MPC cryptographic operations.
- Designed a system to have a secure storage layer (using secret-sharing), and a capability-based security system tied to a custom blockchain consensus protocol, which would then provide secret data to a secure multi-party computation protocol.
- Implemented the P2P/network layer of the platform. This included discovery and membership algorithms designed specifically for our platform.
- Built a secure multi-party computation platform, in collaboration with the cryptographers in our team; also implemented an XFT algorithm for the consensus layer of the system.
- Reviewed and integrated the code produced by the team while limiting my coding tasks to high-level and impact features, or network-specific code.
- Co-designed the front-end iOS app based on our back-end platform service.
- Managed the deployment and operation of the Kubernetes clusters, with four separate environments: development (local), testing, staging, and production.
- Implemented distributed tracing, distributed operations for testing, CI/CD, stress tests, and remote debugging and diagnosis tools.
Senior Back-end Developer
Brave New Software Project SL.
- Developed and deployed a custom HTTP/S proxy, in production across 10,000+ servers, with multiple instrumentations and customizations, including stats reporting, dynamic instant reconfiguration, selective throttling, and pseudo-authentication among others.
- Participated in the design of distributed systems architecture, such as server assignation to a highly dynamic pool of users, and other very specific and ad-hoc cloud operations.
- Created internal APIs and full-stack applications for monitoring and managing accounts and servers (back-end, mobile, and desktop).
- Developed microservices for user management, authentication, pubsub, and geolocation.
- Integrated multiple APIs, most notably payments (including legacy Java code that needed rewriting), Twilio, and push/pull notifications.
- Created instrumentation and data visualization for the server fleet. The data was generated from services created in Go, stored in a time-series database optimized for a large amount of dimensions, and consumed by a Clojure/script full-stack application that performed processing and visualizations of the data.
- Performed remote debugging, profiling, optimization, fault tolerance, and disaster recovery for the services in production.
- Created support libraries in Go (Golang) and Clojure/Clojurescript languages. Examples of these are a network dynamic throttling mechanism based on real-time data, payment libraries for Clojure (Stripe, Gate2pay, and other payment gateways).
- Maintained full-stack internal projects, APIs, Microservices (other technologies of the stack: Python, React (with Clojurescript), SaltStack, PostgreSQL, and Redis).
Lead Developer | Co-founder
iKidz English SL
- Architected and implemented the entire platform, involving a back end (Clojure and PostgreSQL), a Java Android app as a container web view with specific extensions, and a web front end in ClojureScript, which is embedded in the app.
- Hired and managed freelancers that developed the small mini apps that were embedded in the front-end app. This was implemented by the freelancers following our guidelines and provided API, which I created.
- Designed and implemented the user interface for the four different frontends (students, parents, managers, and admins).
- Designed the wireframes and worked with a freelancer for the graphic design of the mini-apps.
Full-stack Software Developer
Fourthbit
- Architected, implemented, and deployed a prototype for a P2P Bitcoin exchange based on a social network (Clojure/Clourescript, PostgreSQL).
- Architected and implemented an MVP for a simplified version control system with web UI tailored to graphic designers (Clojure/Clojurescript, Git, PostgreSQL).
- Built SchemeSpheres, a multi-year open-source project comprised of a set of rapid multiplatform development libraries for the Scheme language. It includes many general-purpose libraries, a task runner, project templates, support for iOS, Android, OSX, Windows and Linux, remote and live coding facilities, among others.
- Created other side projects including a gossip protocol (SWIM) and a distributed K/V store prototype.
- Created a small C command-line tool for managing an SQLite-backed database of tagged files.
- Gained experience with Hadoop, Spark, Cassandra, and AWS MapReduce.
Associate Lecturer
U-tad (Universidad de Arte y Tecnología Digital)
- Held a software development workshop, using JavaScript (for first-year students of digital content and software engineering).
- Taught programming in C (for first-year students of digital content and software engineering).
- Held and lectured a course called Programming for Art and Design, (for second-year students of visual and digital design).
- Taught an innovation workshop (for third-year students of digital content and software engineering).
Academic Director
U-tad (Universidad de Arte y Tecnología Digital)
- Spearheaded the design and definition of the academic model and directed the creation of studies curricula for 5 B.A./B.Sc. programs and a M.Sc. in Graphic Programming and Simulation.
- Conducted meetings with specialists and coordinated and developed the studies curricula. My main assignation was on creating a multidisciplinary approach in U-tad's education model that would differentiate it from other universities in similar niches.
- Interviewed candidate professors, technical evaluation of the lecturer candidates.
- Participated in the executive meetings as part of the core initial team during the foundation of the university.
Assistant Lecturer (Ministry of Education Scholarship)
Universidad Politécnica de Madrid
- Assisted during automated architectural design (CAAD) lectures in the M.Arch. of Advanced Architecture.
- Taught C# and Rhino/Grasshopper graphics programming and geometry algorithms.
- Reviewed and built geometry algorithms for the students, for Civil Eng. (construction) and Architecture purposes.
Software/Conceptual Art Independent Creator
Independent
- Developed software and software-as-research as a digital artist. I worked with scientists, artists, and engineers.
- Created and explored new possibilities of visual, haptic, and artistic expression and information visualization throughout the means of computation. These explorations were about the topics of complex processes, self-organization, evolutionary algorithms, AI, endosymbiosis, and epigenetics.
- Participated in digital art exhibitions in Ars Electronica (Linz, Austria), Zentrum für Kunst und Medientechnologie (Karlsruhe, Germany), LABoral (Gijón, Spain), Medialab Madrid (Madrid, Spain), Puertas de Castilla (Murcia, Spain), and CAB (Burgos, Spain).
Research Program (Freelance)
DORLET
- Participated in a research program for Dorlet Seguridad y Domótica (Home Automation). The program consisted of a team of three digital artists that would research new uses for Dorlet's technology.
- Developed social decision algorithms for driving the control of their home devices and built simple 3D visualizations for these.
- Built experimental touch interface prototypes (back in 2008) for controlling home automation devices.
Research Intern
Next Limit Technologies SL
- Conducted research for geometry representation and geometry optimization methods. For this, I used primarily OpenCASCADE and TCL.
- Ported the code of the RealFlow product to the Linux OS. This project had over 100,000 lines of C++ code, with heavy templating.
- Ported and simplified the build system to CMake, turning it into a multiplatform build system with a common codebase.
Experience
Murmur (Decentralized Secure Storage and MPC Protocol)
It's built using Go and implements interesting features such as:
- A custom consensus algorithm (first a custom implementation of XFT was used, then migrated to an in-house variation of HotStuff).
- Tracing end-to-end, based on Opentracing.
- Network bootstrapping, both based in UDP broadcasting discovery and a central service registry.
- In order to accelerate development, we created centralized versions of algorithms that we knew could be fully distributed, effectively rendering the design fully decentralized, but moving in stages towards that objective.
My role in this project was as the team leader (as CTO/cofounder of the company).
Cointrust (Web App)
https://github.com/alvatar/cointrustThe project is a full-stack application built in Clojure/Clojurescript, using PostgreSQL and custom Java code bindings for the Bitcoin network interop. Frontend-backend communication is handled via WebSockets.
iKidz (Web App)
- A web interface for kids to use during classroom time. It offers a very simple interface based on a single search field that will filter tasks/activities to be selected by the students. They will then work in the class together in that activity. The progress will be monitored and screenshots will be taken at preset times.
- A web interface for parents, for payments and to track their children's progress.
- A web interface for academy owners (managers), that will manage payments, parents, classrooms (groups) and students. It offers also a form of communication with parents, and a way to control the class live (like simultaneously starting the same activity in all the students' tablet).
- An admin interface to tag and edit activities and managers, as well as monitor payments.
The technology stack consisted of Clojure/Clojurescript and PostgreSQL. front end-back end communication was handled via WebSockets.
High-performance HTTP(s) Proxy with Custom Extensions
- Selective throttling
- Custom protocol for traffic shaping
- Data monitoring and traffic sampling (anonymized)
- A pseudo-authentication system to allow for a certain degree of limitation (used for separating the free from the paid versions of the system).
It was implemented in pure Go and used Redis as a back end for metrics storage.
SchemeSpheres (Open-source Scheme Framework)
https://github.com/alvatar/spheresSome of its highlights are:
- +150 libraries, including data structures, algorithms, basic web libraries, and graphics (OpenGL and Cairo).
- Easy-to-use multiplatform and flexible build tasks runner (supporting Linux, OSX, Windows, Android, and iOS).
- Tools for interactive and remote development in all these platforms, mixing optimized compiled code with interpreted and live coding.
Gambit Scheme Compiler (Open-source Contribution, C, and Scheme)
https://github.com/gambit/gambit/commits/master?after=ff5b4195c7d9115190d5f6be3b21ad3568bec748+1259This was a very interesting learning experience that required diving into the internals of the OS and network parts of the runtime. The code was a combination of C (runtime) and Scheme (exposed functionality).
Created and Exhibited Digital/Electronic Art in International Venues
http://castrocastilla.com/My work was exhibited in Ars Electronica (Linz, Austria), Zentrum für Kunst und Medientechnologie (Karlsruhe, Germany), LABoral (Gijón, Spain), Medialab Madrid (Madrid, Spain), Puertas de Castilla (Murcia, Spain), and CAB (Burgos, Spain).
Created the Curriculum for a Private University Specialized in Art and Technology
https://www.u-tad.com/en/Education
Master of Science Degree Equivalent in Architecture and Civil Engineering
Universidad Politécnica de Madrid/Tampere University of Technology - Madrid, Spain and Tampere, Finland
Certifications
Algorithms Specialization (Four Courses)
Stanford University | via Coursera
Reinforcement Learning Specialization (Four Courses)
University of Alberta | via Coursera
Computational Neuroscience
University of Washington | via Coursera
Deep Learning Specialization (Five Courses)
DeepLearning.ai | via Coursera
Mathematics for Machine Learning Specialization (Three Courses)
Imperial College London | via Coursera
Machine Learning
Stanford University | via Coursera
Professional Scrum Product Owner I (PSPO I)
Scrum.org
Cloud Computing and Networks (Five Courses)
University of Illinois at Urbana-Champaign | via Coursera
Skills
Libraries/APIs
OpenGL, TensorFlow, Keras
Tools
Emacs, Terminal, Vim Text Editor, Tmux
Languages
Clojure, Go, Python, Rust, Scheme, Processing, C++, HTML, Lisp, C, JavaScript
Frameworks
ClojureScript, Qt
Paradigms
Microservices Architecture, Functional Programming, Distributed Computing, Microservices, Management, Software-defined Networking (SDN), Dynamic Programming, Agile Software Development, DevOps
Platforms
Blockchain, Apache Kafka, Linux, MacOS, Open Cascade Technology (OCCT), Amazon Web Services (AWS), Kubernetes
Storage
PostgreSQL, Redis, NoSQL
Other
Distributed Systems, Cloud Architecture, Software Architecture, System Architecture, Technical Architecture, Network Programming, P2P, Secure Multi-party Computation, Full-stack, Innovation, Architecture, Architectural Modeling, Certified Scrum Product Owner (CSPO), Logistic Regression, Artificial Neural Networks (ANN), Machine Learning, Machine Learning Algorithms, Datomic, Linear Algebra, Multivariate Calculus, Principal Component Analysis (PCA), Convolutional Neural Networks (CNNs), Deep Learning, Recurrent Neural Networks (RNNs), Deep Neural Networks (DNNs), Neural Networks, People Management, Curriculum Design, Big Data, Big Data Architecture, Cloud Computing, Cloud Infrastructure, Applications, Computational Neuroscience, Reinforcement Learning, Deep Reinforcement Learning, Markov Chain Monte Carlo (MCMC) Algorithms, Monte Carlo Simulations, Artificial Intelligence (AI), Markov Model, CTO, Algorithms, Data Structures, NP-complete Problems, Computational Geometry, Differential Equations, Calculus, Computer Graphics, Apache Pulsar, IPFS, Fintech, Project Leadership, Serverless, Middleware, Cloud
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring