Senior Clojure/Clojurescript Developer

Senior Clojure/Clojurescript Developer

LifeCheq | Cape Town
We're fixing financial advice - building a one-stop-shop with better technology
$55000 - $100000

Who we are

LifeCheq is a service that helps you organise your finances to line up with your life goals. This starts with a clear plan that includes what investments you should make, what you can afford to spend on assets (such as property) and important expenses (such as education), and what insurance it makes sense for you to have at this stage of life.

Then, we help you put that plan into action. We'll fill in forms, chase up product providers, check that you aren't being given a bum deal on your insurance and keep track of what you should be doing. We'll also make sure that, as things change, we update our recommendations so you don't need to worry and can get on with living your life.

The systems we're building

Our service is only made possible by applying the latest technology to the problem of how people plan and manage their financial lives.

We pick and integrate the best existing services for parts of the business which are done well by others and building up and deploy our own IP for the specific areas where it matters most.

Our systems play a central role right from when a potential client first signs up. Meetings with our consultants are scheduled, financial data is collected and a client's goals are captured. Our advice team use our tools to model and project a client's life into the future, adjusting the advised actions to best achieve the client's goals and presenting all this back to them in a way that is understandable and digestible.

The client then uses our app to make decisions and kick off tasks for our processing team that pulls the required information together in order to complete financial product applications. All along the way, relevant parties such as consultants, product providers and the clients themselves are kept up to date with progress.

Our system has frontends written in Clojurescript using reagent/re-frame with our backend spread across firebase and in-house web services written in Clojure and hosted on Heroku. We make use of third party services such as mailgun, sentry, logentries and auth0 to add their packaged functionality.

The job you'll be doing

We're looking for someone to play a senior role in the team developing this system. You'll

  • Write code with a growing dev team including Shen and Dave (two of the founders)
  • Manage our various deployments and environments *Get involved in technology and design decisions
  • Have responsibilities maintaining the features backlog
  • Be part of training and mentoring more junior developers

What we think you'll need

  • A solid software development background - 5 years experience in software development
  • Be able to get going with our technology choices - good knowledge of clojure/clojurescript and web tech
  • The experience to play a senior role in a team of developers as it grows - know how to manage a team of developers and their work flow
  • Ready for the challenge of a startup - we're developing the business and product as we go. There is lots of room to own decisions but don't expect everything to be well defined up front

Permalink

Software Engineer (Clojure) at English Language iTutoring Ltd (Full-time)

We apply Natural Language Processing and Machine Learning to help students around the world learn English as a foreign language. Our first product is Write & Improve:

https://writeandimprove.com

We're working right now on our next product, Speak & Improve (and you won't be surprised to hear that both Read & Improve and Listen & Improve are on the plan too).

We're a full-stack Clojure development house, using ClojureScript (React/reagent/re-frame) on the front-end. We're proud of the fact that we do things the right way, with extensive automated testing, continuous integration, code reviews, and fully automated deployment.

We're looking for two or three web developers (full-stack, front-end, or back-end) to join our Bristol-based team. Although Clojure experience would be a plus, we're happy to talk to you if you already have other relevant experience and a desire to learn Clojure.

We value autonomy, mastery and purpose. You will have the freedom to gravitate towards the product and technology areas that most interest you, and the opportunity to develop your skills. You will create products that improve the lives of hundreds of thousands of people around the world, who want to improve their proficiency in the English language.

Desirable experience:

  • 2+ years developing web applications (full-stack, front-end, or back-end)
  • Clojure/ClojureScript, or some other functional programming language
  • React
  • Automated testing Automated deployment
  • DevOps
  • Amazon AWS
  • MySQL
  • CSS/Sass

We offer a flexible working environment with the ability to vary your hours to fit around your personal commitments and work from home when appropriate. We are not, however, looking for remote applicants - you will need to be located within commuting distance of Bristol.

We are eager to attract a diverse pool of applicants and committed to choosing the best.

Get information on how to apply for this position.

Permalink

Software Engineer (Clojure)

Software Engineer (Clojure)

