Skip to content

Instantly share code, notes, and snippets.

@gmacdougall
Created March 23, 2017 14:53
Show Gist options
  • Save gmacdougall/661618d698210975f2749a3812b92310 to your computer and use it in GitHub Desktop.
Save gmacdougall/661618d698210975f2749a3812b92310 to your computer and use it in GitHub Desktop.
2017-03-23 09:11:00 martin Hi Greg, how are you doing
2017-03-23 09:21:22 gmacdougall Good Day! I'm doing well
2017-03-23 09:22:15 gmacdougall I saw your name in the channel earlier when I was looking but falsely assumed this martin was Martin Meyerhoff
2017-03-23 09:22:24 martin : ) I was first
2017-03-23 09:22:26 martin super, is there lots to do with the upcoming conference
2017-03-23 09:23:03 gmacdougall There is. We're splitting the work up amongst a bunch of different people, so that makes it a bit easlier.
2017-03-23 09:23:21 martin then it's on you the part with the interviews : )
2017-03-23 09:23:48 gmacdougall Yup! I just wanted to ask you some questions which we're going to format in to a blog post to give people a bit of an introduction to you and what you're going to be speaking about at the conference. Did you have any questions before we start?
2017-03-23 09:24:02 martin No, go ahead
2017-03-23 09:24:37 gmacdougall Perfect. First, could you please introduce yourself for anyone who might not be familiar with you?
2017-03-23 09:26:46 martin Ok,
2017-03-23 09:26:46 martin My name is Martin Tomov, I am a full stack developer working primary on e-commerce projects for Boomer Digital. I am based in London, UK.
2017-03-23 09:27:04 gmacdougall How long have you been working with Spree & Solidus?
2017-03-23 09:27:39 martin Almost 4 years now
2017-03-23 09:29:42 gmacdougall What does your work look like on an average day?
2017-03-23 09:37:06 martin Since most of our clients are based in the US, it is really the morning that I have to write code. My afternoons are usually busy with team / client communication, code review, and debug of of problems.
2017-03-23 09:37:06 martin In terms of development, it varies a lot - sometimes I just do frontend work with Alchemy CMS, other times I develop full features, which have both a frontend and a backend part (like Gift Cards, or Elastic Search integrations). There's also times when I take the role of a DevOps, and adjust server configurations manually, or using Puppet.
2017-03-23 09:37:39 gmacdougall That sounds very familiar... :)
2017-03-23 09:37:59 martin : )
2017-03-23 09:38:04 gmacdougall Can you give us an overview of what your SolidusConf talk is going to be about?
2017-03-23 09:54:52 martin My upcoming talk will present techniques to allow for a very efficient synchronization of product data with Elastic Search, which is a fairly common problem when integrating with any data services.
2017-03-23 09:54:52 martin Usual approaches perform a sync with the elastic service on every model change, but this precludes adding of optimizations to the process. By placing an intermediate storage table, we can efficiently preload data, serialize concurrently, reduce network trips to the elastic service, and provide ourselves with a nice view of our serialized data.
2017-03-23 09:54:52 martin I will also speak about modelling Taxon tree data to Elastic mappings, so we can directly display the search results onto the frontend, without going back to our database, as this seems to also be an area, which is not trivial to implement.
2017-03-23 09:56:10 gmacdougall Very interesting. What were some of the biggest challenges you encountered while developing this?
2017-03-23 10:13:43 martin One of the goals was to efficiently pre-load data when performing the serializations of a batch of products, and avoid any N+1 queries in the process. To achieve that, I had to be careful when preloading using a _simple_ `includes`, as it can lead to a very high memory consumption. Instead, usually when a single figure is all there's needed, such as calculating the `count on hand` for every product, I resorted to other Ruby tricks to only get those values, avoiding the instantiation of Active Record objects.
2017-03-23 10:13:43 martin Another challenge was indeed modelling the taxons, so that they can be represented with a tree like navigation on the frontend, and allow the user to cross select from multiple taxonomy trees, for example: `Music -> CDs`, and `Genre -> Rock`, and maybe some other taxonomy tree, such as `Promotions -> 20% off`.
2017-03-23 10:20:05 gmacdougall What are you looking to most at SolidusConf?
2017-03-23 10:25:12 martin I'm really looking forward to meet all those people with who I have exchanged so many messages through Github and Slack, but never actually spoken to. I really want to see what they are about to, what their day to day problems are, and what their development aspirations are (will it be containers, or Rails 5, or some SaaS product : ) )
2017-03-23 10:26:50 gmacdougall Sounds good. As a London local, what should the people from out of town/country consider doing when not at the conference?
2017-03-23 10:35:25 martin The weather in May is usually the best it can get here, so if the Rain Gods are merciful, visiting some of the Royal Parks (St. Jame's Park, Regent's and Hyde Park) is highly recommended, as the flowers will certainly be blooming at the time, and the parks themselves are very beautiful. Craft beer pubs are naturally there as well, and I'd recommend trying the craft ciders, as they really are nothing like store bought.
2017-03-23 10:46:16 gmacdougall Thanks for that insight. I think that's all the questions I had. Is there anything that you wanted to mention before we wrap up?
2017-03-23 10:48:09 martin No, thank you for the time, as I took a bit to formulate my responses. I think you covered most of the topics with your questions, so that's all I wanted to say.
2017-03-23 10:50:25 gmacdougall Perfect. Thanks for your time today.
2017-03-23 10:50:36 martin Thanks as well!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment