Experienced software team lead & system architect. Managed agile teams of software engineers and QA professionals. Developed and maintained large scale systems in the cloud serving hundreds of millions of end users. Focused on maintainability and business value. A fast learner with great analytical skills.
Took part in an ambitious rewrite of Retalix retail management system. Analyzed requirements based on behavior of existing code and discussion with product management. Negotiated a multiphase solution that would enable fast delivery without contaminating the new design with legacy implementation constraints. Guided & supervised software engineers and team leads during development.
Managed a scrum team of eight developers and QA engineers communicating with product in the UK and an offshore team. Developed customer specific features for a strategic partner as part of the company's leading retail product. Used C# .NET with nHibernate over SQL database and WindsorCastle for IoC. Managed quality relying on C# unit tests, Fitnesse functional tests and our own QA lab.
Recruited and built a team of six developers . Developed and maintained a few business critical recording servers with a wide installation base over multiple live versions. Introduced quality methodologies that were adopted by the entire development groups and have led to substantially improved quality. Put a clear plan for a gradual rewrite of a system, adding features, simplifying usage, and cutting on code. Increased both performance and capacity in two orders of magnitude, to meet IP-Telephony requirements. Used C#, C++ CLI, C++, COM, SQL, WinForms Windows Server, onsite debugging tools.
We've migrated the entire identity base, some billion users over a few thousand tenants, into a sharded multi-indexed mongodb database. We gained insite as two how to do sharing effectively and how to search with multiple global indexes in a sharded environment. I later took an online course to solidify my knowlwdge.
We've developed a series of services, OpenID Provider, Relaying Party, and JWT service that enable sites which do not share a database, to create a seamless SSO experience for the end user. I actually came to appreciate this protocol.
I admire the pace in which it evolves. We were using TPL, lambdas, Object LINQ, and even some yield return.
You-Dont-Know-JS and neither do I fully know it. It's complex and amazing and it's the fastest innovating language at the moment. We've used as a switchbaord on the client side in order to check session state and call on the server endpoints. I've been learning it and using it sparsly over the last two years, developing in Node and React.
We've developed both Single-SignOn and Single-LogOut, as both IdP and SP. This protocol is complicated. We had the challenge of integrating it with our existing authentication flows. Our partners were required to intgrate with existing third party servers. We had to become experts in analysing complex intgrations.
We were working on a hybrid cloud. Private cloud in the US and Russia and pubic cloud for data recovery and the EU AU regions. I'm taking a few courses specifically on the public cloud. This site is hosted and serverd by AWS'
I've led the effort from the R&D side to deploy our microservices within container. I've learnt it used it, gone down to the Dockerfile to understand how we build our image layers. And then we dumped it because C# on a linux docer was premature the time. Still it's the most exciting piece of techonlogy I've met recently.
The two most complex issues for developers are cahcing anf naming :-) We've used it as a caching layer to ease the burden on our database. We've used it for shared counting across all web server to achieve rate limit management. We've used it as a session store.