HN user

Moocar

156 karma

Crazed clojure hacker

Posts6
Comments22
View on HN

Kaddy | Software Engineer | REMOTE (Australia/NZ) | Full-Time

Kaddy is a B2B marketplace for businesses in the alcoholic beverage and related sectors.

The platform connects wholesale buyers with new independent suppliers―think breweries, wineries, distilleries, etc. Buyers can browse suppliers' product catalogues, negotiate better prices, place orders, and pay. Suppliers gain access to new customers, streamlined ordering, CRM tools, and guaranteed payment. We are experiencing rapid growth and are working with some of the most sought after beverages brands, hospitality operators, and liquor retailers in Australia.

We're looking for an experienced Go developer. You'll be joining a team of 7 other engineers. We hold periodic retros to make sure our process makes sense. All work is peer reviewed. We release to production once a week. The rest of our stack includes React, GraphQL and Postgres. Hosted on Heroku/Netlify.

We are a synchronous remote team. All processes are optimized for a remote work from home culture. You may work from any location within Australia/NZ. We also have a great Sydney office in Darlinghurst that you're welcome to work from. It has a most excellent bar fridge filled with the latest and greatest craft beers from around the country.

https://www.kaddy.com.au/careers

To apply, email Anthony at careers@kaddy.com.au

Kaddy | Senior Frontend Engineer | REMOTE (Australia/NZ) | Full-Time

Kaddy is a B2B marketplace for businesses in the alcoholic beverage and related sectors. The platform lets wholesale buyers discover new independent suppliers (breweries, wineries, distilleries, etc) and products, and connect, communicate, order and pay. Suppliers gain access to new customers, streamlined ordering, CRM tools, and guaranteed payment. We are experiencing rapid growth and are working with some of the most sought after beverages brands, hospitality operators, and liquor retailers in Australia.

We're looking for someone to lead our small but growing frontend team. Our ideal candidate is someone who loves building out features, with an eye to gradually factoring out a design system so that future engineers can build with ease. You are customer focused, with strong UI fundamentals. You are engineering focused but want to lead a team in the future. You have strong opinions on what good code architecture is and the importance of good state management. If this sounds like you (or pretty close), then please reach out.

Our tech stack is a React/Next (with some legacy Vue.js) frontend that’s mediated by GraphQL (Apollo) to a Go API backed by Postgres—all hosted on Heroku/Netlify.

https://www.kaddy.com.au/careers

To apply, email Anthony at careers@kaddy.com.au

Kaddy | Senior Frontend Engineer | Sydney, Australia | REMOTE (Australia/NZ) | Full-Time

Kaddy is a B2B marketplace for businesses in the alcoholic beverage and related sectors. The platform lets wholesale buyers discover new independent suppliers (breweries, wineries, distilleries, etc) and products, and connect, communicate, order and pay. Suppliers gain access to new customers, streamlined ordering, CRM tools, and guaranteed payment. We are experiencing rapid growth and are working with some of the most sought after beverages brands, hospitality operators, and liquor retailers in the country.

We're looking for an experienced frontend engineer with an eye for great design. Our tech stack is a React/Next (with some legacy Vue.js) frontend that’s mediated by GraphQL (Apollo) to a Go API backed by Postgres—all hosted on Heroku/Netlify.

You'll be working alongside our team of six experienced engineers in a tightly knit product group. We all take part in speccing stories and actively contribute to product discussions and decisions. We hold periodic retros to make sure our process makes sense. All work is peer reviewed. We release to production once a week.

We're a remote team but have a great office in Darlinghurst, Sydney. Including a well stocked bar fridge filled with beers from Australia's best craft breweries.

To apply, email Anthony at careers@kaddy.com.au

Kaddy | Senior Frontend Engineer | Sydney, Australia | ONSITE | Full-Time

Kaddy is a B2B marketplace for businesses in the alcoholic beverage and related sectors. The platform lets wholesale buyers discover new suppliers (breweries, wineries, distilleries, etc) and products, and connect, communicate, order and pay. Suppliers gain access to new customers, streamlined ordering, CRM tools, and guaranteed payment. We are experiencing rapid growth and are working with some of the most sought after beverages brands, hospitality operators, and liquor retailers in the country.

We're looking for an experienced frontend engineer with an eye for great design. Our tech stack is a React/Next (with some legacy Vue.js) frontend that’s mediated by GraphQL (Apollo) to a Go API backed by Postgres—all hosted on Heroku/Netlify.

You'll be working alongside our team of six experienced engineers in a tightly knit product group. We all take part in speccing stories and actively contribute to product discussions and decisions. We hold periodic retros to make sure our process makes sense. All work is peer reviewed. We release to production once a week.