English Language iTutoring Ltd | Bristol, UK
We help students improve their English through practice and feedback
£50000 - £65000

We apply Natural Language Processing and Machine Learning to help students around the world learn English as a foreign language. Our first product is Write & Improve:

https://writeandimprove.com

We're working right now on our next product, Speak & Improve (and you won't be surprised to hear that both Read & Improve and Listen & Improve are on the plan too).

We're a full-stack Clojure development house, using ClojureScript (React/reagent/re-frame) on the front-end. We're proud of the fact that we do things the right way, with extensive automated testing, continuous integration, code reviews, and fully automated deployment.

We're looking for two or three web developers (full-stack, front-end, or back-end) to join our Bristol-based team. Although Clojure experience would be a plus, we're happy to talk to you if you already have other relevant experience and a desire to learn Clojure.

We value autonomy, mastery and purpose. You will have the freedom to gravitate towards the product and technology areas that most interest you, and the opportunity to develop your skills. You will create products that improve the lives of hundreds of thousands of people around the world, who want to improve their proficiency in the English language.

Desirable experience:

  • 2+ years developing web applications (full-stack, front-end, or back-end)
  • Clojure/ClojureScript, or some other functional programming language
  • React
  • Automated testing
  • Automated deployment
  • DevOps
  • Amazon AWS
  • MySQL
  • CSS/Sass

We offer a flexible working environment with the ability to vary your hours to fit around your personal commitments and work from home when appropriate. We are not, however, looking for remote applicants - you will need to be located within commuting distance of Bristol.

We are eager to attract a diverse pool of applicants and committed to choosing the best.

Permalink

Immutant 2.1.10 Release

We just released Immutant 2.1.10. This will prevent the TLS error you get when fetching dependencies using recent versions of Leiningen.

What is Immutant?

Immutant is an integrated suite of Clojure libraries backed by Undertow for web, HornetQ for messaging, Infinispan for caching, Quartz for scheduling, and Narayana for transactions. Applications built with Immutant can optionally be deployed to a WildFly or JBoss EAP cluster for enhanced features. Its fundamental goal is to reduce the inherent incidental complexity in real world applications.

Get In Touch

As always, if you have any questions, issues, or other feedback about Immutant, you can always find us on #immutant on freenode or our mailing lists.

Issues resolved in 2.1.9

  • [IMMUTANT-637] - TLS error when fetching deps with lein 2.8.1

Permalink

Immutant 2.1.9 Release

We just released Immutant 2.1.9. This release includes one fix:

  • If you tried to call .hashCode on the Ring request, you would get a NullPointerException. This was caused by a bug in Potemkin, which we ported to our internal copy of Potemkin to resolve the issue.

What is Immutant?

Immutant is an integrated suite of Clojure libraries backed by Undertow for web, HornetQ for messaging, Infinispan for caching, Quartz for scheduling, and Narayana for transactions. Applications built with Immutant can optionally be deployed to a WildFly or JBoss EAP cluster for enhanced features. Its fundamental goal is to reduce the inherent incidental complexity in real world applications.

Get In Touch

As always, if you have any questions, issues, or other feedback about Immutant, you can always find us on #immutant on freenode or our mailing lists.

Issues resolved in 2.1.9

  • [IMMUTANT-633] - Ring request map's .hashCode throws NPE if any key is nil

Permalink

PurelyFunctional.tv Newsletter 261: Cool, Calm, Coast

Issue 261 – January 22, 2018 · Archives · Subscribe

Hi Clojurers,

Clojure SYNC is just around the corner! Are you as excited as I am?

Please enjoy the issue.

Rock on!
Eric Normand <eric@purelyfunctional.tv>

PS Want to get this in your email? Subscribe!


Clojure SYNC Tickets Still Available

If you enjoy this newsletter, you will enjoy the talks at Clojure SYNC. From the deep history of communication technology to the future of programming with AI, Clojure SYNC is designed to be an experience of broadened perspective. Further, there are three talks about practical skills every Clojurist should have–from style choices to building real-world abstractions. Finally, there are talks about building a business with Clojure, from training up your team to how to get hired.

