Sign In

Dmitri Mikhailov

Architect & Developer

Dmitri Mikhailov is a technology expert with a Master's degree in Computer Science from the Belarusian State University of Informatics and Radioelectronics.

With over 20 years of experience, Dmitri has a proven track record of driving growth and increasing business value for public and private companies, from startups to Fortune 50 companies.

His expertise spans strategic initiatives, software & database design and development, business intelligence, marketing, business development, data science, operations, contract negotiations, security, payment processing, and system scalability.

As a hands-on technical leader, Dmitri bridges the gap between business strategy and technology, eliminating the need for external consultants or large staff.

He is a team player, mentor, and problem solver, capable of working at all organizational levels to achieve desired results and implement strategic visions.

His previous roles include Enterprise Data Architect at The Knot Worldwide, Data Architecture/Engineering/Security/Compliance at UTC Aerospace Systems, Database Engineering/Architecture Consultant at Sailthru, Software and Data Architect at CRONOTRON, Principal Database Architect/Director at THE LADDERS, and Senior Software/Database Engineer at GLOBAL COMPUTING SERVICES CORP.

Highlights

Mar 28 · linkedin

Your next interview question (yes, coding): "Generate all permutations of a binary value by a pattern"

Input: 1??0?101

Output: 10000101 11000101 10100101 11100101 10001101 11001101 10101101 11101101

Reference: https://lnkd.in/emMGUD4r


Good god! All the answers were not good enough. It took me a second to see a better way, and then, minutes later I had it in Python. The code is below.

To run on Mac: copy the code to clipboard, then, in the shell: python <<< $(pbpaste)

THE CODE BEGIN

#!/usr/bin/env python3

Generate all binary strings from given pattern

Complexity:

#  time: O(2^(n+1)) #  space: O(n) <-- Instant win

Dmitri Mikhailov, New York, 2024

pat = '1??0?101' res = list(pat) ind = [i for i in range(len(pat) - 1, -1, -1) if pat[i] == '?'] cnt = len(ind) pre = (1 << cnt) - 1 for msk in range(1 << cnt):  for pos in range((msk ^ pre).bit_length()):   res[ind[pos]] = chr(48 + (msk & 1 << pos > 0))  pre = msk  print(''.join(res))

THE CODE END

Mar 20 · linkedin

I'm not new to LinkedIn, but I have a question for my network:

Where can I clearly state that I would like to be hired directly?

I'm looking to reduce noise and to eliminate the middleman, so I want to make it clear that staffing agencies, IT consulting companies are not welcome to contact me.

Any suggestions?

Related Questions

What specific projects has Dmitri Mikhailov worked on at The Depository Trust & Clearing Corporation?
How did Dmitri Mikhailov's work at Novartis influence his career?
What technologies has Dmitri Mikhailov implemented at DTCC?
Can you provide examples of Dmitri Mikhailov's team management experience?
What is the Petri Net theory, and how does it apply to Dmitri Mikhailov's work?
Dmitri Mikhailov
Dmitri Mikhailov, photo 1
Dmitri Mikhailov, photo 2
Add to my network

Location

New York, New York, United States