We’re Sydney based with an office in Darlinghurst. When not in lockdown, we generally work from the office 2-3 days a week. We work hard but our social committee and well stocked bar fridge ensure we also enjoy ourselves.

To apply, email Anthony at careers@kaddy.com.au

Kaddy | Software Engineer | Full-time | Sydney, Australia | ONSITE

Kaddy is a B2B marketplace that helps suppliers and wholesale customers connect and trade seamlessly across beer, wine, spirits, and other beverages. We are currently working with some of the most sought after beverages brands, hospitality operators, and liquor retailers in Australia.

We're looking for an experienced Go developer. The rest of our stack includes React, GraphQL and Postgres. Hosted on Heroku/Netlify.

You'll be working alongside five experienced engineers. We all take part in speccing and prioritizing product features, while striving to do it with a customer-centric approach. We hold periodic retros to make sure our process makes sense. All work is peer reviewed. We release to production once a week and are aiming to release even faster.

We’re Sydney based with an office in Darlinghurst. We generally work from the office 2-3 days a week, where we try to line up collaborative meetings, and work from home the rest of the time.

Email Anthony at careers@kaddy.com.au

Kaddy | Software Engineer | Full-time | Sydney, Australia | ONSITE

Kaddy is a B2B marketplace that helps suppliers and wholesale customers connect and trade seamlessly across beer, wine, spirits, and other beverages. We are currently working with some of the most sought after beverages brands, hospitality operators, and liquor retailers in Australia.

We're looking for an experienced Go developer. The rest of our stack includes Vue.js, React, Postgres and Clojure(script).

You'll be working alongside five experienced engineers. We all take part in speccing and prioritizing product features, while striving to do it with a customer centric approach. We hold periodic retros to make sure our process makes sense. All work is peer reviewed. We release to production once a week and are aiming to release even faster.

We’re Sydney based with an office in Darlinghurst, however due to COVID-19, we’ve embraced a timezone-local (AEST) distributed working from home culture. We are on daily zoom calls and have a highly collaborative working ethos.

Email Anthony at careers@kaddy.com.au

You probably don't want another alerting mechanism; you probably already have pagerduty or something else -- what you want is a rich way to create the alert

This is the heart of why we use Riemann. When we first started using it 2 years ago, we had thousands of different types of error emails per day (due to monitoring thousands of retail stores, all with their quirks). Because Riemann config is just code, we were able to build systems and abstractions on top of it for describing the various error types and their semantics. E.g If 500s are being returned from service A, only alert us if > 1% of those requests failed in the last 2 minutes. You can get these kinds of rules in something like Nagios, but if you want customization, you have to deal with plugins. Here, it's just code. If we don't like it, we change it. The result is that there's no excuse to setup gmail filters. You can ensure that all errors are actionable.

WalmartLabs - Clojure Developer. | SF | Remote (US Timezones) | 1HB VISA

You can work on Clojure at quite a few companies, but rarely can you impact millions of people at such a personal level. Walmart's mobile apps are highly rated and the services we write to support them are the base of that success. We started from a small company acquisition with a single product. Today, we power a platform and a suite of products running on mobile devices and systems in retail stores.

We're still a small, flat team of engineers. We work with our own tools and make our own build-or-borrow decisions. Our culture is a healthy mix of sharing and pushing each other to be better at our craft. For example, we use pull requests & code reviews liberally. We make refactoring time. We deploy often, with a single line of code run from a REPL. Engineers on our team are challenged to work through our full software stack and be part of our product management. We believe that people are more engaged, fulfilled and happy when they feel responsible for actually shipping their work.

The environment at WalmartLabs balances moving fast and breaking shit, with the knowledge that we could break shit for 150+ million people every week. It's a tough balance but we've found the payoff to be worth the challenge and responsibility.

Some aspects of our work that are important to us:

  - high performance distributed systems
  - robust & well-factored codebases
  - simple & fast deployments
  - automating the hell out of operations
  - thorough system test coverage
  - managing our own development process and work backlog
  - pair programming when it makes sense (locally and remotely)
  - contributing back to the clojure & open source community
What we do:
  - write all our production systems & tools in Clojure
  - create and orchestrate massive distributed systems
  - spin up RESTful web services for consuming & ingesting large volumes of data
For a glimpse behind the scenes, check out a talk I gave at Clojure/West. https://www.youtube.com/watch?v=av9Xi6CNqq4.

Does this sound like something you're into? Shoot me an email at amarcar@walmartlabs.com

WalmartLabs - Clojure Developer. San Francisco (full time) or US remote.

You can work on Clojure at quite a few companies, but rarely can you impact millions of people at such a personal level. Walmart's mobile apps are highly rated and the services we write to support them are the base of that success. We started from a small company acquisition with a single product. Today, we power a platform and a suite of products running on mobile devices and systems in retail stores.

