I have started working with Urbint Inc. as a Lead Frontend Developer while working with shades.news on an hourly basis as a contractor to hire their development force after their seed investment. Urbint is a significantly different experience from my own companies and previous Toptal engagements. When I joined, Urbint had a near billion-dollar valuation. Most of their development force was located in Portugal and India. I began working on a product called Worker Safety, primarily collaborating with the team in India, but I also had to attend meetings in both Indian and US timezones.
Despite being a large corporation, the frontend codebase was quite different from what I was used to. It uses React.js as the rendering engine and Next.js as the framework, but the code was mainly written using fp-ts and io-ts. These tools allow us to write with functional programming paradigms in TypeScript, extending its type system to become much more strict.
I found myself writing dashboard UIs with options, eithers, semigroups, monoids, and several other mathematical abstractions. It took me nearly four weeks to start becoming productive with the codebase. I then began working on a new product for the company called EBO. As the lead developer on a team of three frontend developers, I managed to launch the first version of the product in October the same year, and then started working on improvements and new features.
Our product mainly followed the MVC pattern for a multi-step form, where every step of the form is controlled by its own non-mutable model and its own reduction logic, along with a central form wizard that controls these logics. Every side-effect generated by reductions was handled utilizing TaskEithers in a non-blocking way.
After completing EBO and shipping it to customers, I started working on a more generalized approach for different productized forms that the company provides to their customers. A typical working day for me at Urbint currently consists of PR reviews, pair programming, or other ways of helping developers working on the codebase, and developing new features.