Ulrik Strid
My name is Ulrik Strid, I'm a "full stack" developer from Sweden. Currently in a DevOps role working on everything from CI/CD and docker setup to backend and frontend services and up to architecture. I like open source and try to contribute where I can. My current focus on OSS has been to fill in gaps in web development using OCaml, especially around authentication.
CV
Work experience
From most recent (current) to least recent
- Marigold - As the DevOps team lead and manager I've been leading a globally distributed team. My role included managing people, making decisions about our infrastructure and development tasks.
- Xenit - As the first developer I've had a very varied role where I've done everything from architecture to implementation of minor tools and automations and working with kubernetes.
- Sigma, MyTeam - Developer consultant leading frontend development.
- I was in the "architect group" where we discussed architecture for the different projects we worked on and decided on technology we wanted to use going forward.
- We did multiple "lunch and learns" where I talked about everything from React to ReasonML
- Sigma, Maverick - Developer consultant and tech lead of different projects
- Viskan distanshandel - Building e-commerce frontends for large customers in Sweden
Projects
- Building and architecting the frontend and backend of a research tool in a small team of 2 developers.
- We needed to build an image manipulation tool and ended up using WebGL which was challenging and needed a lot of RnD to land on.
- The other big challenge was that we needed to do a lot of matrix calculations in the browser while still being responsive
- Designing (code) and implementing a OpenID connect provider for Swedish and Norwegian BankID.
- Created a customer portal with a very extendable architecture based on microservices.
- It uses a GraphQL API to expose data to the client(s) and a mix of REST and gRPC to talk between services.
- We're continually extending it with new services for both internal and external needs
- Lead developer/architect for the the "control plane" of a security focused project to protect connected devices via "zero trust" and PKI
- It's a fast moving project with a lot of moving parts which forces us to build a flexible platform
- We're using MQTT heavily to talk to both the secure devices and the clients
- We're leveraging the JOSE spec to create signed and encrypted messages depending on how much privacy is eneded
- Porting Lwt Unix from libev and "custom" C code to use libuv
- I got the possibility to get fundign via The OCaml Software Foundation to work on Lwt
Skills
Languages
- OCaml
- TypeScript / JavaScript
- Nix
Others
- Good knowledge of OpenID connect and related specs (JOSE, OAuth2)
- I am one of 30 or so people to have built and certified a OpenID connect client.
- Software architecture
- Developing for Kubernetes
- Docker
- Manifests
- Helm
- Kubectl and debuging issues with it
- Nix/NixOS
- Packaging Software
- Setting up reproducible dev environments
- Configuring hardware with NixOS, both servers and workstations
Open Source
My most recent and noteable open source work has been in OCaml
My projects
- OIDC - Certified OpenID connect client implementation and base library
- JOSE - JavaScript Object Signing and Encryption, JWT, JWS, JWE and JWK
- Cookie - Parsing and printing Cookies for web servers
- Morph - A web framework
- redemon - A filewatcher and command runner, nodemon replacement
- reenv - A very fast dotenv replacement
Noteworthy contributions
- Lwt
- libuv engine
- Start porting Lwt.Unix to use libuv
- Esy / Reason ecosystem
- I have spent a lot of time setting up good CI/CD with Azure Pipelinens (and to some extent Github Actions) for esy projects that is used a lot in the Reason community