adamtait
Joined 16 years ago
Joined 16 years ago
I did some research and found that Dropbox open sourced their internal tool for building cross-platform mobile apps in C++. Djinni (https://github.com/dropbox/djinni) uses an interface definition language to generate bindings between C++ & ObjC & Java (via JNI). From this, I added some tooling to help get the build setup and define some basic UI elements while trying to keep it simple. If you happen to give it a try, I'd love to hear your thoughts: https://github.com/adamtait/ctheworld
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 web services for consuming & ingesting large volumes of data
For a glimpse behind the scenes, check out a talk we gave at Clojure/West last year. https://www.youtube.com/watch?v=av9Xi6CNqq4.
Does this sound like something you're into? Shoot me an email at [email protected]
The fact that it takes them 3-4 days to decide the next round of teams seems very long, in spite the post's insistence that it's short.
I'm interested in environments where teams chose a much shorter cycles. I think shorter cycles would present a different set of challenges, like reducing ramp-up times and cycle decision times. It may also be easier, like reducing the risk of a single cycle decision.
I have heard reports from a company with ~50 engineers who had 2 week cycle times, which was basically their sprint time though releases would have much more frequently. They had the advantage of a mostly homogeneous language and development environment. There kept in up for more than two years, at which point the company pivoted, no longer had a homogeneous dev environment and were doing more greenfield and less support/optimization/incremental-improvement. All reports were great. People were always surprised how the team would even out the teams when put in a single room, where the teams and choices were clear to everyone.
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 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)
- 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.
Does this sound like something you're into? Shoot me an email at [email protected]edit: formatting