Remember, Clojure/West is not happening in 2018. So if you want a Clojure conference experience at the beginning of the year, this is it!

Get your tickets today before the price goes up


Cool Things In Clojure 1.9

Nola Stowe talks about the new features she’s excited about in Clojure 1.9.


Calm Technology Book

This small book by Amber Case is simple but important. It discusses the techniques for making software and devices take up less mental space. As more and more products vie for our attention, the ones that really master the right amount of attention for their job are going to stick around. I was a little disappointed by the quantity and depth of material, but it was worth a read.


Freedom From the Box

Sarah Groff Hennigh-Palermo shares her relationship with static types. Though the presentation is a bit bombastic, I sympathize with many of her opinions.


Brian Eno on his art Vimeo

I love Brian Eno because his perspectives are always novel.


Luna

Luna looks like an awesome programming language and environment.


Improving and Evaluating Clojure Web Application Architecture

A Master’s thesis on Clojure Web applications (!) by Tuukka Kataja and Juho Teperi. I love finding things like this–highly technical, a nice review of the landscape, and something novel to boot.


Coast on Clojure

A new web framework for Clojure by Sean Walker.


Currently Recording: Understanding Re-frame

Understanding Re-frame is a comprehensive tour of the best front-end framework for ClojureScript of the moment. I like Re-frame because it just makes sense. When building an app, Re-frame has a place for everything.

The course is currently over seven hours of video. There was an Early Access Program, but the doors are now closed. If you want to get it before it is launched, join as a member and get access to everything that’s already published, everything that’s coming, and over 50 hours of other courses.

Here are the new lessons for this week:

The post PurelyFunctional.tv Newsletter 261: Cool, Calm, Coast appeared first on PurelyFunctional.tv.

Permalink

Easily Reloading your Clojure Project in Spacemacs

I’ve long been a fan of Stuart Sierra’s reloaded workflow. When I’m working on a ClojureScript project that doesn’t use Figwheel or another tool to assist with live code reloading, this is the pattern I reach for to help manage iterative and interactive development.

The Clojure layer for Spacemacs (via CIDER) has good support managing REPL sessions, but it doesn’t know anything about how to properly restart my project out of the box.

Here’s how I fixed that.

Intro to the Workflow

