
Daniel Midwood
Verified Expert in Engineering
Software Developer
Dan is a Clojure, Scala, and JavaScript developer with over eight years of experience developing on the JVM. He has an extensive background in building scalable systems and in architecting, designing, and building APIs for top startups in the UK.
Portfolio
Experience
Availability
Preferred Environment
Emacs
The most amazing...
...thing I've done is to mentor and teach other developers.
Work Experience
Java/JVM Mentor
Independent Contract
- Collaborated with a .NET developer who was porting a C# program to Java.
- Introduced current technologies, build systems, and testing strategies.
- Provided guidance on writing idiomatic modern Java.
Scala/Java 8 Software Engineer
Independent Contract
- Developed a proof-of-concept high availability game server for National Geographic's Animal Jam.
- Worked with a large distributed remote team using GitHub and other tools for remote collaboration.
Developer, Diffbot API Clojure Library
Independent Contract
- Wrote an open source Clojure library for the Diffbot API (see https://github.com/diffbot/diffbot-clojure-client).
Javascript Developer, Argot.js IoT library
Independent Contract
- Ported a Java IoT communications library from Java into idiomatic JavaScript for deployment in Node.js and on the web (see https://github.com/argotsdk/argot.js.).
Software Engineer
Mind Candy
- Developed for Moshi Monsters, a highly scaled and immensely popular online game for children.
- Led back-end development for the Moshling Rescue mobile and Facebook game.
- Gave talks about various technologies to other technical members of staff, and gave talks and demos to the entire company.
- Built a load test generator that used logs of web requests to generate tests closely mimicking real user behaviour.
- Involved in the hiring process to filter, interview, and hire good clients for the company.
- Mentored and educated other members of staff on Scala and functional programming.
Software Engineer
CPP
- Led development teams across front- and back-end development.
- Introduced a culture of learning, helping to set up regular educational lunches where we would watch tech videos and talks as well as talk about interesting technology ourselves.
- Became part of the "Developer 2.0" track into software architecture, where I worked across the entire technology department to remove existing problems.
- Improved relations between Dev and Ops to streamline application deployments and provide greater visibility through the development process.
- Acted as mentor to new recruits and junior members of staff.
Software Engineer: Integrations Specialist
Liquid Logic
- Worked closely with clients, capturing requirements through discussions and more formal processes.
- Introduced version control, automated tests and greater rigour to the development process.
- Built a common framework that our applications could use to integrate with third party services, and then merged two distinct ad-hoc solutions into it.
- Led the development of software projects.
- Promoted the use of open source software, introduced battle-tested components, and saved time by not having to re-implement technology that was already available.
Software Engineer
Result Group
- Worked directly with clients, handling the whole SDLC.
- Became part of an internal task force that investigated, implemented, and taught about additional technologies and techniques.
- Led teams of developers through projects.
- Collaborated with other developers to introduce automated tests and set up a continuous integration server.
- Was recognized as a "high performing" member of staff and fast-tracked through the company.
Experience
Moshi Monsters
Moshling Rescue
Skills
Languages
Java, Clojure, SQL, Scala, Python, JavaScript, Groovy
Paradigms
Continuous Integration (CI), Test-driven Development (TDD), Functional Programming, REST, Agile Software Development, DevOps
Other
RESTful Web Services, Task Automation, SOAP, Memory Profiling, Enterprise Service Bus (ESB), Internet of Things (IoT), Data Analysis, API Design, Protocol Buffers, APIs
Frameworks
Spring, Play Framework, Apache Thrift
Tools
Apache Maven, Gradle, Emacs, IntelliJ IDEA, GitHub, AWS ELB, Chef, Vagrant, SBT, Jira
Storage
PostgreSQL, Amazon S3 (AWS S3), Redshift, MySQL, Redis, Amazon DynamoDB
Libraries/APIs
Node.js, Diffbot, React, Twitter API
Platforms
Amazon Web Services (AWS), MacOS, Linux, Amazon EC2
Education
Bachelor of Science Degree in Computer Science
The University of Huddersfield - Huddersfield, UK