Our team has a unique environment. We're still a small, flat team of engineers. We work with our own tools and make our own build-or-borrow decisions. Our culture is a healthy mix of sharing and pushing each other to be better at our craft. For example, we pair program when it best suits the task. We use pull requests & code reviews liberally. We make refactoring time. We deploy often, with a single line of code run from a REPL. Engineers on our team are challenged to work through our full software stack and be part of our product and project management. We believe that people are more engaged, fulfilled and happy when they feel responsible for actually shipping their work. What we're all about

The environment at WalmartLabs balances moving fast and breaking shit, with the knowledge that we could break shit for 140 million people every week. It's a tough balance but we've found the payoff to be worth the challenge and responsibility.

Some aspects of our work that are important to us:

  - high performance distributed systems
  - robust & well-factored codebases
  - simple & fast deployments
  - automating the hell out of operations
  - thorough system test coverage
  - managing our own development process and work backlog
  - pair programming when it makes sense (locally and remotely)
  - contibuting back to the clojure & open source community
  - having an engaging team culture and environment
What we do:
  - write all our production systems & tools in Clojure
  - create and orchestrate massive distributed systems
  - spin up RESTful web services for consuming & ingesting large volumes of data
We are just a part of:
  - Walmart is the world's largest retailer and one of the world's top online 
    retailers. The scale of challenges and potential impact is enormous.
  - Walmart is actually a group of retail businesses spread all over the world
    including Sam's Club, Asda (UK), Massmart, Walmart International
  - WalmartLabs is a software development shop responsible for tools, platforms 
    and applications for new products in all Walmart businesses. These 
    include platform tools, data analytics & machine learning, search engines, 
    mobile applications and physical retail tools.
  - WalmartLabs Mobile builds mobile applications and backend services for all 
    Walmart businesses.
Does this sound like something you're into? Shoot me an email at amarcar@walmartlabs.com

Edit: formatting

I was at Clojure/west today where Pedestal was unveiled. Here are some answers that I picked up:

- Pedestal doesn't deal with the DB. I just grepped for datomic on the codebase and found nothing. Relevance is one half of Datomic so it's not surprising they've used it in their example docs.

- The idea is to use clojure across the entire stack. As a clojure developer, this is fantastic. It also uses EDN as it's wire format.

- I'm not sure how far the composability goes but I get the impression that it's one of their design goals.

- The routing syntax looks pretty simple to me.

I don't get the opinion that this is Rails for Clojure. It's dealing mainly with asynchronous real-time client server communication with some great client additions. It doesn't enforce any kind of DB integration such as DB migrations which have always been one of Rail's killer features to me.

I've been using a product called scriptrock (http://scriptrock.com) recently that collects these kinds of best practices and ensures that they actually exist on nodes. I.e, the testing of configuration rather than the execution. I think this is really interesting for two reasons. 1, it's like monitoring for security on my nodes (it runs by default every 5 minutes), and 2, they could build some kind of open repo for people to contribute these best practices (I think they were asking for beta users a while back). Plus it allows me to configure my infrastructure in a kind of TDD way.

I think this could be used to solve similar problems for event-driven programming. For instance, in Aleph/Lamina (async clojure library), pipelines work great when only one value is returned. But if you want to wait for two remote calls to return in parallel, and feed both results into the next function, the syntax can a bit painful. Here, you could supply something like async-compile which would work similarly to parallel-compile but use pipelines and merge-results under the covers.

I'm not sure why the team used single-letter names

I find myself doing this quite a bit. I think the reason is that it's so pervasive in the core.clj code. Take the documentation for update-in below:

  (update-in m [k & ks] f & args)
    'Updates' a value in a nested associative structure, where ks is a
    sequence of keys and f is a function that will take the old value
    and any supplied args and return the new value, and returns a new
    nested structure. If any levels do not exist, hash-maps will be
    created.
After having looked at a lot of clojure doc, those single letter names make sense to me (k = key, ks = keys, f = function). I use the same style when writing "core-like" functions, but anything remotely application specific is descriptively named.

I'm a big fan of the functional stuff. Writing transform statements using for loops is painful and error prone in comparison to a quick anonymous function using Collections2. Yes, it looks ugly, but at least there's less duplication, and if you're using code completion in an IDE (which you are, because it's java), it's actually faster to write.

We're using it. I was honestly convinced by their ridiculous tag line:

"Manage your logs in the dark and have lasers going and make it look like you're from space". Awesome!

Also, when you login it gives you status message like "mounting party hats", and "enraging gorilla". It's nice to have some comedy in what can potentially be such a dull arena.