After opening my project in Spacemacs and launching an nREPL session (via the shortcut for cider-jack-in: [, ']), I can open the REPL buffer using [, s s]. Then, due to the way I’ve configured my project, I’m automatically placed into a specific namespace with functions for starting my server, shutting it down, and reloading it.

It’s easy enough to open the REPL buffer and call these functions manually. My first approach was to create some keyboard shortcuts that would programatically open the REPL buffer, enter the text to call these functions, and then hide the REPL buffer again.

I ended up using another technique altogether. While I was researching the option of adding a custom Spacemacs menu option, I found that Spacemacs provides a function called spacemacs/set-leader-keys-for-major-mode. If you use this function, you can add your own option that appears in the major mode menu, [SPC m]. E.g.,:

(spacemacs/set-leader-keys-for-major-mode 'clojure-mode "x" 'my-emacs-lisp-fn)

This would invoke your my-emacs-lisp-fn whenever you press SPC m x.

A Better Solution

After some researching, I found that CIDER’s already got some integration with the clojure.tools.namespace library. Specifically, it uses the library when you use the command [SPC m s x], or cider-refresh to reload all the relevant namespaces.

That’s perfect, except it can’t automatically assist me with tearing down the state of my running app and then restarting it afterwards.

Fortunately, after poring through the docs for CIDER, I found that you can set some (global) variables to control this behavior.

  • cider-refresh-before-fn: a string naming the Clojure function to be called before tearing down your app
  • cider-refresh-after-fn: a string naming the Clojure function to be called after your code has been freshly loaded

As mentioned, these are variables global to the Emacs process. This does present a slight problem if you intend to work on multiple Clojure projects within Spacemacs.

Fortunately, with Spacemacs, you already have the Projectile plugin loaded. Projectile comes with some built-in support for defining project-specific configuration that you can check in to your Git repository. There’s even a built-in editing mode for it. To try it out, use [SPC p e] while you are editing a file in your project.

For this project, my .dirs.locals.el looks like this:

((nil . ((cider-refresh-before-fn . "my.ns.repl/stop") (cider-refresh-after-fn . "my.ns.repl/start") )))

Conclusion

With this in place, I can tear down and reload my entire app while it’s running in a REPL embedded in Spacemacs, with just this keystoke: [, s x].

All the relevant configuration is stored checked into my Git repository, so it’ll work out of the box for anyone else editing this project in Spacemacs, as well.

The post Easily Reloading your Clojure Project in Spacemacs appeared first on Atomic Spin.

Related Stories

Permalink

Full Stack Developer - Product Focus - Clojure at Swing Education (Full-time)

Overview: Swing Education is the education technology space with an immediate focus on tackling the substitute teacher shortage problem.

Our online platform makes it easy for great schools and quality subs to find each other. We help schools access more subs and offload tedious work associated with managing a pool of substitute teachers (recruiting, screening, payroll, etc.). Our network provides subs with a wider range of work opportunities to gain experience and build their professional network.

This position reports to the CTO and is based in San Mateo, CA. Swing is a revenue generating, Series A, Y Combinator company (through ImagineK12).

We are looking to grow our engineering team with engineers that have broad interests and want a chance to participate in many aspects of the business and want to help contribute to the broader goal of helping schools operate more efficiently.

Responsibilities:

  • Work closely with our product team to develop features in a pragmatic way. This may involve suggesting tweaks, offering potential trade-offs, and breaking down a feature into smaller chunks to be developed and deployed in stages. We expect our engineers to participate in the product development process starting with a rather broad goal/directive with minimal specification and and implement both a functional user interface as well as the backend infrastructure required to support it.
  • Support both customers and other teams tooling and smaller computer programs to aid in automation and productization of internal processes and data needs. We strongly believe that programming in a vacuum is not nearly as fun nor as rewarding as becoming intimately involved with your users and teammates and being able to observe the impact that your work is having and participate in the entire product lifecycle.
  • Assist in implementing infrastructure and tooling to increase overall developer productivity. Examples would be utility libraries, helper macros, locating and contributing to relevant open source projects.
  • Support and maintain existing software via performance and quality improvements as we continue to grow to keep everything running smoothly.

Technology:

  • Our primary applications are interactive ClojureScript web applications built on Reagent (which is a ClojureScript wrapper around React)
  • Our backend API is written in Clojure and our primary data store is Datomic. All day-to-day development will be in Clojure.
  • Please note that previous Clojure experience is not a requirement but is a nice-to-have. We are confident in our ability to train as needed and that engineers will enjoy working in Clojure

Qualifications:

  • Solid foundation in computer science fundamentals. While we do not strictly require a degree in Computer Science and day-to-day work does not require algorithmic expertise, there are certain classes of problems that do tend to crop up that you should be comfortable with and have experience recognizing. Some examples:- Recognize when you have an n-squared algorithm or worse.
  • Recognize when you are searching for a pattern that cannot be matched via regular expression or have a problem that is equivalent to the Halting problem.
  • Track record for becoming a domain expert over time in both technical and business areas
  • Track record of a pragmatic approach to software development

Bonus Points for: - Open source experience - React Native experience - Previous edtech, startup, or online marketplace experience - New user on-boarding and first touch tailoring experience

Perks: - Medical/dental benefits - Generous PTO - Paid holidays - Stock options - 401k match - Maternity/Paternity leave benefits - A stocked kitchen and unlimited caffeine - Mission-driven work - Fun, collaborative, balanced culture

Swing Education is an equal opportunity employer and strongly encourages applications from people of color, persons with disabilities, women, and LGBT applicants.

Get information on how to apply for this position.

Permalink

Copyright © 2009, Planet Clojure. No rights reserved.
Planet Clojure is maintained by Baishamapayan Ghose.
Clojure and the Clojure logo are Copyright © 2008-2009, Rich Hickey.
Theme by Brajeshwar.