Ask HN: How can I help you?
I always prioritized having broad skillset rather than focusing on a single thing, but i'm now having doubts about it.
I'd like to discover if my skills are useful by applying them to solve someone's challenges. If talking to me might help you - please drop me an email or schedule a call (the address is in the profile). Free & no strings attached.
About me:
- co-founder/ex-CTO/ex-CPO of a russian company with $15M arr
- people usually describe me as a "smart guy"
- had to solve a problem that required using nlp, so i organized data labelling team, finetuned BERT, and integrated it into a larger system
- know some finance. unit economy, operating costs, that sort of thing
- did a lot of a/b tests and conversion experiments
- bitmap indexes, fractal trees, k-d trees - i like indexes and trees
- developed software using python, golang, php, c++
- clickhouse user for 3 or 4 years. also, mongodb, vertica, presto
- did some custdev and qualitative interviews
- have some experience managing outbound sales reps; but still, i'm a builder/hacker, not a hustler
(I realize this post looks a bit like a sneaky "hire me" post - but i assure you, that is not my intention) I’d like to be CTO / VP of engineering one day. How did you get to that point? What roles did you do before that to be able to step up into being taken seriously for that kind of role? I’m in the odd? Position of being more commercially experienced and less technically experienced than most (senior)/software engineers. Right now I fall into wanting to prove my chops technically and building new products/ mvp’s while also guiding devs on other projects. Obviously it’s a world of difference between a start up and a f500 company in terms of what a CTO would do so feel free to think CTO at startups <100 employees size etc. Great question and one many of my very talented engineering friends express. My suggestions (in no particular order): 1. Title inflation is a thing. I got my first CTO role in my late 20's and this was partially due to hopping on with a very early stage startup that needed tech direction/leadership/IC work. Getting exec roles in your younger years is much harder with larger more established companies. 2. Learn the whole stack. If you are the VPoE/CTO of a smaller company, people expect you to have the answers for everything tech. You pick the servers, infrastructure, code styles, architecture, frameworks, etc. 3. People are everything on a team. Before you are in one of these roles, spend some time understanding challenges people face in companies you work for, across departments. Grab lunches with people, talk to them about work. Some problems can be solved with an hour of coding a script for them. Most are more complicated, but developing this empathy and willingness to understand was crucial for me. 4. Being able to interview and hire well is an undervalued skillset in the tech industry. Involve yourself in those processes early to start understanding it. Remember that as CTO of a small/mid size company you may have final say on all tech hires as well as being the one who determines when positions are posted. 5. Grow comfortable with the unknown. There is a lot of on-the-job training for your first or second CTO run. Trust that you are smart and deserve where you are. You can figure this out. I was a software dev, and then a technical co-founder, so when the idea became a company and the company grew, i kinda grew into the CTO role. But I did manage to build a team and a product, so i think i was taken seriously because of that. I'm not the poster, but this is most of my career - check out my profile and website. The short answer is either: 1. Be willing to take a severe or entire pay cut at the start (i.e. Do it because you trust the person and believe the product and your equity will be worth it) 2. Know founders and investors and have a rich history of being a CTO / technical CEO with a plethora of launched apps to point at. Asking here in case others find it interesting. Can you share more about your experiences building in Russia, especially more unique challenges you faced (e.g. harder to literally get funds from foreign clients, regulatory environment, etc.). Are there things solved there that you are shocked you haven't seen elsewhere? What is your feeling about the current buildup of troops around Ukraine & what do Russian friends/family/colleagues feel about it? Tangentially you often fall into needing dual compliance with the rest of Europe and then Russia having their own systems/regulations in place. From my past life in automotive we had a huge nightmare certifying cars to have European E-call which runs on GPS AND the Russian equivalent that runs on GLONASS. https://europa.eu/youreurope/citizens/travel/security-and-em... That's a difficult question - i don't have experience outside of Russia so no idea what is unique and what isn't. It is harder to get funds from foreign clients, primarily because customers are wary of paying money to a russian company (because of hackers and scammers, i think). But you can solve it by registering a US company. There is a "local market" trap: Russian market is obviously smaller than US one, but still large enough to be considered as a viable single option. That's why many russian companies go solely for the russian market, and that's why companies from Belarus or Ukraine (where local market is not large enough) are often focused on US/Europe from the start. As for the recent events, I am not a fan, and hope that the situation resolves peacefully. Mostly technical questions from me: 1. Re: Presto/Clickhouse: Have you looked at dsq, pola.rs, DuckDB, Apache DataFusion, Clickhouse Local? If so, what's your opinion on where the (data science) ecosystem is moving towards (for example, ibis-project.org taking over Presto/Trino). 2. Re: Bitmaps: What's the most compact way you know to store a bitmap-index in printable ASCII (b64 etc)? Puny code esque state machines are elegant (used in DNS), but is there anything else that's better? 3. Re: Unit economics/Opex: Are you a believer in the cost effectiveness (both eng and monetary) of the overall Serverless storage and compute movement? 4. Re: Russia: From the looks of it Russia (and Eastern Europe, in general) has fantastic yet untapped pool of talent, but then, how do you compete for talent with Yandex, Klarna, Spotify, UiPath, and others? 5. Re: py/go: Choose one? ;) Thanks. 1) DuckDB - like the performance and that it's tightly integrated into python. Clickhouse local - i saw the announcement when it came out, but i just don't see the usecase for it in analytics.
DataFusion is new for me.
I'd say that the ecosystem is moving towards snowflake/bigquery/redshift/... 2) Why would you want to do that? You'd use bitmap index because it's quite compact and you can process the data at the speed of memory bandwidth, using ascii defeats that, no? 3) Not really. I just can't imagine costs of running any large website or app with serverless. 4) I think it's the same in the US - everyone competes for the same talent with FAANG (MAANG?). The salary gap between big companies and startups is even lower in Russia.
Also, we humans want to do meaningful things, some of us struggle to find meaning in being another bigco employee. 5) Py Thanks. > Why would you want to do that? We store user preferences (200+ yes/no knobs) in a bitmap (well, a bitmap-index like the one in Hash Mapped-Array Tries). We want to capture those prefs in a single sub-domain (limited to 63 lower-case alphanumeric chars) or a URL (limited to 200 mixed-case alphanumerics). Today, we simply convert the bitmap into url-b64 (or, b32 to store it in the subdomain), but we will soon run out the 63-char limit if we introduce more knobs. A demonstration of it is here, in case the above didn't explain it well: https://rethinkdns.com/configure (choose blocklists, and see the selection generate a path appended to the base-url shown in the search-bar). Oh. No, i don't think it's possible - i'd suggest to just use multiple subdomains. Technically, you can squeeze out some bits: there are 36-37 possible characters of which you are using only 32, so with arithmetic coding you would be looking at about 1 extra bit for 5 characters, but it's a nightmare to code. And after those extra bits run out, you will get the same problem anyway. Does another party need to decode the url? What about using a dictionary for the top 10k seen starting combinations and then encode the rest? What about run length encoding? 1-9 for positive sequences. a-i for negative sequences (max means pattern continues) and the rest for frequent patterns like alternating sequences, etc 9967b would be 24 yes, 1 no, 7 yes, 3 nos, 1 yes etc Thanks. RLE is a hit-and-a-miss (101010101010 etc); top-k is heuristic-based. Those are viable solutions, nevertheless (esp, top-k). Puny Code, which DNS uses, I thought was pretty neat for fitting in a state-machine in printable characters. Takes a bunch of CPU resources to restore it, though. I was wondering if there are other techniques that I may not be aware of. is there a service for this? i mean i hate the fact that everything has to be an app, but i'm in a similar boat. i've been trying to get more out of life by engaging with other people (outside a commerical context), but its hard to keep jobs coming. Well,there's a whole field called Expert Networks for people to share their work experience, although it's in the commercial context. Currently is mostly targeted to investment funds and consultancy companies but it starts to be used by big corporates and smaller businesses. thanks, but i was really looking for something more immediate and human. i've done pretty well providing metal fabrication for artists, but there are only are so many artists in my circle that need that kind of work and cant do it themselves. would like to do tech - but not for money, and not really websites (?) i mostly do systems programming...have managed to do a little embedded (i'm also less qualified to talk about investment and finance than a 3 yr old) Maybe we could add some string, say, "HN Volunteer" to our HN or LinkedIn profiles? These profiles are easily searchable, so there would be no need for building a new app. A few threads: Volunteering Open source Teaching Meetups not many come forward for helping. Thanks and appreciate your post. Hey mate, sounds good. Would you consider registering a profile at https://www.libhunt.com/devs? That way, your profile/pitch may reach even more people. Cheers! You should try coaching positions, plenty of start-ups are struggling with the things that you have already seen and know how to deal with. CTO's would likely love to know you have their back and that they can come to you to ask for 2nd opinion (or even 1st ;) ). If you're not looking to get hired, and you are looking to help people using your software skills, does that mean you'd take suggestions for free software projects to work on? I'm looking to raise ~$2 million to build a coliving space with the goal to grow to multiple spaces. I'm bringing half a million of my own money to the table. Have any connections? Where are you looking to build it? Is the money literally for construction or retrofitting an existing space or other stuff? Coliving.com had a guide on some of this but maybe it's old hat for you https://coliving.guide/ my primary interest is in Colombia but also open to some other places that are also affordable, maybe Italy or Croatia. Yeah the primary concept is to design and build a property specifically optimized for coliving. I have seen that guide before but I'll take another look.Thanks Help me make synchronised sessions between PCs a reality: https://consistos.com What's your thought on TreeMap (ordered by key)? What problems can be best solved by TreeMap? Why do people use HashMap instead of TreeMap? Hash tables are (usually) faster to do all sorts of operations than tree based maps, as most operations become a simple function to calculate a tree’s hash followed by a table lookup. Of course, they’re unordered, so if you need to iterate in order, or find all keys < a certain value, or things like that, tree maps can be better for your algorithm. Also, TreeMap uses a red-black tree to implement the map, which is a basic type of binary tree. Depending on the data you’d like to store, other kinds of tree-based maps can have better performance characteristics. A map based on a Splay Tree[1] speeds up repeated accesses, so it could perform well if you had keys that were cheap to compute an ordering but expensive to compute a hash, and your access pattern has good temporal locality. Simple answer: Use tree if you need range access or to get elements ordered by key, and use hash otherwise. More nuance:
- hashmap may be resized if it's over capacity, the resize may cause a latency spike. - hashmap is essentially a single random memory access, tree is a couple of accesses but they are not random - tree is a bit like a sorted array with fast inserts/deletes. Some trees, like leveldb, are in fact sorted arrays (plus some tricks, of course) - if you use b-tree, you are more memory-efficient (but less cpu efficient), and access to nearby elements is almost free. That's why b-trees are used to store data in a permanent memory - there are many other tree variants, each of them with different trade-off You’re selling in a place where there are no buyers. I wouldn't say that really, there's quite a few people here (including me) who just barely have our foot in the door and would love advice from experienced people such as OP. Now whether the format of the post is acceptable to the kind of website HN is, I'm not quite sure, though I have seen submissions like these popping up more and more as of recently. What types of things have you seen the most successes in A/B testing? What did you do? Lovely initiative, even though I can't think of ideas at the moment (just wanted to applaud). Where to find beginner friendly remote jobs? such a high barrier for entry level folks. some guy made https://old.reddit.com/r/software_mentors/ not long ago if you're looking for students I guess you can take a peak What are the risks of investing in a public Russian co (ie Yandex and Ozon and Semrush) IMO most of Yandex/Ozon revenue is in Russia, so you a betting both on a company and on a ruble. Semrush, on the other hand, has most of its revenue outside of Russia (i think). can you expand on "did a lot of a/b tests and conversion experiments"
any posts i can go to read more about? How to get promotions FAST Please use your knowledge of engineering to help this scenario: https://news.ycombinator.com/item?id=30236248 TY! (This series was started in part due to your title-tag from this very posting!) What on earth I am looking for $100K for my NFT marketplace project. How can you help me?